Constructor tương tự phương thức, được gọi khi tạo đối tượng, dùng để khởi tạo biến instance. Constructor trùng tên class và không có kiểu trả về.
Có 2 loại constructor: có tham số (parameterized) và không tham số (no-arg).
Constructor có tham số (Parameterized Constructor)
Constructor có tham số chấp nhận tham số để khởi tạo biến instance. Sử dụng constructor này, bạn có thể khởi tạo giá trị động cho các biến tại thời điểm khởi tạo đối tượng với các giá trị khác nhau.
Ví dụ: Constructor nạp chồng (Overloading)
import java.util.Scanner;
public class StudentData {
private String name;
private int age;
// Constructor có 2 tham số
public StudentData(String name, int age) {
this.name = name;
this.age = age;
}
// Constructor mặc định gọi constructor 2 tham số
public StudentData() {
this(null, 0);
}
// Constructor chỉ có tên
public StudentData(String name) {
this(name, 0);
}
// Constructor chỉ có tuổi
public StudentData(int age) {
this(null, age);
}
public void display() {
System.out.println("Tên sinh viên: " + this.name);
System.out.println("Tuổi sinh viên: " + this.age);
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập tên sinh viên: ");
String name = sc.nextLine();
System.out.println("Nhập tuổi sinh viên: ");
int age = sc.nextInt();
System.out.println("\n--- Constructor 2 tham số ---");
new StudentData(name, age).display();
System.out.println("\n--- Constructor chỉ tên ---");
new StudentData(name).display();
System.out.println("\n--- Constructor chỉ tuổi ---");
new StudentData(age).display();
System.out.println("\n--- Constructor mặc định ---");
new StudentData().display();
}
}
Kết quả
Nhập tên sinh viên: Krishna Nhập tuổi sinh viên: 22 --- Constructor 2 tham số --- Tên sinh viên: Krishna Tuổi sinh viên: 22 --- Constructor chỉ tên --- Tên sinh viên: Krishna Tuổi sinh viên: 0 --- Constructor chỉ tuổi --- Tên sinh viên: null Tuổi sinh viên: 22 --- Constructor mặc định --- Tên sinh viên: null Tuổi sinh viên: 0