どもです。
元フロントエンジニア、javaを学ぶ。
さっそく第一回です。
今回の課題はjava、というかシステムプログラムの基本用語その1。
フロントエンジニア風に翻訳してみることにします。
メソッド≒関数?
テキストの序盤から頻繁に出てくる横文字が「メソッド」と「クラス」です。
そのうち、「メソッド」の方は、ほぼ「関数」と変換して良さそうです。
厳密には異なるもののようですが、同じように動くので「関数」で良いです。
(厳密の詳細→T-N0121【関数とメソッドの違いがわからなくて少し調べたので自分なりにまとめてみた】)
また、phpもjavascriptも、勿論htmlも上から順に動くものですが、
javaではmainメソッド(→main関数)から動き始めることがミソです。
クラス≒設計図(ファイル単体?)
この「クラス」は、フロント的には馴染みのない概念です。
参考テキストでも初心者向けWebサイトでも、クラスは「設計図」と訳されます。
なぜ設計図なのかといえば、後述の「オブジェクト」がこの「クラス」に基づいて生成されるから。
また、「メソッド」は「クラス」の中に記述しなければならない点に注意。
そのため、プログラムの開始地点であるmainメソッドは、
オブジェクトの生成を行わないダミークラス的なものに入れておくべきのようです。
ダミーのクラスを書かなくても良い上級者的な書き方もあるようですが、
初心者的には無視です。
最初から上級者な書き方をしてはいけません。
で、「メソッド」が「クラス」の中に入っていなければならないというのは、
フロント的にはphpないしjavascriptファイル1つが近いのかな?と思います。
javaにおいても「クラス」はひとつのファイルにまとめるもののようなので、それっぽい。
オブジェクト≒クラスに基づいて実際に作られるもの(複合的な変数)
「オブジェクト」とは、設計図である「クラス」に基づいて生成されるもの。
「クラス」や「メソッド」には勿論、変数が入るわけですから、
例えば、
「車」という「クラス」があったとき、
「ガソリン量」は外部入力から設定する可変部とすることができ、
その結果、
何度か「車」という「クラス」を起動して、
「ガソリン量」を都度入力すれば、
「ガソリン量」の異なる「車」という「オブジェクト」が何台か生成されるという。
取り敢えず生成された「オブジェクト」は、複数の変数を含んだもののようです。
また、生成元の「クラス」に依存した「メソッド(変数)」の使用も可能というのが特徴でしょうか。
実際に生成されたもの、と言われると最終的なブラウザ上のhtmlかな?という感じですが、
要素が多義的で、しっかりとフロントに合致する概念は無さそうな感じです。
パッケージ≒ローカルなルールの適用されるまとまり
パッケージは、フロント的に言うならサーバー、あるいはWebサイトでしょうかね。
システムはフロントと違い、ひとつのプログラムに大勢の人が携わるため、
個人が設定したプログラム・ルール同士が衝突する可能性が十分にあります。
そのため、パッケージというまとまりを設定し、互いが干渉しないようにするようです。
同じサイト内であれば相対パスでリンクを貼れますが、
他人のサイトからわざわざデータ引っ張ってきたいなら、URLから絶対パスで貼らなきゃならない感じ。
また、「パッケージ」という概念はjava的には必須事項では無いようです。
図でまとめてみる
たぶんこんな感じ。
パッケージ(Webサイト)>クラス(ファイル)>メソッド(関数)