Default Constructor
- Default constructor là 0 argument constructor chứa lời gọi no-argument đến super class constructor.
- Gán giá trị mặc định cho object mới tạo là trách nhiệm chính của default constructor.
- Compiler viết default constructor vào code chỉ khi programmer không viết constructor nào trong class.
- Access modifier của default constructor luôn giống class modifier nhưng quy tắc này chỉ áp dụng cho "public" và "default" modifiers.
Khi nào compiler thêm default constructor
- Compiler thêm default constructor vào code chỉ khi programmer không viết constructor nào trong code.
- Nếu programmer viết bất kỳ constructor nào trong code, compiler không thêm constructor nào.
- Mọi default constructor là 0 argument constructor nhưng không phải mọi 0 argument constructor đều là default constructor.
Parameterized Constructors
- Parameterized constructors là các constructor có số lượng argument cụ thể cần truyền.
- Mục đích của parameterized constructor là gán giá trị cụ thể mà user muốn cho instance variables của các object khác nhau.
- Parameterized constructor được viết explicitly bởi programmer.
- Access modifier của default constructor luôn giống class modifier nhưng quy tắc này chỉ áp dụng cho "public" và "default" modifiers.
Ví dụ
public class Student {
int roll_no;
String stu_name;
Student(int i, String n) { // Parameterized constructor
roll_no = i;
stu_name = n;
}
void display() {
System.out.println(roll_no+" "+stu_name);
}
public static void main(String args[]) {
Student s1 = new Student(1,"Adithya");
Student s2 = new Student(2,"Jai");
s1.display();
s2.display();
}
}Trong chương trình trên, programmer định nghĩa một parameterized constructor với 2 tham số. Bây giờ compiler không thêm default constructor vào code, và programmer cũng không viết 0 argument constructor nào.
Kết quả
1 Adithya 2 Jai