LoginSignup
1
1

More than 3 years have passed since last update.

Javaのクラス定義とインスタンスの生成

Posted at

クラス定義とインスタンスの生成

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1