Constructor trong Java là gì? – Hướng Dẫn Java


Video đang hot


BẤM ĐỂ XEM Trong bài viết này, tất cả chúng ta sẽ tìm hiểu và khám phá về constructor của một đối tượng người tiêu dùng, làm thế nào để tạo ra chúng, sự khác nhau giữa constructor mặc định và constructor do tất cả chúng ta định nghĩa và ở đầu cuối overloaded constructor là gì những bạn nhé !

Định nghĩa constructor

Trong Java, constructor là một phương thức đặc biệt, nó được 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ề.

Bạn đang đọc: Constructor trong Java là gì? – Hướng Dẫn Java

Ví dụ :

123456789101112

packagecom.huongdanjava;

publicclassStudent{

privateStringname;

privateintage;

publicStudent(Stringname){

this.name=name;

}

}

Trong ví dụ trên, tất cả chúng ta đã định nghĩa một constructor cho đối tượng người tiêu dù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ả các 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:

12345678

packagecom.huongdanjava;

publicclassExample{

publicstaticvoidmain(String[]args){

Studentstudent=newStudent(” Khanh “);

}

}

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 người dùng, tất cả 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 người dùng của tất cả chúng ta .

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

1234567

packagecom.huongdanjava;

publicclassStudent{

privateStringname;

privateintage;

}

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

12345678

packagecom.huongdanjava;

publicclassExample{

publicstaticvoidmain(String[]args){

Studentstudent=newStudent();

}

}

Rõ ràng những bạn thấy, mặc dầu mình không định nghĩa bất kể constructor nào trong đối tượng người dùng Student nhưng mình vẫn hoàn toàn có thể khởi tạo đối tượng người tiêu dù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 người dù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 tất cả chúng ta đã định nghĩa một constructor cho đối tượng người dùng :

123456789101112

packagecom.huongdanjava;

publicclassStudent{

privateStringname;

privateintage;

publicStudent(Stringname){

this.name=name;

}

}

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

Constructor trong Java là gì?

Định nghĩa một constructor

Chúng ta hoàn toàn có thể định nghĩa constructor cho một đối tượng người dùng bất kể, khi đó tổng thể những thuộc tính của đối tượng người dùng gồm có những phương pháp, những instance variable hoàn toàn có thể được gọi tùy theo định nghĩa của tất cả chúng ta .
Ví dụ :

1234567891011121314

packagecom.huongdanjava;

publicclassStudent{

privateStringname;

privateintage;

publicStudent(Stringname){

this.name=

Xem thêm: Construction là gì? Giải nghĩa và hướng nghiệp với construction

name;

age=30;

}

}

Chúng ta hoàn toàn có thể sử dụng bốn access modifier để định nghĩa cho một constructor, và do vậy tất cả chúng ta hoàn toàn có thể số lượng giới hạn khoanh vùng phạm vi truy vấn của đối tượng người tiêu dùng từ những đối tượng người tiêu dùng khác .
Điều gì sẽ xảy ra nếu tất cả 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ư thể một phương pháp thông thường chứ không phải là một constructor .
Ví dụ :

1234567891011121314

packagecom.huongdanjava;

publicclassStudent{

privateStringname;

privateintage;

publicvoidStudent(Stringname){

this.name=name;

age=30;

}

}

Đố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 tất cả chúng ta khởi tạo đối tượng người dùng Student với một tham số name thì sẽ bị lỗi ngay .

Constructor trong Java là gì?

Overloaded constructor

Overloaded constructor là gì ? Đó là khi tất cả chúng ta định nghĩa nhiều constructor cho một đối tượng người tiêu dù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 tài liệu của tham số .
Ví dụ :

123456789101112131415161718192021

packagecom.huongdanjava;

publicclassStudent{

privateStringname;

privateintage;

publicStudent(intage){

this.age=age;

}

publicStudent(Stringname){

this.name=name;

}

publicStudent(Stringname,intage){

this.name=name;

this.age=age;

}

}

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

  • Các constructors, như mình đã nói, phải được định nghĩa sử dụng các tham số khác nhau cả về số lượng tham số lẫn kiểu dữ liệu của tham số.
  • Các 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:

123456789101112131415161718192021

packagecom.huongdanjava;

publicclassStudent{

privateStringname;

privateintage;

publicStudent(intage){

this.age=age;

}

publicStudent(Stringname){

this.name=name;

}

publicStudent(Stringname,intage){

this(name);

this.age=age;

}

}

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ì?

Xem thêm: Big C đầu tiên tại Việt Nam mang tên là gì? – DNTT online

5/5 – ( 4 bầu chọn )

Source: https://blogthuvi.com
Category: Blog

Thu_30_Dec_2021_00:55:21_+0000 #