#今回はJavaとJavascript(ES6)とC#のクラスの書き方の違いについてあげてみようと思います。
##実際は複雑かもしれませんがクラスでぐらつく人って結構多いと思います。
昔の自分がそうだったんですが、いきなりJavaのプログラムを書こうとしたものでクラスがわからず困ったことがありました。
クラスという概念はメソッドの上のプログラムを拡張していると思っていただければ簡単にプログラミングができると思います。
実際いうとJavascriptのクラスはJavaやC#に比べて拡張がまだ粗いと思います。
//Javascript(ES6)
import {hogehoge} from './hogehoge';
class hogehoge{
static hogehoge(height, width){
this.height = height;
this.width = width;
}
}
//Javascript
import hogehoge from './hogehoge';
class hogehoge{
static hogehoge(height, width){
this.height = height;
this.width = width;
}
}
//C#
using hoge;
class hoge{
public void hoge(height, width){
this.height = height;
this.width = width;
}
}
//Java
import hoge;
class hoge{
public void hoge(height, width){
this.height = height;
this.width = width;
}
}
気が付いたと思いますがライブラリの組み込みの部分見てもらうとわかりやすいかもしれません。
実際に組み込みする場合JavaやC#は実際組み込む場合クラス名で組み込んでいます。
Javascript(ES6)やJavascriptの場合ですがクラス名と実装ライブラリ名が存在しています。
Javascriptのクラスの場合は組み込みライブラリ名とクラス名が一致しないといけません。
JavaやC#の場合はダイレクトにクラス名を書くことで実装できます。
あと気をつけないといけないところはメソッドの書き方です。
JavaやC#の場合は祖先の言語がCやC++なので必ずvoidクラスが存在していますがJavascriptの場合いきなりstaticメソッドを実装することで完了しています。
これはスクリプト言語の特徴でstaticメソッドと動的メソッドで実装するようになっています。
JavaやC#の場合は必ずコンパイルがついて回ります。
Javascript(ES6)の場合はトランスパイルと言う方法がとられているのも特徴です。
トランスパイルと言うのはES6の場合Javascriptの本来の書き方に戻してやらないと実装できない問題があります。
それを実装したのがトランスパイルです。
今のところトランスパイルはBabelで実装しています。
コンパイル言語とスクリプト言語の違いは実際に中間言語やOSに伴った形に置き換えているかとスクリプト自体の書き換えをしているかの違いになります。
気を付けないといけないのJavaやC#の場合はコンパイルがいるということとJavascriptの場合はES6で実装した場合トランスパイルが必要になるということです。
Javascriptで実装した場合はトランスパイルは不要になります。
このようなことがありますので注意していきましょう。