クラスとインスタンス
クラスとは、値の元となるもの。実態はなくデータや操作などの型。設計図
その設計図をもとにして作られたものをインスタンスという。具体化し実体がある。
クラスの作成
public class クラス名 {
}
インスタンスの生成
クラス名 変数名 = new クラス名();
フィールドの宣言
フィールドとは、クラスブロック内に宣言された変数。情報をもつ。属性
データ型. フィールド名
データ型の前にアクセス修飾子をつける(省略可)が、勉強順にアウトプット一旦この形です...
フィールドへの値の代入
変数名.フェールド名 = 値;
Person.java
public class Person {
// フィールドの追加
String name; // 名前の宣言
int age; // 年齢の宣言
}
Main.java
public class Main {
public static void main(String[] args) {
Person p = new Person(); // Person クラスからインスタンスを生成し、変数 p に入れる
p.name = "タロウ"; //変数 p の name に代入
p.age = 25; //変数 p の age に代入
System.out.println("私の名前は" + p.name + "で、年齢は " + p.age + "です。");
}
}
結果.
私の名前はタロウで、年齢は 25です。
初期値設定と定数
フィールド宣言と同時に値の代入も記述すると初期値設定や値を書き換えられない定数フィールドを宣言できる
public class Hero {
final int HP; 50 // フィールド内のHPを10で固定
final int MAX_HP; 50 // 最大HPを50で固定
int level; 10 // 初期値10で設定
}
定数フィールドは一目見てわかるように大文字での記述するとよい。
複数単語の場合はアンダースコア -
を使う
操作の宣言方法
Heor.java
public class Hero{
String name;
int hp;
public void eat() {
this.hp = 50;
System.out.println(this.name + "は、食べてHPを" + this.hp + "回復した");
}
}
Main.java
public class Main {
public static void main(String[] args) {
// インスタンスの生成
Hero h = new Hero();
h.name = "タロウ";
// メソッドの呼び出し
h.eat();
}
}
this.
は特別に準備された変数
自身のインスタンスを意味している。ドット.
は日本語の「の」意味。
結果.
タロウは、食べてHPを50回復した
クラスとメンバの命名ルール
フィールドとメソッドをメンバと総称する
クラスは「処理」と「データ」をまとめたもの
メソッドが「処理」
フィールドが「データ」
対象 | 品詞 | 規則 | 例 |
---|---|---|---|
クラス名 | 名詞 | 単語の頭が大文字 | Person, Hero |
メソッド名 | 名詞 | 小文字。区切りは大文字 | set, ageSet |
フィールド名 | 動詞 | 小文字。区切りは大文字 | name, firstName |
インスタンスの利用
Person.java
public class Person {
String name; // 名前の宣言
int age; // 年齢の宣言
// メソッドの定義
public void introduce() {
System.out.println("私の名前は" + name + "で、年齢は" + age + "です。");
}
}
Main.java
public class Main {
public static void main(String[] args) {
// インスタンスの生成と利用
Person p1 = new Person();
p1.name = "タロウ";
p1.age = 25;
p1.introduce(); // メソッドの呼び出し
// 別のインスタンスを生成して利用
Person p2 = new Person();
p2.name = "ハナコ";
p2.age = 30;
p2.introduce(); // メソッドの呼び出し
}
}
結果.
私の名前はタロウで、年齢は25です。
私の名前はハナコで、年齢は30です。
まとめ
インスタンスの生成にはnew
を使う
フィールドを利用するには変数名.フィールド名
メソッドの呼び出しは変数名.メソッド名()