Tại Sao Trong Java Nên Viết Phương Thức Khởi Tạo Mặc định?
Có thể bạn quan tâm
Nói theo lý thuyết OOP, khi 1 object được reference từ một class, các thứ có trong phương thức khởi tạo sẽ được set mặc định cho object đó ngay từ khi khai báo. Mình sẽ lấy ví dụ với một số nguyên a. Có 2 đoạn code sau:
Có phương thức khởi tạo
public class WithCtor { //cho số nguyên a và giá trị của nó là null public int a; //cú pháp của phương thức khởi tạo(<tên_class>()). Lúc này giá trị của a trong hàm này là 10 WithCtor() { a = 10; } //Phương thức cộng 1 số từ tham số của hàm vào a public int add(int number) { return a + number; } public int getA() { return a; } }Ko có phương thức khởi tạo:
public class WithoutCtor { //cho số nguyên a và giá trị của nó là null public int a; //Phương thức cộng 1 số từ tham số của hàm vào a public int add(int number) { return a + number; } public int getA() { return a; } }Rồi thêm entry point để chạy code:
public class Main { public static void main(String[] args) { WithCtor withCtor = new WithCtor() // WithCtor() chính là hàm khởi tạo đó! WithoutCtor withoutCtor = new WithoutCtor() // WithoutCtor() cũng là hàm khởi tạo nhưng không được khai bái vào gán giá trị withCtor.add(5); //Cộng 5 vào a của WithCtor withoutCtor.add(5); //Tương tự như trên System.out.println(withCtor.getA); //Output: 15 System.out.println(withoutCtor.getA); //Output: 5 } }Theo như code trên 2 output hoàn toàn khác nhau mặc dù phương thức add() có cùng tham số mà a khi tạo ban đầu của cả 2 class đều là null(giá trị trống). Vì do class WithCtor có phương thức khởi tạo và trong đó set a bằng 10 tức là bao nhiêu object lấy từ nó ra đều có mặc định a = 10, trừ khi bạn đổi a bằng số nào đó khác trong phương thức khởi tạo của WithCtor.
Khái niệm này ban đầu mình cũng thấy khó hiểu, về sau thấy quen.
Bạn không bắt buộc sử dụng nó nhưng có thể dùng theo cách sau:
public class ViDu { public int a, b, c; ViDu(int a, int b, int c) { this.a = a; this.b = b; this.c = c; } }Cách này dùng ctor tiện hơn vì đỡ phải tạo các set method nhiều!
Từ khóa » Hàm Khởi Tạo Mặc định Trong Java
-
Tất Tần Tật Về Constructor Trong JAVA - NIIT - ICT Hà Nội
-
Tìm Hiểu Về Hàm Tạo (Constructor) Trong Java
-
Các Loại Hàm Khởi Tạo (constructor) Của Lớp Trong Java - Góc Học IT
-
Java: Hàm Tạo (Constructor) | V1Study
-
Hàm Tạo Trong Java - Mọi điều Cần Biết Về Hàm Tạo Java
-
Khai Báo Hàm Khởi Tạo Trong Java – Constructor Declarations | TopDev
-
Constructor Trong Java Là Gì? | TopDev
-
Constructor Trong Java - Học Java Miễn Phí Hay Nhất - VietTuts
-
Constructor Trong Java - KungFu Tech
-
Java Bài 20: Phương Thức Khởi Tạo - Constructor - YellowCode ...
-
Hàm Tạo Mặc định Là Gì? Chi Tiết Về Hàm Tạo Mặc định Mới Nhất 2021
-
[Tự Học Java] Hàm Tạo (constructor) Trong Java
-
Các Hàm Tạo Và Kế Thừa Mặc định Trong Java
-
Hàm Tạo Mặc định – Wikipedia Tiếng Việt