記事の書かれ方について
授業スライドとかを参考にしてるわけじゃないので、別の切り口から説明されてると思うけど。
たぶん言ってることはあっている(はず)。
アドリブなのでミスがあるかもしれないのであったら教えて!
4部構成です
Part.1 さっくりインスタンス生成をしてみる ←イマココ
Part.2 コンストラクタを使ってもっとすっきり
Part.3 アクセス制御をして、入ってくる値を制限しよう
Part.4 クラス変数・メソッドを使ってみる
クラスって何じゃろな?
クラスは、フィールドやメソッドをひとまとめにしたもので、よく設計図のようなものって言われたりする。
クラスに書いたフィールド変数とか、メソッドを使うときはインスタンスというものを生成して使うことが多い。
クラスという設計図をもとにインスタンスというモノが作られているわけだから、設計図と例えているんだと思う。
ぶっちゃけぼくはしっくりこないけど。
で、インスタンスって何やいな
インスタンスは、クラスから作られた〜っていうとさっきの説明とかぶっちゃうな。
インスタンスはnew
キーワードで作られるもので、変数とかメソッドとかのを独立して動かすことができるもの。
書いてみる
ひとつ設定を呑んでほしい。
デジタル学生証をテーマにクラスを用意して、そのインスタンスを生成してみよう。
ここで作る学生証クラスDigitalStudentCard
は学籍番号num
と、学生の名前name
をフィールドに持っている。
class DigitalStudentCard{
//学籍番号
int num;
//お名前
String name;
//出力する用のメソッド(自己紹介してもらう)
String getSelfIntroduction(){
return "学籍番号 : " + num + " 名前 : " + name);
}
}
このクラスを使ってみよう。
class UseClass{
public static void main(String[] args){
//インスタンス生成
DigitalStudentCardtanaka tanaka = new DigitalStudentCard();
//インスタンス変数へ代入
tanaka.num = 118114;
tanaka.name = "田中角栄";
//別のインスタンスを生成
DigitalStudentCardnoguchi noguchi = new DigitalStudentCard();
//新たに作ったインスタンスの変数へ代入
noguchi.num = 118514;
noguchi.name = "野口英世";
//出力
System.out.println(tanaka.getSelfIntroduction);
// 学籍番号 : 118114 名前 : 田中角栄
System.out.println(noguchi.getSelfIntroduction);
// 学籍番号 : 118514 名前 : 野口英世
}
}
ざっと、田中角栄くんと野口英世くんの学生証を発行してみた。
こうすることで、複数の変数に結びつきが生まれて関連していることがわかりやすくなるんじゃないかなって思う。
これがもし、クラスを使わなかったらtanakaName
とnoguchiName
が作られてコードがぐちゃぐちゃに...
ゾッとするね。
こんな感じで、これから説明する機能の多くはコードを読みやすく、キレイに、シンプルにするためにある。
使いこなせばコード書くのが楽になっていくのでどんどん覚えていこう。
ちなみに
先ほど作ったtanaka
とnoguchi
は田中角栄くんと野口英世くんが同じ人間ではあるが、別人であるようにこいつらは別のものとして扱われる。
論理式で比較すると、こういう感じになる。
if(tanaka == noguchi){
System.out.println("同じインスタンス");
}else{
System.out.println("違うインスタンス");
}
/* 実行結果 */
// >>違うインスタンス
次回
次はコンストラクタを実装してみよう!
つぎ → Part.2 コンストラクタを使ってもっとすっきり