Toán tử tạo lập đối tượng

Một phần của tài liệu Lap Trinh huong doi tuong JAVA (Trang 78 - 81)

 Mục đích chính của toán tử tạo lập (constructor) là đặt các giá trị khởi tạo cho các đối tượng khi một đối tượng được tạo ra bằng toán tử

// Nội dung cần tạo lập }

 Toán tử tạo lập giống như các hàm thành phần và chỉ khác ở phần đầu của định nghĩa. Phần [<Thuộc tính>] <Tên lớp> gồm những thông tin sau:

o <Thuộc tính> chỉ có thể sử dụng: public, protected, private hoặc mặc định như đã trình bày ở phần trên.

o <Tên lớp> luôn trùng với tên của lớp chứa toán tử đó.

Một số lưu ý đối với các toán tử tạo lập:

 Không sử dụng các bổ ngữ khác với toán tử tạo lập,

 Toán tử tạo lập là loại hàm đặc biệt không có kiểu trả lại, ngay cả kiểuvoid cũng không được sử dụng,

 Toán tử tạo lập chỉ sử dụng được với toán tử new.

6.5.1 Toán tử tạo lập mặc định

 Toán tử tạo lập mặc định (default) là toán tử tạo lập không có tham biến.

<Tên lớp> () {/* ... */ }

 Khi một lớp không định nghĩa một toán tử tạo lập nào cả thì hệ thống sẽ tự động cung cấp toán tử tạo lập mặc định không tường minh. Toán tử tạo lập mặc định không tường minh tương đương với dạng:

<Tên lớp> () { } // Không làm gì cả class BongDen{ // Biến thành phần (1) int soWatts; boolean batTat; String viTri;

// Không định nghĩa toán tử tạo lập // ...

}

class NhaKho{

public static void main(String args[]){

BongDen den1 = new BongDen();// Gọi toán tử tạo lập mặc định // ...

} }

Khi sử dụng với toán tử new để tạo ra đối tượng thì các biến kiểu nguyên thủy như soWatts, batTat, viTri sẽ được khởi tạo các giá trị mặc định tương ứng là 0,false, null.

Chúng ta cũng có thể định nghĩa toán tử tạo lập mặc định tường minh. Ví dụ class BongDen{ // Biến thành phần (1) int soWatts; boolean batTat; String viTri;

// Định nghĩa toán tử tạo lập mặc định BongDen(){

soWatts = 40; batTat = true;

viTri = new String(“XX”); }

// ... }

class NhaKho{

public static void main(String args[]){

BongDen den1= new BongDen();// Gọi toán tử tạo lập mặc định tường //minh

} }

Lưu ý: Khi trong một lớp đã định nghĩa một hay nhiều toán tử tạo lập thì hệ thống sẽ không cung cấp toán tử tạo lập mặc định không tường minh. Do đó khi nuốn sử dụng toán tử tạo lập mặc định thì phải định nghĩa tường minh toán tử đó. Ví dụ: class BongDen{ // Biến thành phần (1) int soWatts; boolean batTat; String viTri;

// Định nghĩa toán tử tạo lập không mặc định BongDen(int w, boolean s, String v){

soWatts = w; batTat = s;

viTri = new String(v); }

// ... }

class NhaKho{

public static void main(String args[]){

BongDen d1=new BongDen();// Sai vì toán tử tạo lập mặc định không được định nghĩa

BongDen d2 = new BongDen(100, true, “Nha bep”); // OK // ...

} }

6.5.2 Nạp chồng toán tử tạo lập

 Giống như các hàm thành phần, các toán tử tạo lập có thể nạp chồng (tải bội - overloaded) với nhiều nội dung thực hiện khác nhau. Ví dụ, trong lớp BongDen thì toán tử tạo lập BongDen() có định nghĩa mặc định tường minh (1), và nạp chồng để khởi tạo đối tượng với các giá trị xác định khác. Ví dụ, class BongDen{ // Biến thành phần (1) int soWatts; boolean batTat; String viTri;

batTat = true;

viTri = new String(“XX”); }

// Định nghĩa toán tử tạo lập không mặc định BongDen(int w, boolean s, String v){

soWatts = w; batTat = s;

viTri = new String(v); }

// ... }

class NhaKho{

public static void main(String args[]){ BongDen d1=new BongDen(); // OK

BongDen d2 = new BongDen(100, true, “Nha bep”); // OK // ...

} }

Một phần của tài liệu Lap Trinh huong doi tuong JAVA (Trang 78 - 81)

Tải bản đầy đủ (DOC)

(149 trang)
w