Bài giảng Lập trình hướng đối tượng với Java - Chương 2: Các khái niệm cơ bản về lập trình hướng đối tượng

Kỹ thuật cho phép thay đổi nội dung của cùng một hành vi trong 2 lớp cha –con. Bản chất: Sửa code của cùng một hành vi ở 2 lớp cha con để các code này khác nhau. Thí dụ: Lớp SHAPE có hành vi Draw() nhưng ở ba lớp con RECTANGLE, TRIANGLE, CIRCLE han2h vi này phải được thể hiện khác nhau

ppt16 trang | Chia sẻ: dntpro1256 | Lượt xem: 744 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Lập trình hướng đối tượng với Java - Chương 2: Các khái niệm cơ bản về lập trình hướng đối tượng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chương 02 CÁC KHÁI NIỆM CƠ BẢN VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Basic Concepts in OOP1Mục tiêuNắm vững một số định nghĩa trong OOP bao gồm:Trừu tượng hóa dữ liệu.Lớp, đối tượng, thể hiện.Thông điệp và gửi thông điệp.Tính bao đóng.Tính kế thừa.Tính đa hình2Nội dungKiểu dữ liệu trừu tượng (abstract data type)Lớp-thể hiện- biến đối tượngThông điệp (message)Tính bao đóng (encapsulation)Tính kế thừa (inheritance)Tính tương ứng bội-đa hình (polymorphism)Lớp và đối tượng trong Java32.1- Kiểu dữ liệu trừu tượngAbstract Data Type. Kết qủa của việc khái quát hóa các thực thể.Khái quáthóaKhái quáthóa1 5 7-3 8 .... Số nguyên( int )Người( PERSON )Danh từ chung trong ngôn ngữ tự nhiênattributesint, NGUOI, PERSONlà các ADT42.2- Lớp, Thể hiện, Biến đối tượngPOP: ADT dạng struct + các functionsOOP : class = class: Hiện thực của một tập các đối tượng (object) cùng loại  Cùng mô tả, cùng hành vi.Thể hiện – instance: Một thông tin về một đối tượng có trong bộ nhớ của chương trình.Biến đối tượng (gọi tắt là đối tượng): Tham chiếu đến một thực thể của lớp.3001000“Hello”S1000String S=“Hello”;52.3- Thông điệp, thông báo - MessageSend a message: Yêu cầu 1 đối tượng thực thi một hành vi.Thí dụ:x là một HOCSINH x.VietLyLich(); String S= x.getName();int n= x.getAge(); 62.4- Bao đóng - EncapsulationChe dấu đi dữ liệu.Bên ngoài chỉ tương tác được với đối tượng qua một số hành vi.Hành vi giao tiếp (public, interface methods): Hành vi giúp đối tượng giao tiếp với môi trường.Hành vi riêng/nội (private, internal): hành vi xử lý dữ liệu nội tại của đối tượng).class NGƯỜITênNămSinhTênNgườiYêu....TiêuHóa()Nuốt()Đi()Đứng()Chạy()Nhẩy().......getTen()getNamSinh()getTenNguoiYeu()7Bao đóng.....class CIRLCEint x, y, r;int BorderColor;int BkColor;public int getX()public void setX(int xx)public int getY()public void setY(int yy)public int getR()public void setR(int r)public double getPerimeter()public double getArea()Với khai báo này, bên ngoài có thể truy cập 2 thuộc tính mầu hay không?8Gợi ý khi thiết kế một lớpTa cần biết những thông tin gì về một đối tượng thuộc lớp này.  Dữ liệu mô tả.Ta (bên ngoài) thực sự cần xử lý gì (động từ) trên đối tượng  Hành vi giao tiếp.Để có được hành vi giao tiếp, có cần những xử lý thêm mà bên ngoài không cần biết hay không?  Hành vi nội.9Bài tập tại chỗThiết kế lớp mô tả và xử lý một học sinh, biết rằng học sinh phải học 3 môn học.102.5- Tính kế thừa- InheritanceKỹ thuật cho phép tái sử dụng code  Tiết kiệm công sức xây dựng + test.Một lớp được thừa hưởng (data +code) từ lớp đã có.Quan hệ lớp cha-lớp con.Thừa kế đơn (single inheritance): Một lớp chỉ có thể có tối đa một lớp cha.Thừa kế bội (đa thừa kế, multi-inheritance): Một lớp chỉ có thể có nhiều lớp cha.Mỗi ngôn ngữ hỗ trợ khả năng thừa kế khác nhau: C++: đa thừa kế, Java, C#: đơn thừa kế.11Thừa kế...ID_NumNameYearOfBirthAddressgetID_Num()setID_Num(newID)......class PERSONRollNumScoregetScore()setSore(newScore)......class STUDENTquan hệ “là 1”Chỉ phải hiện thựcbằng nàyĐể được cái tương đươngID_NumNameYearOfBirthAddressgetID_Num()setID_Num(newID)......class STUDENTRollNumScoregetScore()setSore(newScore)......thừakếtínhchấtriêngCon = Cha + một tí12Kỹ thuật phân cấp thừa kế(1) Liệt kê đặc điểm của các đối tượng cần quan tâm.(2) Tìm tập giao của các tính chất giữa các lớp, tách tập giao này để xây dựng lớp cha.(3) Đặt 1 tên gọi có ý nghĩa cho lớp cha.(4) Phần còn lại sau khi tách tập giao là các lớp con.13Thừa kế - Bài tập làm tại chỗPhân tích phân cấp thừa kế cho các lớp:Hàng điện máy Hàng sành sứ Hàng thực phẩm 14Thừa kế- Bài tập về nhà Phân tích phân cấp thừa kế cho các đối tượng trong một học viện:Nhân viên quản lý Nhân viên nghiên cứu Nhân viên phục vụ152.6- Tính đa hình-PolymorphismKỹ thuật cho phép thay đổi nội dung của cùng một hành vi trong 2 lớp cha –con.Bản chất: Sửa code của cùng một hành vi ở 2 lớp cha con để các code này khác nhau.Thí dụ: Lớp SHAPE có hành vi Draw() nhưng ở ba lớp con RECTANGLE, TRIANGLE, CIRCLE han2h vi này phải được thể hiện khác nhau16

Các file đính kèm theo tài liệu này:

  • pptbai_giang_lap_trinh_huong_doi_tuong_voi_java_chuong_2_7687_2021065.ppt
Tài liệu liên quan