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
Ví dụ:
Thuộc tính, phương thức và kiểm soát truy cập
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
...
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
Đị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