クラス定義とインスタンスの生成
クラスからインスタンスを生成するには「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フィールド
  }
}