Menu
Coddy logo textTech

コンストラクタメソッド

CoddyのJavaジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 7/87。

コンストラクタは、newを使用してオブジェクトを作成するときに自動的に実行される特別なメソッドです。クラスと同じ名前を持ち、戻り値の型はありません。

基本的なコンストラクタ

public class Book {
    private String title;
    private String author;
    
    public Book(String title, String author) {
        this.title = title;
        this.author = author;
    }
}

デフォルトコンストラクタ(引数なし)

public class Book {
    private String title;
    
    public Book() {
        this.title = "Unknown";
    }
}

コンストラクタはオブジェクトの状態を初期化します

Book book = new Book("1984", "Orwell");
// コンストラクタは即座に実行され、フィールドが設定されます

コンストラクタを記述しない場合、Javaはデフォルトの空のコンストラクタを提供します。何らかのコンストラクタを記述すると、デフォルトのものは自動的には提供されなくなります。

challenge icon

チャレンジ

中級

すべてのフィールドを初期化するコンストラクタを持つBookクラスを作成してください:

  • プライベートフィールド:titleauthor (String)、pages (int)
  • 3つすべての値を受け取り、thisを使用してそれらを代入するコンストラクタ
  • 各フィールドのゲッターメソッド
  • "<title> by <author> (<pages> pages)"を返すgetSummary()メソッド

チートシート

コンストラクタは、newを使用してオブジェクトを作成するときに自動的に実行される特別なメソッドです。クラスと同じ名前を持ち、戻り値の型はありません。

基本的なコンストラクタ:

public class Book {
    private String title;
    private String author;
    
    public Book(String title, String author) {
        this.title = title;
        this.author = author;
    }
}

デフォルトコンストラクタ(引数なし):

public class Book {
    private String title;
    
    public Book() {
        this.title = "Unknown";
    }
}

コンストラクタを使用してオブジェクトを作成する:

Book book = new Book("1984", "Orwell");
// コンストラクタが即座に実行され、フィールドが設定されます

コンストラクタを記述しない場合、Javaはデフォルトの空のコンストラクタを提供します。コンストラクタを1つでも記述すると、デフォルトのものは自動的に提供されなくなります。

自分で試してみよう

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String title = scanner.nextLine();
        String author = scanner.nextLine();
        int pages = Integer.parseInt(scanner.nextLine());
        
        Book book = new Book(title, author, pages);
        
        System.out.println("Title: " + book.getTitle());
        System.out.println("Author: " + book.getAuthor());
        System.out.println("Pages: " + book.getPages());
        System.out.println(book.getSummary());
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン