Конструкторы в Java

В Java, чтобы создать конструктор класса, надо в нем определить метод, который не имеет типа возвращаемого значения, в том числе void, а имя метода должно совпадать с именем класса.

В одном классе может быть несколько конструкторов, различающихся между собой параметрами. Какой из них будет вызван, зависит от переданных в класс при создании объекта аргументов.

Файл LibraryApp.java:

public class LibraryApp {
    public static void main(String[] args) {
        Book book1 = new Book();
        Book book2 = new Book("Green Dog", 120);
        Book book3 = new Book(300, "Dogs in House");
 
        System.out.println(book1.getTitle() + " " + book1.getPages());
        System.out.println(book2.getTitle() + " " + book2.getPages());
        System.out.println(book3.getTitle() + " " + book3.getPages());
    }
}

Файл Book.java:

public class Book {
    private String title;
    private int pages;
 
    public Book() {
        title = "unknown";
        pages = 1;
    }
    public Book(String title, int pages) {
        this.title = title;
        this.pages = pages;
    }
    public Book(int pages, String title) {
        this.title = title;
        this.pages = pages;
    }
 
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public int getPages() {
        return pages;
    }
    public void setPages(int pages) {
        this.pages = pages;
    }
}

У класса Book три конструктора, поэтому мы можем создавать объекты разными способами. Обратите внимание, с помощью ключевого слова this мы обращаемся к полям объекта. Если в методе нет своей переменной с таким же именем, this можно опустить.

Следует отметить, что в Java перегружать можно не только конструкторы. Так в классе может быть несколько одноименных методов с разным набором параметров.

Создано