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:
Ví dụ về constructor mặc định:
Output:
Bike is created 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ụ:
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ụ:
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ụ:
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. |
Từ khóa this trong java là một biến tham chiếu được sử dụng để tham chiếu tới đối tượng của lớp hiện tại.
Trong java, Từ khóa this có 6 cách sử dụng như sau:
- Từ khóa this có thể được dùng để tham chiếu tới biến instance của lớp hiện tại.
- this() có thể được dùng để gọi Constructor của lớp hiện tại.
- Từ khóa this có thể được dùng để gọi phương thức của lớp hiện tại.
- Từ khóa this có thể được truyền như một tham số trong phương thức.
- Từ khóa this có thể được truyền như một tham số trong phương Constructor.
- Từ khóa this có thể được dùng để trả về instance của lớp hiện tại.
1. Tham chiếu tới biến instance của lớp hiện tại.
Từ khóa this trong java có thể được dùng để tham chiếu tới biến instance của lớp hiện tại.
Nếu có sự trùng tên nhau giữa biến toàn cục và tham số khiến bạn bị phân vân. Từ khóa this sẽ giúp bạn giải quyết sự phân vân của bạn.
Bạn sẽ hiểu ra vấn đề nếu không dùng từ khóa this trong ví dụ sau:
Kết quả:
0 null 0 null
Trong ví dụ trên, tên của tham số của Constructor Student10() trùng với tên của biến toàn cục đó là lý do tại sao cần phải sử dụng từ khóa this để phân biệt biến cục bộ và biến toàn cục.
Ví dụ dưới đây giải quyết vấn đề trên bằng cách sử dụng từ khóa this:
Kết quả:
111 Viet 222 Nam
Nếu biến cục bộ và biến toàn cục có tên khác nhau thì không cần sử dụng từ khóa this.
Kết quả:
111 Viet 222 Name
2. Sử dụng this() gọi Constructor của lớp hiện tại.
Phương thức this() có thể được sử dụng để gọi Constructor của lớp hiện tại. Cách sử dụng này sẽ hữu dụng hơn nếu bạn có nhiều Constructor trong một lớp và bạn muốn sử dụng lại Constructor.
Ví dụ:
Kết quả:
call Constructor mặc định call Constructor mặc định 111 Viet 222 Nam
Ví trí sử dụng this() để gọi Constructor
this() được dùng để sự dụng lại Constructor trong Constructor khác. Nó duy trì 1 chuỗi các Constructor.
Ví dụ:
Kết quả:
111 Viet null 222 Nam Ha Noi
Quy tắc: this() phải được khai báo dòng lệnh đầu tiên trong Constructor.
Ví dụ:
Kết quả:
Compile Time Error
3. Gọi phương thức của lớp hiện tại.
Bạn có thể sử dụng từ khóa this để gọi phương thức của lớp hiện tại. Nếu bạn không sử dụng từ khóa this, trình biên dịch sẽ tự động thêm từ khóa this cho việc gọi phương thức.

Hãy xem ví dụ sau để hiểu rõ hơn.
Kết quả:
Gọi phương thức bằng từ khóa this
4. Sử dụng từ khóa this như một tham số của phương thức.
Từ khóa this có thể được dùng như một tham số trong phương thức. Cách dùng này chủ yếu được sử dụng trong sử lý sự kiện.
Hãy xem ví dụ sau để hiểu rõ hơn.
Kết quả:
Hello Java
Từ khóa this được sử dụng như một tham số trong việc xử lý sự kiện hoặc trong trường hơp mà chúng ta phải cung cấp tham chiếu của một lớp cho một lớp khác.
5. Sử dụng từ khóa this như một tham số của Constructor.
Bạn cũng có thể truyền từ khóa this trong Constructor. Tính năng này rất hữu ích nếu chúng ta phải sử dụng một đối tượng trong nhiều lớp.
Ví dụ:
Kết quả:
10
6. Sử dụng từ khóa this để trả về instance của lớp hiện tại.
Chúng ta có thể trả về instance của lớp hiện tại bằng cách sử dụng từ khóa this. Trong trường hợp này, kiểu trả về của phương thức phải là kiểu class (không là kiểu nguyên thủy).
Ví dụ:
Kết quả:
Hello java
Ví dụ chứng minh rằng từ khóa this tham chiếu tới biến instance của lớp hiện tại. Chúng ta in biến tham chiếu và this, kết quả của chúng là giống nhau.
Kết quả:
A5@22b3ea59 A5@22b3ea59
Từ khóa super trong java
Từ khóa super trong java là một biến tham chiếu được sử dụng để tham chiếu trực tiếp đến đối tượng của lớp cha gần nhất.
Bất cứ khi nào bạn tạo ra instance(thể hiển) của lớp con, một instance của lớp cha được tạo ra ngầm định, nghĩa là được tham chiếu bởi biến super.
Trong java, từ khóa super có 3 cách sử dụng như sau:
- Từ khóa super được sử dụng để tham chiếu trực tiếp đến biến instance của lớp cha gần nhất.
- super() được sử dụng để gọi trực tiếp Constructor của lớp cha.
- Từ khóa super được sử dụng để gọi trực tiếp phương thức của lớp cha.
1. Tham chiếu trực tiếp đến biến instance của lớp cha.
Từ khóa super được sử dụng để tham chiếu trực tiếp đến biến instance của lớp cha.
Ví dụ: khi không sử dụng từ khóa super
Kết quả:
100
Ví dụ: khi sử dụng từ khóa super
Kết quả:
50
2. Sử dụng super()
Trong java, super() được sử dụng để gọi trực tiếp Constructor của lớp cha.
Kết quả:
Vehicle is created Bike is created
Note: super() được tự động thêm vào mỗi Constructor của class bởi trình biên dịch.

Như chúng ta đã biết Constructor được tạo ra tự động bởi trình biên dịch nhưng nó cũng thêm super() vào câu lệnh đầu tiên. Nếu bạn tạo Constructor và bạn không có this() hoặc super() ở dòng lệnh đầu tiên, trình biên dịch sẽ cung cấp super() của Constructor.
Một ví dụ khác của từ khóa super nơi super() được cung cấp ngầm định bởi trình biên dịch.
Kết quả:
Vehicle is created 10
3. super được sử dụng để gọi trực tiếp phương thức của lớp cha.
Từ khóa super cũng có thể được sử dụng để gọi phương thức của lớp cha. Nó nên được sử dụng trong trường hợp lớp chứa các phương thức tương tự như lớp cha như trong ví dụ dưới đây:
Kết quả:
welcome to java welcome
Trong ví dụ trên cả hai lớp Student và Person đều có phương thức message(). Nếu bạn gọi phương thức message() từ lớp Student thì phương thức message của Student sẽ đươc thực thi vì phương thức ở local sẽ được ưu tiên.
Trong TH không có phương thức ở class con giống class cha thì không cần phải sử dụng super. Ví dụ:
Kết quả:
welcome
0 Nhận xét