オブジェクトを作成する方法

JavaJavaBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Javaでは、オブジェクトを作成することは、オブジェクト指向プログラミング(OOP)の基本概念であり、クラスのブループリントを使用できるようにします。オブジェクトは現実世界のエンティティを表し、現実世界のエンティティと同じようなプロパティを持っています。この実験では、クラスのオブジェクトを作成する方法を学びます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/class_attributes("Class Attributes") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/class_methods("Class Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/constructors("Constructors") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/reflect("Reflect") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/serialization("Serialization") java/FileandIOManagementGroup -.-> java/io("IO") java/SystemandDataProcessingGroup -.-> java/object_methods("Object Methods") subgraph Lab Skills java/classes_objects -.-> lab-117433{{"オブジェクトを作成する方法"}} java/class_attributes -.-> lab-117433{{"オブジェクトを作成する方法"}} java/class_methods -.-> lab-117433{{"オブジェクトを作成する方法"}} java/constructors -.-> lab-117433{{"オブジェクトを作成する方法"}} java/exceptions -.-> lab-117433{{"オブジェクトを作成する方法"}} java/reflect -.-> lab-117433{{"オブジェクトを作成する方法"}} java/serialization -.-> lab-117433{{"オブジェクトを作成する方法"}} java/io -.-> lab-117433{{"オブジェクトを作成する方法"}} java/object_methods -.-> lab-117433{{"オブジェクトを作成する方法"}} end

クラスを作成する

最初のステップは、プロパティを持つエンティティを表すクラスを作成することです。たとえば、「Car」という名前のクラスを作成して、色、ブランド名、燃料タイプなどのプロパティを持つ自動車の現実世界のエンティティを表現しましょう。

public class Car {
    private String carColor;
    private String brand;
    private String fuelType;

    public void start() {
        //自動車を起動するコード
    }

    public void stop() {
        //自動車を停止するコード
    }
}

newキーワードを使ってオブジェクトを作成する

Javaでオブジェクトを作成するには、コンストラクタとともにnewキーワードを使用します。次の例では、newキーワードを使って「myCar」という名前のオブジェクトを作成します。「myCar」オブジェクトを使って「start()」と「stop()」メソッドを呼び出します。

public class Main {
    public static void main(String[] args) {
        //newキーワードを使ってオブジェクトを作成する
        Car myCar = new Car();

        //オブジェクトを使ってメソッドを呼び出す
        myCar.start();
        myCar.stop();
    }
}
コードの実行

コードを実行するには、ターミナルで次のコマンドを実行します。

javac Main.java && java Main

newInstance()メソッドを使ってオブジェクトを作成する

オブジェクトは、「Class」クラスの「newInstance()」メソッドを使っても作成できます。次の例では、「newInstance()」メソッドを使って、「Student」クラスの「newStudent」という名前のオブジェクトを作成します。

class Student {
    private String name;
    private int id;
}

public class Main {
    public static void main(String[] args) throws Exception {
        //newInstance()メソッドを使ってオブジェクトを作成する
        Student newStudent = Student.class.newInstance();

        //オブジェクトに値を割り当てる
        newStudent.name = "John";
        newStudent.id = 123;
    }
}
コードの実行

コードを実行するには、ターミナルで次のコマンドを実行します。

javac Main.java && java Main

clone()メソッドを使ってオブジェクトを作成する

クラスの少なくとも1つのオブジェクトが既に作成されている場合、clone()メソッドを使ってオブジェクトを作成することができます。次の例では、clone()メソッドを使って、StudentクラスのnewStudentという名前のオブジェクトを作成します。

class Student implements Cloneable {
    private String name;
    private int id;

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

public class Main {
    public static void main(String[] args) throws Exception {
        //オブジェクトを作成する
        Student student = new Student();
        student.name = "John";
        student.id = 123;

        //オブジェクトをクローンする
        Student newStudent = (Student) student.clone();
    }
}
コードの実行

コードを実行するには、ターミナルで次のコマンドを実行します。

javac Main.java && java Main

シリアル化と逆シリアル化を使ってオブジェクトを作成する

シリアル化と逆シリアル化を使ってオブジェクトを作成することは、クラスがシリアライズ可能である必要があるオブジェクトを作成する方法です。次の例では、シリアル化と逆シリアル化を使って、StudentクラスのnewStudentという名前のオブジェクトを作成します。

import java.io.Serializable;

class Student implements Serializable {
    private String name;
    private int id;
}

public class Main {
    public static void main(String[] args) throws Exception {
        //オブジェクトを作成する
        Student student = new Student();
        student.name = "John";
        student.id = 123;

        //オブジェクトのシリアル化
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("file.obj"));
        out.writeObject(student);
        out.close();

        //オブジェクトの逆シリアル化
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("file.obj"));
        Student newStudent = (Student) in.readObject();
        in.close();
    }
}
コードの実行

コードを実行するには、ターミナルで次のコマンドを実行します。

javac Main.java && java Main

まとめ

Javaでクラスのオブジェクトを作成するには:

  1. プロパティを持つクラスを作成する。
  2. コンストラクタとともにnewキーワードを使ってオブジェクトを作成する。
  3. 「Class」クラスの「newInstance()」メソッドを使ってオブジェクトを作成する。
  4. クラスの少なくとも1つのオブジェクトが既に作成されている場合、オブジェクトの「clone()」メソッドを使ってオブジェクトを作成する。
  5. シリアル化と逆シリアル化を使ってオブジェクトを作成する。