Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
301 KB
Nội dung
1 1 Chương 5. Lớp trừu Chương 5. Lớp trừu tượng, Gói, Giao diện tượng, Gói, Giao diện 2 Mục đích & yêu cầu Mục đích & yêu cầu Giới thiệu một thành phần cơ bản: Đối tượng Giới thiệu một thành phần cơ bản: Đối tượng Object, Lớp trừu tượng, gói, giao diện. Object, Lớp trừu tượng, gói, giao diện. Giải thích được lớp trừu tượng là gì, Gói, giao Giải thích được lớp trừu tượng là gì, Gói, giao diện là gì? diện là gì? Sử dụng các thành phần này, viết một Sử dụng các thành phần này, viết một chương trình đơn giản. chương trình đơn giản. 3 Nội dung chính Nội dung chính 1. 1. Đối tượng Object Đối tượng Object 2. 2. Lớp trừu tượng Lớp trừu tượng 3. 3. Gói - Packages Gói - Packages 4. 4. Giao diện – Interfaces Giao diện – Interfaces 4 1. Đối tượng Object 1. Đối tượng Object Đây là đối tượng cấp cao nhất của mọi lớp trong Đây là đối tượng cấp cao nhất của mọi lớp trong Java. Mọi lớp trong Java đều kế thừa từ lớp này. Java. Mọi lớp trong Java đều kế thừa từ lớp này. Đối tượng Object có một số phương thức: Đối tượng Object có một số phương thức: • public boolean equals(Object) public boolean equals(Object) • public String toString() public String toString() Ta có thể dùng tham chiếu của lớp Object để Ta có thể dùng tham chiếu của lớp Object để tham chiếu đến một đối tượng thuộc lớp bất kỳ. tham chiếu đến một đối tượng thuộc lớp bất kỳ. • Ví dụ: Object o = new SinhVien(…); Ví dụ: Object o = new SinhVien(…); 5 2- Lớp trừu tượng 2- Lớp trừu tượng Lớp trừu tượng là gì? Lớp trừu tượng là gì? • Xem kết qủa của việc khái quát hóa sau: Xem kết qủa của việc khái quát hóa sau: class ANIMAL void Travel(); class Bird void Travel() class Fish void Travel() class Snake void Travel() Bạn có hình dung nổi một ANIMAL di chuyển như thế nào không? Bạn có hình dung nổi một đối tượng thuộc các lớp này di chuyển như thế nào không? Không Trừu tượng Có cụ thể 6 Là kết qủa của việc khái quát hóa Là kết qủa của việc khái quát hóa cao đến nỗi cao đến nỗi không biết viết code thế nào. không biết viết code thế nào. Là lớp có những hành vi chỉ khai báo mà không Là lớp có những hành vi chỉ khai báo mà không viết code. Để dành code cụ thể sẽ được hiện thực viết code. Để dành code cụ thể sẽ được hiện thực ở các lớp dẫn xuất ở các lớp dẫn xuất ( lớp cụ thể hơn). ( lớp cụ thể hơn). Tư duy tự nhiên: Tư duy tự nhiên: • Từ các đối tượng cụ thể Từ các đối tượng cụ thể Lớp cụ thể. Lớp cụ thể. • Từ các lớp cụ thể có cùng tính chất Từ các lớp cụ thể có cùng tính chất lớp trừu tượng. lớp trừu tượng. 2 - Lớp trừu tượng 2 - Lớp trừu tượng 7 2 - Lớp trừu tượng 2 - Lớp trừu tượng Phương thức trừu tượng là phương Phương thức trừu tượng là phương thức thức không cài đặt chi tiết không cài đặt chi tiết . . Khai báo PTTT: Khai báo PTTT: abstract <khai báo phương thức>; abstract <khai báo phương thức>; Ví dụ: khai báo phương thức Ví dụ: khai báo phương thức duocTN() của lớp SV. duocTN() của lớp SV. abstract boolean duocTN(); abstract boolean duocTN(); 8 2 - Lớp trừu tượng 2 - Lớp trừu tượng Lớp trừu tượng Lớp trừu tượng là lớp chứa ít nhất một là lớp chứa ít nhất một PTTT. PTTT. Lớp trừu tượng dùng để làm cơ sở định Lớp trừu tượng dùng để làm cơ sở định nghĩa các lớp khác. nghĩa các lớp khác. Khai báo lớp trừu tượng: Khai báo lớp trừu tượng: abstract class <tên lớp> abstract class <tên lớp> { { khai báo các thành phần của lớp khai báo các thành phần của lớp } } 9 2 - Lớp trừu tượng 2 - Lớp trừu tượng Ví dụ: khai báo lớp trừu tượng SV Ví dụ: khai báo lớp trừu tượng SV abstract class SV abstract class SV { { … … abstract public boolean duocTN(); abstract public boolean duocTN(); } } Lưu ý: không thể tạo đối tượng từ lớp trừu Lưu ý: không thể tạo đối tượng từ lớp trừu tượng. tượng. Ví dụ: không thể tạo đối tượng từ lớp SV Ví dụ: không thể tạo đối tượng từ lớp SV SV s = new SV(…); SV s = new SV(…); sai sai 10 2 - Lớp trừu tượng 2 - Lớp trừu tượng Lớp kế thừa từ lờp trừu tượng phải khai Lớp kế thừa từ lờp trừu tượng phải khai báo tường minh các PTTT nếu không cũng báo tường minh các PTTT nếu không cũng là lớp trừu tượng. là lớp trừu tượng. Ví dụ: khai báo lớp SVSP kế thừa từ lớp SV Ví dụ: khai báo lớp SVSP kế thừa từ lớp SV class SVSP extends SV{ class SVSP extends SV{ … … public boolean duocTN(){…} public boolean duocTN(){…} } } [...]... nội dung của giao diện } 33 4 Giao diện (Interface) Ví dụ: Giao diện tính toán trên các hình interface TinhToanHinh { double PI = 3.14 15; double dientich(); double chuvi(); } 34 4 Giao diện (Interface) Có thể coi giao diện như một lớp trừu tượng đặc biệt: các phương thức đều trừu tượng Khai báo lớp cài đặt giao diện: phải tường minh các phương thức của giao diện Cú pháp: class implements... của lớp trừu tượng Không thể khởi tạo một đối tượng thuộc lớp trừu tượng (abstract) mà chỉ khởi tạo đối tượng thuộc lớp cụ thể (concrete) 14 2 - Lớp trừu tượng Vì biến đối tượng là tham khảo chỉ đến đối tượng nên một biến thuộc lớp cha nhưng lại chỉ đến một lớp con là lớp trừ tượng hoặc là lớp cụ thề ĐÂY LÀ CÁCH DÙNG TÍNH ĐA HÌNH TRONG OOP 15 2 - Lớp trừu tượng Lớp con cũng là lớp trừu tượng Biến lớp. .. Cùng gói, khác class NO YES YES YES lớp con trong cùng gói với lớp cha NO YES YES YES Khác gói, khác lớp NO NO NO YES Lớp con khác gói với lớp cha NO NO YES YES 32 4 Giao diện (Interface) Giao diện là một giải pháp của Java nhằm thay thế cho đa kế thừa Một giao diện là một tập các hằng, các mẫu phương thức (prototype) mà không có cài đặt chi tiết Khai báo giao diện: interface ... - Lớp trừu tượng Ví dụ: lớp sinh viên tại chức (SVTC) kế thừa từ lớp SV, là lớp trừu tượng abstract class SVTC extends SV { Protected String noiCT; … //abstract public boolean duocTN(); } 11 2 - Lớp trừu tượng Hành vi không có chỉ thị abstract thì phải có code Có hành vi abstract mà lớp không có chỉ thị abstract 12 2 - Lớp trừu tượng Chưa thể viết code vì lương 1 người = lương cơ bản * hệ số 13 5. 3-... Khai báo lớp cài đặt giao diện: phải tường minh các phương thức của giao diện Cú pháp: class implements { Khai báo các thành phần của lớp Cài đặt chi tiết các phương thức của các giao diện } 35 4 Giao diện (Interface) Ví dụ: lớp hình chữ nhật cài đặt giao diện TinhToanHinh class HinhChuNhat implements TinhToanHinh{ private double dai, rong; public HinhChuNhat(double d, double... tượng Biến lớp ông chỉ đến đối tượng lớp cháu 16 2 - Lớp trừu tượng Chú ý về kết hợp abstract với các chỉ thị khác 17 2.2 Ví dụ Ví dụ: xây dựng các lớp tính diện tích các hình: tròn, tam giác, chữ nhật Chương trình minh họa gồm một mảng các đối tượng và tính tổng diện tích của các hình trong mảng 18 Lớp HINH abstract class HINH { abstract double dienTich(); } 19 Lớp HinhTron class HinhTron extends... ds[]=new HINH [5] ; ds[0]=new HinhTron(1.3); ds[1]=new TamGiac(3,4 ,5) ; ds[2]=new HinhCN(2 ,5) ; ds[3]=new HinhTron(3.0); ds[4]=new HinhCN(4,3); //Tính tổng diện tích các hình double tongDT=0; for(int i=0;i . Object, Lớp trừu tượng, gói, giao diện. Object, Lớp trừu tượng, gói, giao diện. Giải thích được lớp trừu tượng là gì, Gói, giao Giải thích được lớp trừu tượng là gì, Gói, giao diện là gì? diện. 1 1 Chương 5. Lớp trừu Chương 5. Lớp trừu tượng, Gói, Giao diện tượng, Gói, Giao diện 2 Mục đích & yêu cầu Mục đích & yêu cầu Giới. thể. • Từ các lớp cụ thể có cùng tính chất Từ các lớp cụ thể có cùng tính chất lớp trừu tượng. lớp trừu tượng. 2 - Lớp trừu tượng 2 - Lớp trừu tượng 7 2 - Lớp trừu tượng 2 - Lớp trừu tượng Phương