intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Object-Oriented programming: Chương 5 - Văn Thị Thiên Trang

Chia sẻ: Nhân Chi Sơ | Ngày: | Loại File: PDF | Số trang:7

32
lượt xem
1
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương 5 – Lớp trừu tượng. Chương này 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; giải thích được lớp trừu tượng là gì, gói, giao diện là gì? sử dụng các thành phần này, viết một chương trình đơn giản. Mời tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Object-Oriented programming: Chương 5 - Văn Thị Thiên Trang

Mục đích & yêu cầu<br /> <br /> Chương 5:<br /> <br /> Giới thiệu một thành phần cơ bản: Đối tượng<br /> <br /> LỚP TRỪU TƯỢNG<br /> <br /> Object, Lớp trừu tượng, gói, giao diện.<br /> Giải thích được lớp trừu tượng là gì, Gói, giao<br /> diện là gì?<br /> Sử dụng các thành phần này, viết một chương<br /> trình đơn giản.<br /> 2<br /> <br /> 1<br /> <br /> Nội dung chính<br /> 1.<br /> <br /> Đối tượng Object<br /> <br /> 2.<br /> <br /> 1. Đối tượng Object<br /> <br /> Lớp trừu tượng<br /> <br /> Đây là đối tượng cấp cao nhất của mọi lớp trong<br /> Java. Mọi lớp trong Java đều kế thừa từ lớp này.<br /> Đối tượng Object có một số phương thức:<br /> • public boolean equals(Object)<br /> • public String toString()<br /> <br /> Ta có thể dùng tham chiếu của lớp Object để tham<br /> chiếu đến một đối tượng thuộc lớp bất kỳ.<br /> • Ví dụ: Object o = new SinhVien(…);<br /> 3<br /> <br /> 4<br /> <br /> 1<br /> <br /> 2- Lớp trừu tượng<br /> <br /> 2 - Lớp trừu tượng<br /> <br /> Lớp trừu tượng là gì?<br /> <br /> Là kết qủa của việc khái quát hóa cao đến nỗi<br /> <br /> • Xem kết qủa của việc khái quát hóa sau:<br /> Bạn có hình<br /> dung nổi một<br /> ANIMAL di<br /> chuyển như thế<br /> nào không?<br /> <br /> không biết viết code thế nào.<br /> Là lớp có những hành vi chỉ khai báo mà không<br /> <br /> class ANIMAL<br /> <br /> Không<br /> Trừu tượng<br /> <br /> void Travel();<br /> <br /> viết code. Để dành code cụ thể sẽ được hiện thực<br /> ở các lớp dẫn xuất ( lớp cụ thể hơn).<br /> Tư duy tự nhiên:<br /> <br /> class Bird<br /> Bạn có hình dung nổi<br /> một đối tượng thuộc<br /> các lớp này di chuyển<br /> như thế nào không?<br /> <br /> class Fish<br /> <br /> class Snake<br /> <br /> void Travel()<br /> <br /> void Travel()<br /> <br /> void Travel()<br /> <br /> Có<br /> <br /> • Từ các đối tượng cụ thể<br /> <br /> Lớp cụ thể.<br /> <br /> • Từ các lớp cụ thể có cùng tính chất<br /> <br /> lớp trừu tượng.<br /> <br /> cụ thể<br /> 5<br /> <br /> 6<br /> <br /> 2 - Lớp trừu tượng<br /> <br /> 2 - Lớp trừu tượng<br /> <br /> Phương thức trừu tượng là phương thức<br /> không cài đặ chi tiết.<br /> khô<br /> ài đặt hi tiết.<br /> iế<br /> Khai báo PTTT:<br /> <br /> Lớp trừu tượng là lớp chứa ít nhất một PTTT.<br /> Lớp trừu tượng dù<br /> ớ<br /> ừ<br /> dùng để là cơ sở đ h nghĩa<br /> làm<br /> ở định<br /> hĩ<br /> các lớp khác.<br /> Khai báo lớp trừu tượng:<br /> <br /> abstract ;<br /> <br /> Ví dụ: khai báo phương thức duocTN()<br /> của lớp SV.<br /> abstract boolean duocTN();<br /> <br /> abstract class <br /> {<br /> khai báo các thành phần của lớp<br /> }<br /> <br /> 7<br /> <br /> 8<br /> <br /> 2<br /> <br /> 2 - Lớp trừu tượng<br /> <br /> 2 - Lớp trừu tượng<br /> <br /> Ví dụ: khai báo lớp trừu tượng SV<br /> <br /> Lớp kế thừa từ lờp trừu tượng phải khai<br /> <br /> abstract class SV<br /> {<br /> <br /> báo tường minh các PTTT nếu không cũng<br /> là lớp trừu tượng.<br /> <br /> …<br /> abstract public boolean duocTN();<br /> <br /> Ví dụ: khai báo lớp SVSP kế thừa từ lớp<br /> <br /> }<br /> <br /> SV<br /> <br /> Lưu ý không thể tạo đối tượng từ lớp trừu<br /> ý:<br /> g<br /> ạ<br /> ợ g<br /> p<br /> tượng.<br /> Ví dụ: không thể tạo đối tượng từ lớp SV<br /> SV s = new SV(…);<br /> <br /> class SVSP extends SV{<br /> …<br /> public boolean duocTN(){…}<br /> <br /> sai<br /> 9<br /> <br /> }<br /> <br /> 2 - Lớp trừu tượng<br /> <br /> 10<br /> <br /> 2 - Lớp trừu tượng<br /> <br /> Ví dụ: lớp sinh viên tại chức (SVTC) kế<br /> thừa<br /> thừ từ lớp SV, là lớp trừu tượng.<br /> lớ SV<br /> lớ t ừ tượ<br /> abstract class SVTC extends SV<br /> {<br /> Protected String noiCT;<br /> …<br /> //abstract public boolean duocTN();<br /> <br /> Hành vi không có<br /> chỉ thị abstract<br /> thì phải có code<br /> <br /> Có hành vi<br /> abstract mà<br /> lớp không<br /> có chỉ thị<br /> abstract<br /> <br /> }<br /> 11<br /> <br /> 12<br /> <br /> 3<br /> <br /> 5.35.3- Đặc điểm của lớp trừu tượng.<br /> <br /> 2 - Lớp trừu tượng<br /> <br /> Không thể<br /> khởi tạo<br /> một đối<br /> tượng thuộc<br /> lớp trừu<br /> tượng<br /> (abstract)<br /> mà chỉ khởi<br /> tạo đối<br /> tượng thuộc<br /> lớp cụ thể<br /> (concrete).<br /> <br /> Chưa thể viết code vì lương 1 người =<br /> Ch<br /> hể iế<br /> d ìl<br /> ời<br /> lương cơ bản * hệ số<br /> <br /> 13<br /> <br /> 2 - Lớp trừu tượng<br /> <br /> 14<br /> <br /> 2 - Lớp trừu tượng<br /> • Lớp con cũng là lớp trừu tượng<br /> <br /> Vì biến đối tượng là tham<br /> khảo chỉ đến đối tượng<br /> nên một biến thuộc lớp<br /> cha nhưng lại chỉ đến<br /> một lớp con là lớp trừ tượng<br /> hoặc là lớp cụ thề.<br /> ĐÂY LÀ CÁCH DÙNG TÍNH<br /> ĐA HÌNH TRONG OOP<br /> <br /> 15<br /> <br /> Biến lớp ông chỉ đến<br /> đối tượng lớp cháu<br /> <br /> 16<br /> <br /> 4<br /> <br /> 2 - Lớp trừu tượng<br /> <br /> 2.2 Ví dụ<br /> Ví dụ: xây dựng các lớp tính diện tích<br /> các hình: tròn, tam giác, chữ nhật.<br /> chữ<br /> Chương trình minh họa gồm một mảng<br /> các đối tượng và tính tổng diện tích của<br /> các hình trong mảng.<br /> g<br /> g<br /> <br /> Chú ý về kết hợp<br /> abstract với các<br /> chỉ thị khác<br /> <br /> 17<br /> <br /> 18<br /> <br /> Lớp HINH<br /> <br /> Lớp HinhTron<br /> class HinhTron extends HINH<br /> {<br /> <br /> abstract class HINH<br /> {<br /> abstract double dienTich();<br /> }<br /> <br /> double bk;<br /> public HinhTron(double b){ bk = b;}<br /> public double dienTich()<br /> {<br /> return bk*bk*Math.PI;<br /> <br /> }<br /> <br /> }<br /> 19<br /> <br /> 20<br /> <br /> 5<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2