プログラミングについて勉強しているとクラスやメソッドという単語がよく出てくる。
で、これについてインターネットで検索してみたけどよく分からない…。
読んでみたけど説明の中に色々知らない単語が出てくるだけで混乱する(インスタンスメソッド?インスタンス?オブジェクト?)。
だから簡単に自分でまとめてみた。
こちらの記事も併せて参考に
クラスとオブジェクト、メソッドについてもう一度考えてみた by Javaプログラミング初心者 Vol.33
Javaの構造
Javaの構造は、一番大きなものが「クラス」、その中に「メソッド」、更にその中に「処理されるもの」となっている。
図にしたらこんな感じ。
赤で囲った外側にある「package firstday.java;」はパッケージを作った時につけた名前が出ている(今回の場合は「firstday.java」)。
クラスはパッケージの中に出来るので(フォルダを開いてみるとわかる。パッケージの名前のフォルダ(firstday.java)の中に「〇〇.javaファイル」がある)、次に赤枠で囲った部分を書く。
プログラムはクラスが必要で、プログラムコードはその中に書いていく。
クラスとは
クラスは「枠」のようなもの。
プログラムは決められた枠の中で物を作り上げる作品のようなもので、クラスはその大枠である(と解釈by初心者)。
こちらでもうちょとクラスについてわかりやすくしてみた
⇒クラスとオブジェクト、メソッドについてもう一度考えてみた by Javaプログラミング初心者 Vol.33
クラスを構成しているコード「public class FirstDayClass{}」について
クラスを構成しているコード「public class FirstDayClass{}」を一つ一つ分解して見ていく。
「public」…クラスで作成したデータを他のクラスで参照したりしたいとき、参照させてもいいかどうかを示すもの。
→「public」がどのファイルからでもアクセスが可能という意味。
→「private」はpublicとは逆のもので、他からのアクセスを拒否するというもの。
この「public」や「private」をアクセス制御という。
あと2つあるけど今はこの2つでいいや。
※実際にやってみて理解してみようとインターネットやらで色々調べまくったけど「オブジェクト指向」やら「引数」やら新しい単語が色々出てきたから引き返した。
とりあえず今の所「public」についてはこのくらいの理解で良いと個人的に思ってる。
個人情報を保護するときなどは「private」でそれ以外は「piblic」でいいのではなかろうか。
また理解した時点で情報更新予定。
「class」…ここからプログラムが始まるという宣言のようなもの。
→プログラムは宣言してからコードを書いていくことが多いみたい。
クラスも「ここからクラスが始まるよ」と宣言する。
「FirstDayClass」…私がつけたクラス名。
自分がつけた名前によってここは毎回変わる。
「{}」…この後に「メソッド」と呼ばれるものが続く。
以上が初心者が勉強した結果の「クラス」の解釈。
メインメソッド
メソッドとは繰り返し使うコードの入力を減らすための言わば便利グッズ、ツールのようなもの。
そのメソッドにあたるのが「public static void main(String[] args) {}」の部分。
「public static void main(String[] args) {}」はメインメソッドと呼ばれる。
メソッドと呼ばれるものは種類が複数あるが、ここではまず「メインメソッド」と呼ばれるものから。
このメインメソッドは特別なもので、他のメソッドと違い自動で実行されるもの。
普通はメソッドも宣言しないとプログラムの処理は行われない。
要は、基本的にクラスが作成されたときはメインメソッドはセットで付いてくるものと考えてよいかと。
基本的にはメインメソッドの中に書かれたプログラムが処理されるということ。
メインメソッドの外側にプログラムを書いてみた その1
上の図のように、青枠の「public static void main(String[] args) {}」の外で緑枠の「int x=5;」などと宣言してもメソッドの中へデータを代入することはできずエラーになる。
基本的に、処理したいプログラムはメインメソッドの中に書く必要がある。
→「x=5など」…メインメソッドの外側でもエラー無しで宣言は出来るが、ただそれだけでなんの役にも立たない
「System.out.println(A);」…メインメソッドの中で「int x=5,int y=10,int A=x+y」の定義がないので行番号の横にエラーが出ている。
メインメソッドの中に処理されるプログラムが書かれるので、これでエラーが出るということはメインメソッドの外にある緑枠の「int x=5,int y=10,int A=x+y」は処理されていないということがわかる。
メインメソッドの外側にプログラムを書いてみた その2
上の図はメインメソッドの外側に「int x=5」や「System.out.println(A);」も一緒に記述した例。
先に述べた「int x=5,int y=10,int A=x+y」だけがメインメソッドの外側に書かれているのと同じように、メインメソッドの中に書かないとプログラムは処理されない。
いくら書いても同じこと。
メインメソッドの外側にある「System.out.println(A);」は行番号の横にバツマークがでてエラーになっている。
メインメソッドの中に書いてみた
これをメソッドの中に入力すると下のようになる。
エラーもなく結果が表示されている。
これで処理内容はメソッドの中に書く必要があるとわかる。
メインメソッドの内容
メインメソッドの「public static void main(String[] args) {}」について一つ一つ見ていく。
「public」…上で書いたクラスの「public」と同じ意味。
「static」…メインメソッドには必ずつける。またステップが進んだら改めてお勉強。
とりあえずは重要なものにつけるということか。
「void」…戻り値がない場合は記述。
正直言うと初見の説明「戻り値」と言われてもなんのことやら・・・。
だから戻り値について私なりに理解できたところまで書いてみた。
チャンネルの電源ボタンを押してテレビがつく。
→この「テレビがつく」部分が戻り値。
その逆が「引数(ひきすう)」。
→「チャンネルの電源ボタンを押す」という行動(引数)の結果、テレビがついた(戻り値)ということ。
メインメソッドはプログラムを開始する上で基本的に「クラス」の次に書かれるもので「枠」の一つ。
例えばSystem.out.println();→これもメソッドの一つ。
このカッコの中に数値や文字を入力して実行することで数値や文字が画面に出てくる。(System.out.println(5+8); →実行→ 表示される文字:13)
これはSystem.out.println(5+8);を入力することで返ってくる値{戻り値(5+8の結果である「13」)}があるから「void」と書かれていない。
でもメインメソッドはそれ単体では何も表示されない。→戻り値がない。
よって「void」と書く。
※難しく考えたらドツボにはまるから「そんなもんなんだ」で良いと思う。
「main」…メソッドの名前の一つ。クラスを作ったときこのメインメソッドが自動的に実行される。
どのメソッドでも後ろに「()」が続く。→例:System.out.println();
「String[] args」…Stringは文字列のデータを扱うと宣言するもの。
メインメソッドで必ず使用する。
argsは変数の名前でargumentの略。
ここの名前はargsでなくてもOK。
メインメソッドの中のString[] argsは決まった形。
丸覚えじゃ。
「{}」…このカッコ内に処理内容を記入していく。
深く考えると碌なことがないから、数学の公式と同じと思ったほうがいい。
処理内容
緑で囲んだ部分が処理内容。
System.out.println(A);など様々な処理内容を記述していってプログラムが完成する。
まとめ
Stringやメソッドなど更に複雑なものが多く、上で述べたのはほんの一部で簡単にしたもの。
スキルアップすれば更に理解できると思うけれど、今の段階ではここまで。
正直、出来る人たちが書いている記事は出来る人向けだなと思った。
用語とか難しいけど理解できるにつれて更に楽しくなっていくと信じてる。
プログラムを構成するものを知っておいて損はないと思うけど始めのうちから深く考えたら先に進めないと思う。
数学の公式みたいに、使い方が決まっていると思っていたほうが良いかと…。
コメント