クラス定義とインスタンスの生成
クラスからインスタンスを生成するには「new クラス名()」を使います。
【例】
class Main {
public static void main(String[] args) {
new Person(); //Person(今回は人)クラスのインスタンスを生成します
}
}
Person.java
class Person{
}
変数にインスタンス
変数にインスタンスを代入するには「クラス型 変数名 = new クラス名()」を使います。
インスタンスの代入ではクラス型を指定し、クラス名がそのままクラス型になります。
【例】
class Main {
public static void main(String[] args) {
Person person = new Person();
}
}
Person.java
class Person{
}
インスタンスメソッド
インスタンスメソッドは「public 戻り値の型 メソッド名()」を使います。
Main.java
class Main {
public static void main(String[] args) {
Person person = new Person(); //voidは戻り値の型です
person.hello();
}
}
Person.java
class Person {
public void hello() {
System.out.println("おはよう");
}
}
インスタンスフィールドの定義
インスタンスフィールドの定義は「public データ型 変数名」というように、変数定義の前にpublicを付けます。
【例】
Person.java
class Person {
public String name;
}
String nameで名前を入れる定義を定義しています。
インスタンスフィールドには、「インスタンス名.フィールド名」を使います。
【例】
Main.java
〜省略〜
Person person = new Person();
person.name("佐藤");
System.out.println(person.name); //person.nameでnameの値を取得しています
〜省略〜
【例】
Main.java
class Main {
public static void main(String[] args) {
Person person = new Person();
person.hello();
person.name = "佐藤";
System.out.println(person.name);
}
}
Person.java
class Person {
public String name;
public void hello() {
System.out.println("おはよう");
}
}
this
メソッド内でインスタンスフィールドにアクセスするためには「this」の変数を用います。
thisはクラス内のメソッドの定義の中でのみ使用できます。
thisはメソッドが呼ばれた時に、そのメソッドを呼び出しているインスタンスに置き換えられます。
【例】
Main.java
class Main {
public static void main(String[] args) {
Person person = new Person();
person.hello(); //personがthisを呼び出します
person.name = "佐藤";
System.out.println(person.name);
}
}
Person.java
class Person {
public String name;
public void hello() {
System.out.println("おはよう" + this.name); //this.(今回は)helloメソッドのnameフィールド
}
}