1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

メモ オブジェクト、インスタンス、インスタンス変数とか

Posted at

インスタンス変数

class Dog {
    String name; // インスタンス変数
    int age;     // インスタンス変数
    
    // コンストラクタでインスタンス変数に値を設定
    Dog(String name, int age) {
        //this.nameはインスタンス変数 thisは、現在のオブジェクトを指すキーワード
        //nameは引数として受け取ったname
        this.name = name; 
        this.age = age;
    }
}

インスタンス変数: 各インスタンスに属する変数で、オブジェクトの状態を表す。例: nameやage

コンストラクタ

オブジェクトの初期化を行う

    // コンストラクタ
    Car(String color, String model) {
        this.color = color; // 引数で受け取った色をプロパティに設定
        this.model = model; // 引数で受け取ったモデルをプロパティに設定
    }

インスタンス

//クラス
class Dog {
    String name;
    int age;

    Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog1 = new Dog("Buddy", 3); // dog1はDogクラスのインスタンス
        Dog dog2 = new Dog("Max", 5);    // dog2もDogクラスのインスタンス

        System.out.println(dog1.name); // 出力: Buddy
        System.out.println(dog2.name); // 出力: Max
    }
}

クラス:クラスは、データ(属性)とメソッド(機能)を定義するための構造です。例えば、Dogクラスは犬の特性(名前や年齢)や行動(吠える、走るなど)を定義します。

インスタンス:クラスから生成された具体的なオブジェクト

オブジェクト

オブジェクトとは、さまざまな実体の総称
でも色々な概念があり、はっきり分からない

Static変数

staticフィールドは、クラスのすべてのインスタンスで共有される変数
クラスをインスタンス化せずに変数にアクセスできる
インスタンスごとに異なる値を持たせる必要がない場合に使用
すべてのインスタンスで共有される値なので、グローバル変数のように使う

Staticメゾット

newを使ってインスタンスを生成せずに呼び出すことができるメソッド
インスタンスを生成せずに呼び出したいメソッドがあるときに使用
これにより、メソッドを呼び出すときに毎回インスタンスを生成する必要がなくなるため、簡潔にコードを記述することができるようになる

public class MathUtils {
    // staticメソッド
    public static int add(int a, int b) {
        return a + b;
    }
}

public class Main {
    public static void main(String[] args) {
        int result = MathUtils.add(5, 10);
        System.out.println(result); // 出力: 15
    }
}

Static(定数)

tatic finalを使うことで、変更不可能な定数を定義できる。
これにより、クラス全体で共通の定数を持つことができる

インスタンス化

クラス という 「型」 から 「具体的な実体」 に生成されたものを インスタンス と呼びます。
そして、それらの一連の流れを インスタンス化 とよびます。

システム開発の現場では、インスタンスを生成することを「newする」とか言ったりするみたいです。

staticメゾットとインスタンスメゾットの使い分け

staticメソッドを使う時

インスタンスの生成前に実行すべきメソッド
インスタンスの状態に依存しない処理をさせるとき
ユーティリティメソッド(決まりきった処理、頻繁に呼び出される処理に使用する)
与えられた引数のみでメソッドの挙動が決まるとき
オーバーライドする予定がないとき
属性の参照・変更がなく、引数と戻り値のみで完結する場合
ファクトリメゾット

インスタンスメゾットを使うとき

staticを使わない時

結論:大体はインスタンスメゾットをつかってOK

1
0
1

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?