Tài liệu BÀI 6 LẬP TRÌNH TỔNG QUÁT TRONG JAVA pptx

30 816 1
Tài liệu BÀI 6 LẬP TRÌNH TỔNG QUÁT TRONG JAVA pptx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BÀI LẬP TRÌNH TỔNG QUÁT TRONG JAVA GIẢNG VIÊN TRẦN THỊ VÂN VIÊN: v1.0011107228 TÌNH HUỐNG DẪN NHẬP Bài tốn: Hệ thống quản lý loại vật ni vườn thú Hà Nội • Vườn thú Hà Nội muốn xây dựng hệ thống để quản lý giới thiệu vật ni Các lồi vật ni cần quản lý như: hổ, khỉ, mèo, chó, sư tử, ngựa v.v., hoạt động liên quan đến vật ni: ăn, phát âm v.v • Nếu nhóm tất lồi thuộc nhóm động vật (animal) có khả ăn phát âm hết hành động lồi vật như: ể chó động vật ăn thức ăn tạp phát tiếng kêu gâu gâu, mèo động ậ ạp p g , gự ộ g ậ vật ăn tạp phát tiếng kêu meo meo, ngựa động vật ăn cỏ phát tiếng kêu hí hí v.v Cũng quản lý chi tiết lồi vật lồi vât có hành động chung ăn, phát âm, ăn phát âm tùy vào loài vật vật  v1.0011107228 Vậy theo Anh Chị để quản lý lồi vật ni ta nên xây dựng đối tượng động vật hệ thống nào? MỤC TIÊU Trình bày tính trừu tượng hóa, tính đa hình Java Xây dựng chương trình đơn giản sử dụng lớp trừu tượng, interface Phân tích số tốn đơn giản theo hướng đối tượng sử dụng tính chất tính kế thừa, trừu tượng v1.0011107228 NỘI DUNG Giới thiệu tính trừu tượng lập trình hướng đối tượng Lập trình trừu tượng Java Java v1.0011107228 TÍNH TRỪU TƯỢNG TRONG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Một đặc tả trừu tượng cho ta biết đối tượng làm mà khơng bận tâm vào việc làm nào? Sư tử thực tất chức như: Nhìn, ngửi, ăn, Nhìn ngửi ăn săn mồi mồi… mà khơng cần biết thực v1.0011107228 LẬP TRÌNH TRỪU TƯỢNG TRONG JAVA 2.1 Lớp trừu tượng 2.2 Interface – Giao diện v1.0011107228 2.1 LỚP TRỪU TƯỢNG • Khi giới thiệu khái niệm đối tượng, ta nói chúng nhóm lại thành lớp, lớp tập đối tượng có thuộc tính hành vi vi • Ta nói theo chiều ngược lại ta định nghĩa đối tượng ộ ệ ộ p làmột thể lớp • Nghĩa là: Lớp tạo đối tượng • Hầu hết lớp ta gặp tạo thể Ta tạo thể lớp Student hay Employee v1.0011107228 2.1 LỚP TRỪU TƯỢNG (tiếp theo) • Tuy nhiên, với số lớp, khơng hợp lý nghĩ đến chuyện tạo thể ể ể lớp • Ví dụ: Trong hệ thống quản lý lồi vật ni: Horse, Dog, Cat lớp đối tượng  Vậy đối tượng animal (động vật) xác gì? Phương thức pronunciation() đưa khơng biết horse, dog hay cat  Ta nói đối tượng chó thể động vật, thực khơng phải, thể lớp dẫn xuất động vật Animal Horse v1.0011107228 Dog Cat 2.1 LỚP TRỪU TƯỢNG (tiếp theo) • Lớp trừu tượng (Abstract Base Class– ABC) lớp khơng thể tạo thể Class • Thực tế, ta thường phân nhóm đối tượng theo kiểu này:  Chó mèo động vật, động vật gì?  Hay bia rượu đồ uống, thứ đồ uống xác gì? • Có thể xác định xem lớp có phải lớp trừu tượng hay khơng ta khơng thể tìm đ ì thể hiệ lớ màlại khô phải thể hiệ lớ ộ hể ủ lớp àl i không hải hể ủ ộ lớp  Có động vật khơng thuộc nhóm nhỏ khơng?  Có đồ uống khơng thuộc loại cụ thể khơng? • Lớp trừu tượng chứa phương thức trừu tượng Cách thức mô tả lớp phương thức trừu tượng: public abstract class ClassName { } ClassName public abstract class ClassName { public abstract methodName(); } v1.0011107228 GIẢI QUYẾT BÀI TẬP TÌNH HUỐNG Giả sử lớp animal lớp trừu tượng, có lợi ích gì? Mọi thuộc tính hành vi lớp sở (Animal) có mặt thể lớp dẫn xuất (Horse, Dog, Cat) v1.0011107228 Animal Horse Dog Cat Sơ đồ quan hệ lớp tập tình /** * Animal.java */ public abstract class Animal { protected String name; //Constructor for objects of class Animal p public Animal(){ (){ } public Animal(String _name){ this.name = _name; //Abstract methods protected abstract String pronunciation(); protected abstract String action(); protected abstract void eat(); protected String getName() {return this.name;} } } 10 2.1 TỪ KHỐ FINAL Từ khố final sử dụng cho lớp thành phần lớp • Khi sử dụng cho khai báo lớp lớp khơng có khả kế thừa (Do lớp lớp abstract); ậ ẽ ả public final class ClassN{} • Khi sử dụng cho khai báo số: public static final double PI=3.1415; • Khi sử dụng cho khai báo phương thức phương thức khơng ụ g p g p g g ợ overriden (ghi đè) lại lớp kế thừa final void eat(){} v1.0011107228 16 PROPERTIES On passing 'Finish' button: passing, Finish On failing, 'Finish' button: Allow user to leave quiz: User may view slides after quiz: User may attempt quiz: Goes to Next Slide Goes to Next Slide At any time At any time Unlimited times 2.2 INTERFACE Trong casestudy Session 02 tương tác hai đối tượng: cơng tắc bóng đèn: • Nhược điểm ứng dụng liên kết SwitchButton ElectricLamp chặt Như switchbutton tạo điều khiển bật tắt loại đối tượng ElectricLamp Tuy nhiên thực tế, có nhiều loại đối tượng có khả bật tắt ví dụ quạt điện (ElectricFan), hay đài ( (Radio), khả tái sử dụng SwitchButton cho thiết bị ), g ụ g ị y khơng thể • Ngơn ngữ Java đưa giải pháp cho vấn đề khái niệm Interface Interface giúp cho người phân tích thiết kế phân loại nhóm đối tượng thuộc lớp khác dựa hành vi tương tự • Như ví dụ ta có ElectricLamp, ElectricFan, Radio v.v nhóm đối tượng đề có khả bật tắt (S itchable) t ong thiết kế ta tạo (Switchable), ậ a Interface lấy tên Switchable với tính mơ tả trước (bật tắt) Khi đối tượng SwitchButton cần kết nối tới Switchable điều khiển khiể đượ đối tượ này, d S it hB tt lú đượ sử d tượng à ậ SwitchButton lúc ó dụng để điều khiển nhiều loại thiết bị Switchable khác ElectricLamp, Radio, 18 ElectricFan v.v… v1.0011107228 2.2 INTERFACE (tiếp theo) • Khái niệm Inteface giúp tạo quy tắc bao gồm mô tả trừu tượng khả đối tượng để từ làm sở phân nhóm lớp khác dựa khả chúng chúng • Interface gần giống lớp trừu tượng, nhiên chứa phương thức trừu tượng số thuộc lớp • Cách khai báo: public interface InterfaceName { } public interface InterfaceName { public methodName1(); public methodName2(); } v1.0011107228 19 CÁC ĐẶC ĐIỂM CƠ BẢN • Interface không cho phép tạo thể trực tiếp • Inteface kế thừa để tạo interface • Một lớp khơng thể kế thừa từ interface • Một lớp phép mang nhiều interface thông qua chế cài đặt ộ é ộ ặ ề ô ế ặ interface • Khi lớp mang interface đối tượng thuộc lớp coi thể interface • Interface thường nhắc đến cách thức nhằm bù lại hạn chế không hỗ trợ đa kế thừa Java ợ g • Interface giúp mơ tả mối quan hệ “có tính năng” đối tượng: Ví dụ: Quạt điện“có khả bật tắt”, Radio “có khả bật tắt” v.v Khi nói quạt điện radio đối tượng “Có khả bật tắt” Có tắt • Cách sử dụng cài đặt interface:  Một lớp mang (cài đặt) nhiều interface khác h dụng từ kh i bằ cách sử d khoá implements th sau d h sách i t f l t theo danh h interface  Một lớp cài đặt interface tiến hành cài đặt chi tiết phương thức mơ tả interface thay phương thức không cài đặt phương thức trừu tượng ằ ộ v1.0011107228 20 VÍ DỤ Cách cài đặt sử dụng interface ặ ụ g v1.0011107228 21 /** * Write a description of interface Switchable here * * @author (your name) * @version (a version number or a date) */ public interface Switchable { void switchOn(); void switchOff(); } /** * Write a description of class SwitchButton here * @author (your name) * @version (a version number or a date) */ public class SwitchButton{ private Switchable switchObj; /** * Constructor for objects of class SwitchButton */ public SwitchButton() { } public void connectTo(Switchable switchObj) { this.switchObj=switchObj; } public void switchOn() { switchObj.switchOn(); } public void switchOff() { switchObj.switchOff(); } } v1.0011107228 22 /** * Write a description of class ElectricLamp here * * @author (your name) * @version (a version number or a date) */ p public class ElectricLamp implements Switchable p p { /** * Fields */ / private String status; /** * Constructor for objects of class ElectricLamp */ public ElectricLamp() { // To do: status="Dark!"; } public void switchOn() { g status="Light!"; System.out.println(status); } public void switchOff() { status= Dark! ; status="Dark!"; System.out.println(status); } } v1.0011107228 23 /** * Write a description of class Radio here * * @author (your name) * @version (a version number or a date) */ public class Radio implements Switchable { /** * Fields */ private String status; /** * Constructor for objects of class Radio */ public Radio() { // To do: status=" "; } public void switchOn() { status="^&%&^%^$^%@!)(^#!"; System.out.println(status); } public void switchOff() { status=" "; System.out.println(status); } } Đáp án tập tham khảo v1.0011107228 24 CÂU HỎI TƯƠNG TÁC Sự khác biệt lớp trừu tượng Interface? v1.0011107228 25 PROPERTIES On passing 'Finish' button: passing, Finish On failing, 'Finish' button: Allow user to leave quiz: User may view slides after quiz: User may attempt quiz: Goes to Next Slide Goes to Next Slide At any time At any time Unlimited times TÓM LƯỢC CUỐI BÀI Sau S h xong chúng t nắm đượ kiế thứ sau: học hú ta ắ kiến thức • Hiểu tính trừu tượng lập trình hướng đối tượng; • Cài đặ chương trình sử d đặt h ì h dụng lớ trừu tượng java; lớp • Cài đặt chương trình sử dụng interface java; • Hiểu tính đa hình lập trình hướng đối tượng ể v1.0011107228 27 PROPERTIES On passing 'Finish' button: passing, Finish On failing, 'Finish' button: Allow user to leave quiz: User may view slides after quiz: User may attempt quiz: Goes to Next Slide Goes to Next Slide At any time At any time Unlimited times PROPERTIES Allow user to leave interaction: Show ‘Next Slide’ Button: Completion Button Label: Anytime Don't show Next Slide PROPERTIES Allow user to leave interaction: Show ‘Next Slide’ Button: Completion Button Label: Anytime Don't show Next Slide ... v1.0011107228 NỘI DUNG Giới thiệu tính trừu tượng lập trình hướng đối tượng Lập trình trừu tượng Java Java v1.0011107228 TÍNH TRỪU TƯỢNG TRONG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Một đặc tả trừu tượng cho... LƯỢC CUỐI BÀI Sau S h xong chúng t nắm đượ kiế thứ sau: học hú ta ắ kiến thức • Hiểu tính trừu tượng lập trình hướng đối tượng; • Cài đặ chương trình sử d đặt h ì h dụng lớ trừu tượng java; lớp... như: Nhìn, ngửi, ăn, Nhìn ngửi ăn săn mồi mồi… mà khơng cần biết thực v1.0011107228 LẬP TRÌNH TRỪU TƯỢNG TRONG JAVA 2.1 Lớp trừu tượng 2.2 Interface – Giao diện v1.0011107228 2.1 LỚP TRỪU TƯỢNG

Ngày đăng: 25/02/2014, 14:20

Hình ảnh liên quan

Chương trình sử dụng đối tượng đồ họa (graphic) để vẽ các đối tượng hình học cơ bản ( h) - Tài liệu BÀI 6 LẬP TRÌNH TỔNG QUÁT TRONG JAVA pptx

h.

ương trình sử dụng đối tượng đồ họa (graphic) để vẽ các đối tượng hình học cơ bản ( h) Xem tại trang 15 của tài liệu.
• Hiểu về tính đa hình trong lập trình hướng đối tượng. - Tài liệu BÀI 6 LẬP TRÌNH TỔNG QUÁT TRONG JAVA pptx

i.

ểu về tính đa hình trong lập trình hướng đối tượng Xem tại trang 27 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan