Bài giảng Lớp và đối tượng trong Java - Nguyễn Việt Hà

pdf 17 trang hapham 2120
Bạn đang xem tài liệu "Bài giảng Lớp và đối tượng trong Java - Nguyễn Việt Hà", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_lop_va_doi_tuong_trong_java_nguyen_viet_ha.pdf

Nội dung text: Bài giảng Lớp và đối tượng trong Java - Nguyễn Việt Hà

  1. Lớpvàđốitượng trong Java
  2. Nội dung „ Định nghĩa lớp „ Thuộc tính „ Phương thức „ Kiểm soát truy cập „ Phương thức khởi tạo „ Thao tác với đối tượng NguyễnViệtHà Lớpvàđốitượng trong Java 2
  3. Tài liệu tham khảo „ Thinking in Java, chapter 1, 2 „ Java how to program, chapter 8 NguyễnViệtHà Lớpvàđốitượng trong Java 3
  4. Định nghĩalớp Lớp được định nghĩabởi class class_name { } Ví dụ: class MyDate { } NguyễnViệtHà Lớpvàđốitượng trong Java 4
  5. Đốitượng „ Đốitượng được thao tác thông qua tham chiếu Tham chiếu đóng vai trò gần giống như một con trỏ „ Đối tượng phải đượctạora một cách tường minh bằng toán tử new MyDate d; d = new MyDate(); MyDate myBirthday = d; NguyễnViệtHà Lớpvàđốitượng trong Java 5
  6. Thuộc tính, phương thứcvàkiểm soát truy cập class MyDate { private int year, mon, day; public int getYear() { return year; } public boolean setYear(int y) { } } NguyễnViệtHà Lớpvàđốitượng trong Java 6
  7. MyDate d = new MyDate(); d.year = 2005; // compile error d.setYear(2005); System.out.println(”Year=” + d.getYear()); NguyễnViệtHà Lớpvàđốitượng trong Java 7
  8. Phương thức trùng tên (overload) „ Có thểđịnh nghĩa các phương thức trùng tên, tuy nhiên phải phân biệtbởi danh sách tham số class MyDate { public boolean setMonth(int m) { } public boolean setMonth(String s) { } } d.setMonth(9); d.setMonth(”September”); NguyễnViệtHà Lớpvàđốitượng trong Java 8
  9. Phương thứckhởitạo (constructor) „ Dữ liệu nên đượckhởitạotrước khi sử dụng lỗi khởi tạo là một trong các lỗi phổ biến „ Phương thứckhởitạo là phương thức đặcbiệt đượcgọitựđộng sau khi tạora đốitượng nhằmmục đích chính là khởitạo cho các thuộc tính của đốitượng NguyễnViệtHà Lớpvàđốitượng trong Java 9
  10. Phương thứckhởitạo „ 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ẽ tự động gọi phương thức khởi tạo. nếu không khai báo, hệ thống sẽ gọi constructor mặc định là một phương thức rỗng NguyễnViệtHà Lớpvàđốitượng trong Java 10
  11. Ví dụ: Constructor rỗng class SayMsg { } SayMsg msg = new SayMsg(); NguyễnViệtHà Lớpvàđốitượng trong Java 11
  12. Ví dụ: Constructor mặc định class SayMsg { SayMsg() { System.out.println(”Hello”); } } SayMsg msg = new SayMsg(); NguyễnViệtHà Lớpvàđốitượng trong Java 12
  13. Ví dụ: class SayMsg { SayMsg() { System.out.println(”Hello”); } SayMsg(String s) { System.out.println(s); } } SayMsg msg1 = new SayMsg(); SayMsg msg2 = new SayMsg(”Java”); NguyễnViệtHà Lớpvàđốitượng trong Java 13
  14. Ví dụ: class SayMsg { SayMsg(String s) { System.out.println(s); } } SayMsg msg1 = new SayMsg(); // error SayMsg msg2 = new SayMsg(””); NguyễnViệtHà Lớpvàđốitượng trong Java 14
  15. Copy constructor „ Khởitạo đốitượng bằng một đốitượng khác public class MyDate { private int year, month, day; public MyDate() { } public MyDate(MyDate d) { year = d.year; month = d.month; day = d.day; } } NguyễnViệtHà Lớpvàđốitượng trong Java 15
  16. MyDate d = new MyDate(); d.setYear(2005); d.setMonth(9); d.setDay(12); MyDate openDay = new MyDate(d); MyDate dd = d; NguyễnViệtHà Lớpvàđốitượng trong Java 16
  17. Kiểmsoáttruy cập public class MyDate { private int year, month, day; public MyDate() { } public MyDate(MyDate d) { year = d.year; // year = d.getYear(); month = d.month; day = d.day; } } NguyễnViệtHà Lớpvàđốitượng trong Java 17