Menu
Coddy logo textTech

Метод-конструктор

Часть раздела Объектно-ориентированное программирование путешествия по Java на Coddy — урок 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 с конструктором, который инициализирует все поля:

  • Приватные поля: title, author (String), pages (int)
  • Конструктор, который принимает все три значения и присваивает их с помощью this
  • Методы-геттеры для каждого поля
  • Метод getSummary(), возвращающий "<title> by <author> (<pages> pages)"

Шпаргалка

Конструктор — это специальный метод, который запускается автоматически при создании объекта с помощью 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 предоставит пустой конструктор по умолчанию. Как только вы напишете любой конструктор, конструктор по умолчанию больше не будет предоставляться автоматически.

Попробуйте сами

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Проверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование