Wednesday, July 4, 2007

Tìm hiểu lập trình hướng đối tượng (OOP) - 3

Trong phần này ta sử dụng các ví dụ bằng Java để mô tả lại các phần đã đi qua với class

Định nghĩa lớp

Lớp được định nghĩa bởi


class class_name {


...


}



Ví dụ:


class MyDate {


}


Thuộc tính, phương thức và kiểm soát truy cập


class MyDate {


private int year, mon, day;


public int getYear() {


return year;


}


public boolean setYear(int y) {


...


}


...


}




Phương thức khởi tạo (constructor)
Dữ liệu nên được khởi tạo trước khi sử dụng

Phương thức khởi tạo

* Là phương thức đặc biệt được gọi tự động sau khi tạo ra đối tượng
* Nhằm mục đích chính là khởi tạo cho các thuộc tính của đối tượng
* Có tên trùng với tên lớp
* Không nhận giá trị trả lại
* Mỗi khi đối tượng được tạo ra bởi toán tử new
* Hệ thống sẽ gọi phương thức tạo constructor mặc định => là một phương thức rỗng (không làm gì cả)




Ví dụ: Constructor rỗng

class SayMsg {


}…


SayMsg msg = new SayMsg();




class SayMsg {


SayMsg() {


System.out.println(”Hello”);


}


SayMsg(String s) {


System.out.println(s);


}


}

...
SayMsg msg1 = new SayMsg();
SayMsg msg2 = new SayMsg(”Java”);


Lưu ý: nếu phương thức tạo mặc định SayMsg() không được khai báo và trong class cũng không khai báo thêm phương thức tạo nào khác thì với câu lệnh "SayMsg msg1 = new SayMsg();" hệ thống sẽ tự động gọi đến phương thức tạo mặc định. Nhưng nếu trong class không khai báo phương thức tạo mặc định mà có khai báo một phương thức tạo khác (vd: SayMsg(String s){...}) thì câu lệnh "SayMsg msg1 = new SayMsg();" sẽ bị báo lỗi ngay

Ta có thêm một dạng phương thức tạo khác, đó là khởi tạo đối tượng từ một đối tượng khác


public class MyItem {


private int attribute;


public MyItem () {...}


public MyItem (MyItem i) {


// khởi tạo đối tượng từ một đối tượng cùng lớp khác


attribute= i.getAttribute();


}


public int getAttribute(){


return attribute;


}


...


}


No comments:

Post a Comment