Hỏi Đáp

Constructor trong Java Là gì vậy?

Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh

Trong bài viết này, chúng ta sẽ tìm hiểu về constructor của một đối tượng, làm thế nào để tạo ra chúng, sự khác nhau giữa constructor mặc định và constructor do chúng ta định nghĩa và cuối cùng overloaded constructor Là gì vậy những bạn nhé!

Constructor Là gì vậy

Định nghĩa constructor

Bạn đang đọc: Constructor trong Java Là gì vậy?

Trong Java, constructor là một phương thức đặc biệt, nó được sử dụng để khởi tạo và trả về đối tượng của lớp mà nó được định nghĩa. Constructor sẽ có tên trùng với tên của lớp mà nó được định nghĩa và chúng không được định nghĩa một kiểu giá trị trả về.

Ví dụ:

Trong ví dụ trên, chúng ta đã định nghĩa một constructor cho đối tượng Student, như những bạn thấy nó không có kiểu giá trị trả về và tên của nó trùng tên với lớp mà nó được định nghĩa.

Khi một đối tượng được khởi tạo bằng cách gọi constructor của nó với toán tử new thì nó sẽ gọi constructor của lớp cha và tất cả những instance variable sẽ được khởi tạo với giá trị mặc định của nó. Trở lại ví dụ trên thì khi khởi tạo đối tượng Student bằng cách gọi:

Tìm hiểu thêm: Vật liệu composite là gì vậy? Thành phần cấu tạo và ứng dụng của nó?

thì giá trị của biến age trong đối tượng Student sẽ có giá trị mặc định của kiểu int là 0.

Constructor mặc định

Nếu trong một đối tượng, chúng ta không định nghĩa một constructor nào cả thì mặc định Java sẽ thêm một constructor mặc định vào đối tượng của chúng ta.

Ví dụ, mình định nghĩa đối tượng Student như sau:

Lúc này, mình có thể khởi tạo đối tượng Student bằng cách:

Tham khảo thêm: Kính Gentle Monster: Thông tin chi tiết về thương hiệu kính mắt Gentle Monster

Rõ ràng những bạn thấy, mặc dù mình không định nghĩa bất kỳ constructor nào trong đối tượng Student nhưng mình vẫn có thể khởi tạo đối tượng này.

Constructor mặc định sẽ không chứa bất kỳ tham số nào và khi được gọi để khởi tạo đối tượng, nó cũng gọi constructor của lớp cha và khởi tạo giá trị mặc định cho những instance variable.

Trong trường hợp chúng ta đã định nghĩa một constructor cho đối tượng:

thì Java sẽ không tự động thêm constructor mặc định nữa và khi đó nếu chúng ta cố gắng khởi tạo đối tượng bằng constructor mặc định thì sẽ bị lỗi compile ngay:

Constructor trong Java Là gì vậy?

Định nghĩa một constructor

Chúng ta có thể định nghĩa constructor cho một đối tượng bất kỳ, khi đó tất cả những thuộc tính của đối tượng bao gồm những phương thức, và những instance variable có thể được gọi tùy theo định nghĩa của chúng ta.

Ví dụ:

Chúng ta có thể sử dụng bốn access modifier để định nghĩa cho một constructor, và do vậy chúng ta có thể giới hạn phạm vi truy cập của đối tượng từ những đối tượng khác.

Điều gì sẽ xảy ra nếu chúng ta định nghĩa một constructor với một kiểu giá trị trả về? Khi đó, Java sẽ coi nó như là một phương thức bình thường chứ không phải là một constructor.

Ví dụ:

Xem thêm: QuickTime Alternative Là gì vậy? Thông tin, link download, file hỗ trợ

Đối tượng Student lúc này chỉ có một constructor mặc định do Java thêm vào mà thôi. Nếu chúng ta khởi tạo đối tượng Student với một tham số name thì sẽ bị lỗi ngay.

Constructor trong Java Là gì vậy?

Overloaded constructor

Overloaded constructor Là gì vậy? đó chính là khi chúng ta định nghĩa nhiều constructor cho một đối tượng và mỗi constructor sẽ có những tham số khác nhau cả về số lượng tham số lẫn kiểu dữ liệu của tham số.

Ví dụ:

Nguyên tắc để định nghĩa overloaded constructor là:

những constructors, như mình đã nói, phải được định nghĩa sử dụng những tham số khác nhau cả về số lượng tham số lẫn kiểu dữ liệu của tham số.những constructor không được định nghĩa chỉ khác nhau ở access modifier.

Trong trường hợp đối tượng có nhiều constructor và chúng ta muốn gọi constructor này từ constructor khác thì bắt buộc chúng ta phải sử dụng từ khóa this như sau:

Câu lệnh this để gọi constructor khác này bắt buộc phải nằm ở dòng đầu tiên của constructor, nếu nó nằm sau một câu lệnh bất kỳ thì code chúng ta sẽ bị lỗi compile ngay:

Constructor trong Java Là gì vậy?

Bài viết gốc được đăng tải tại sentayho.com.vn

Có thể bạn quan tâm:

Lập trình hướng đối tượng (OOPs) trong javaTạo số và chuỗi ngẫu nhiên trong JavaException Là gì vậy? Tổng quan về Exception trong Java

Xem thêm những việc làm Java hấp dẫn tại TopDev

Tham khảo thêm: GDN Là gì vậy? Hướng Dẫn Chạy Quảng Cáo Google Display Network – Design box

Tìm hiểu thêm: Macchiato là gì vậy? Những điều thú vị về macchiato