6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Java初歩】メソッドとフィールド、クラス、コンストラクタについて

Last updated at Posted at 2019-11-09

Java初心者用の学習めもです。
メソッドやフィールド、クラスの違いやコンストラクタとは?について記録しています。

#メソッド
・メソッドは、繰り返し使える処理のかたまり(関数)のこと
・メソッド名の後()内に引数を指定できる


[修飾子] [戻り値のデータ型] メソッド名(引数){
	メソッドの処理内容
}

・値を返す場合は「return」を使う

MyTest.java
//クラス
public class MyTest{      
//sayHelloメソッド
    public static String sayHello(String name){
        return "Hello" + name;
    }
//mainメソッド    
    public static void main(String[] args){
        String msg = sayHello("Bob");
        System.out.println(msg);
    }  
}

#メソッドのオーバーロード
・オーバーロードとは、同クラスの中で同じメソッド名で、引数の型や数や並び順が違うメソッドを2つ以上定義すること

MyTest.java
public class MyTest {
  public static void sayHello(String name) {
    System.out.println("Hello" + name);
  }

  // オーバーロード
  public static void sayHello() {
    System.out.println("Hello!everyone!");
  }

  public static void main(String[] args) {
    sayHello();//引数なし
    sayHello("Bob"); //String型の引数を指定
  }

}

#フィールド
・フィールドとは、クラスの内部に定義した変数のこと
・フィールドの変数は、各メソッド内で利用することができる

[修飾子] データ型 フィールド変数名; //フィールドの書き方

#クラス
・クラスとは、プログラムを実行するための処理をまとめたオブジェクトのこと
・クラスにはメソッドとフィールドを定義する
・class の後にクラス名を定義する(最初は必ず大文字)
・クラスは参照型のため、メモリ領域にデータを確保するためには「new」する必要がある
・newすることを「インスタンス化」と呼ぶ

MyTest.java
//User型クラス
class User {

  String name = "Me!"; // フィールド初期化
  void sayHello() {
    System.out.println("hello");
  }
}

public class MyTest {

  public static void main(String[] args) {
    User tom;//User型のtomを宣言
    tom = new User(); // インスタンス化
    System.out.println(tom.name);
    tom.sayHello();
  }

}

#コンストラクタ
・コンストラクタは、インスタンス化の際に自動で実行されるメソッド(処理)のこと
・コンストラクタ名はクラス名と同じ名前で以下のように書く
・()内に引数を指定できる

public クラス名(){
        処理内容;
    }

・コンストラクタでインスタンスのフィールドにアクセスするには「this」と書く
・「this」は このインスタンス という意味
・コンストラクタはメソッドのため、オーバーロードもできる

MyTest.java
class User {
  String name;
  // コンストラクタ
  User(String name) {
    this.name = name;
  }

  // コンストラクタ
  User() {
    // this.name = "Me!";
    this("Me!");
  }
  //メソッド
  void sayHello() {
    System.out.println("hello! " + this.name);
  }
}

public class MyTest {

public static void main(String[] args) {
        User tom;
        //クラスのnameフィールドをtomに指定
        tom = new User("tom");
        System.out.println(tom.name);

        //hello!Me!
        tom = new User();
        tom.sayHello();
  }

}

#クラスの継承
・クラスの継承とは、既にあるクラスの共通する機能を引き継ぐこと
・継承元をスーパークラス(親クラス)、継承先をサブクラス(子クラス)とよぶ
・以下のように書く


class サブクラス名 extends スーパークラス名 {}

・親クラスのコンストラクタは「super()」で指定できる
・親クラスのメソッドを上書きすることを「オーバーライド」という

MyTest.java
class User {
    String name;
    
    User(String name) {
        this.name = name;
    }

    void sayHello() {
        System.out.println("hello! " + this.name);
    }
}

//クラスの継承
class PopUser extends User {

    PopUser(String name) {
        super(name);//親クラスコンストラクタの引数を指定
    }

    void sayThanks() {
        System.out.println("Thanks! " + this.name);
    }

    // オーバーライド
    @Override//オーバーライドを明示できる
    void sayHello() {
        System.out.println("[pop] hello! " + this.name);
    }
}

public class MyTest {

    public static void main(String[] args) {
        User tom = new User("tom");//1行でインスタンス化できる
        System.out.println(tom.name);
        tom.sayHello();

        PopUser bob = new PopUser("bob");
        System.out.println(bob.name);
        bob.sayHello();
    }

}

ここまで。

6
5
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
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?