Конструкторы в 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 перегружать можно не только конструкторы. Так в классе может быть несколько одноименных методов с разным набором параметров.