コンストラクタメソッド
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はデフォルトの空のコンストラクタを提供します。何らかのコンストラクタを記述すると、デフォルトのものは自動的には提供されなくなります。
チャレンジ
中級すべてのフィールドを初期化するコンストラクタを持つBookクラスを作成してください:
- プライベートフィールド:
title、author(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());
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
4継承
継承の基本 (extends)super キーワードメソッドのオーバーライド (@Override)コンストラクタチェーンObject クラス単一継承と多段階継承なぜ多重継承ができないのかまとめ:従業員の階層構造