0
1

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 1 year has passed since last update.

Javaのオブジェクト指向(クラスとインスタンス)

Posted at

はじめに

研修でオブジェクト指向を学んだのでまとめます
長いので何個かにわけます!
間違いがあれば教えてください!

参考図書は
https://sukkiri.jp/books/sukkiri_javap3
です

オブジェクト指向

オブジェクト指向とはソフトウェア開発の部品化の考え方

継承・多態性・カプセル化をオブジェクト指向の3大機能と呼ぶ

インスタンスとクラス

オブジェクト指向はまず最初にクラスを作る

クラスは金型のようなもので設計基盤

クラスを基にオブジェクト(インスタンス)を作成

クラス
Car.java
public class Car {
    String name; //車の名前
    int oil;     //ガソリンの量
}

簡易的なクラスです
クラスに定義されているnameやoilのような変数をフィールドと言います。
ここからインスタンスを生み出します

クラス名 変数名 = new クラス名();
Main.java
public class Main {
    public static void main(String[] args) {
        
        Car c1 = new Car();
        Car c2 = new Car();
    }
}

Carクラスを基に2つのインスタンスを生み出しました

フィールドへの代入

フィールドへ代入するのは以下です

インスタンス名.フィールド名 = 代入するもの
Main.java
public class Main {
    public static void main(String[] args) {
        
        Car c1 = new Car();
        Car c2 = new Car();

        c1.name = "honda";
        c1.oil = 100;
        System.out.println(c1.name);
    }
}
結果

image.png

メソッドの定義

このままのCarクラスでは何もできないのでメソッドを定義します

Car.java
public class Car {
    ...(省略)

    public void run(){
        System.out.println("run");
    }
}
Main.java
public class Main {
    public static void main(String[] args) {
        
        Car c1 = new Car();
        Car c2 = new Car();

        c1.run();
    }
}

実行するとターミナルに run という文字が出ます(日本語だと文字化けの可能性があります)

コンストラクタ

インスタンスを生み出す際に自動的に実行されるものがコンストラクタです

public クラス名(引数){}

で宣言できます。

引数によって複数のコンストラクタを定義できます
コンストラクタのオーバーロードです

Car.java
public class Car {
    String name; //車の名前
    int oil;     //ガソリンの量

    public Car(){
        System.out.println("Create Car");
    }

    public Car(String name){
        System.out.println(name + ": Create Car");
        this.name = name;
    }
}

thisはそのインスタンス自信を指します。

Main.java
public class Main {
    public static void main(String[] args) {
        
        Car c1 = new Car();
        Car c2 = new Car("nissan");
    }
}
結果

image.png

それぞれのコンストラクタが実行されているのがわかります

おわりに

ざっくり書いたので書き漏らしているところが多々あります
つぎは継承についてまとめます

0
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?