Nội dung chính
Constructor trong java
Constructor trong java là một dạng đặc biệt của phương thức được sử dụng để khởi tạo các đối tượng.
Java Constructor được gọi tại thời điểm tạo đối tượng. Nó khởi tạo các giá trị để cung cấp dữ liệu cho các đối tượng, đó là lý do tại sao nó được gọi là constructor.
Các quy tắc tạo constructor trong java
Có 2 quy tắc cơ bản cho việc tạo constructor:
- Tên constructor phải giống tên lớp chứa nó.
- Constructor không có kiểu trả về tường minh.
Các kiểu của java constructor
Có 2 kiểu của constructor
- Constructor mặc định (không có tham số truyền vào)
- Constructor tham số
Constructor mặc định trong java
Một constructor mà không có tham số được gọi là constructor mặc định.
Cú pháp của constructor mặc định:
<class_name>() { // code }
Ví dụ về constructor mặc định:
class Bike1 { Bike1() { System.out.println("Bike is created"); } public static void main(String args[]) { Bike1 b=new Bike1(); } }
Output:
Bike is created
Mục đích của constructor mặc định là gì?
Constructor mặc định cung cấp các giá trị mặc định như 0, null, (tùy thuộc vào kiểu dữ liệu) ... tới đối tượng được khởi tạo.
Ví dụ:
class Student3{ int id; String name; void display() { System.out.println(id+" "+name); } public static void main(String args[]) { Student3 s1=new Student3(); Student3 s2=new Student3(); s1.display(); s2.display(); } }
Output:
0 null
0 null
Giải thích: Trong ví dụ trên, bạn không tạo bất kỳ constructor nào, vì vậy trình biên dịch tự động tạo một constructor mặc định cho bạn. Giá trị 0 và null được cung cấp bởi constructor mặc định đó.
Constructor tham số trong java
Một constructor có tham số truyền vào được gọi là constructor tham số.
Constructor tham số được sử dụng để cung cấp các giá trị khác nhau cho các đối tượng khác nhau.
Ví dụ:
class Student4{ int id; String name; Student4(int i,String n) { id = i; name = n; } void display() { System.out.println(id+" "+name); } public static void main(String args[]) { Student4 s1 = new Student4(111,"Viet"); Student4 s2 = new Student4(222,"Tuts"); s1.display(); s2.display(); } }
Output:
111 Viet 222 Tuts
Constructor Overloading trong java
Constructor Overloading là một kỹ thuật trong Java. Bạn có thể tạo nhiều constructor trong cùng một lớp với danh sách tham số truyền vào khác nhau. Trình biên dịch phân biệt các constructor này thông qua số lượng và kiểu của các tham số truyền vào.
Ví dụ:
class Student5 { int id; String name; int age; Student5(int i, String n) { id = i; name = n; } Student5(int i, String n, int a) { id = i; name = n; age = a; } void display() { System.out.println(id + " " + name + " " + age); } public static void main(String args[]) { Student5 s1 = new Student5(111, "Viet"); Student5 s2 = new Student5(222, "Tuts", 25); s1.display(); s2.display(); } }
Output:
111 Viet 0 222 Tuts 25
Sự khác nhau giữa constructor và phương thức trong java
Constructor | Phương thức |
---|---|
Constructor được sử dụng để khởi tạo trạng thái của một đối tượng. | Phương thức được sử dụng để thể hiện hành động của một đối tượng. |
Constructor không có kiểu trả về. | Phương thức có kiểu trả về. |
Constructor được gọi ngầm. | Phương thức được gọi tường minh. |
Trình biên dịch Java tạo ra constructor mặc định nếu bạn không có constructor nào. | Phương thức không được tạo ra bởi trình biên dịch Java. |
Tên của constructor phải giống tên lớp. | Tên phương thức có thể giống hoặc khác tên lớp. |