1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu lập trình C Shap Lesson1 introduction

57 492 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 57
Dung lượng 1,35 MB

Nội dung

Lập trình hướng đối tượng Giới thiệu Nội dung khóa học  Phần 1: Giới thiệu lập trình hướng đối tượng     Các khái niệm ngôn ngữ Phần 2: Lập trình hướng đối tượng với C++  The advantage of C++ over C  Object & Class  Operator  Polymorphism  Template  I/O Stream - Exception Phần 3: Lập trình hướng đối tượng với C#  Giới thiệu C#, Net  Thừa kế số kỹ thuật  Ứng dụng với C# Thài liệu tham khảo  Nguyễn Thanh Thuỷ: Lập trình hướng đối tượng với C++, NXB Khoa học kỹ thuật Phần  Giới thiệu  Các nguyên tắc hướng ĐT  Types, Classes, Objects Interfaces  Inheritance, Polymorphism Delegation  Các ngôn ngữ HĐT Computer programming “The history of computer programming is a steady move away from machine-oriented views of programming towards concepts and metaphors that more closely reflect the way in which we ourselves understand the world” Programming progression  Programming has progressed through: machine code assembly language machine-independent programming languages procedures & functions objects Machine language – Mark I Machine language 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Assembly language – PDP-11 Assembly language – Macro-11 GCD: TST B BEQ MOV SIMPLE A, R5 SXT SIMPLE: R4 DIV B, R4 MOV B, A MOV R5, B CALL GCD RETURN Machine-Independent Programming Languages – Fortran ! This example program solves for roots of the quadratic equation, ! ax^2 +bx +c =0,for given values of a, b and c ! PROGRAM bisection IMPLICIT NONE INTEGER :: iteration DOUBLE PRECISION :: CC, Er, xl, x0, x0_old, xr ! Set convergence criterion and guess for xl, xr CC = 1.d-4 xl = 8.d-1 xr = 11.d-1 ! Bisection method Er =CC +1 iteration = DO WHILE (Er > CC) iteration = iteration + ! Compute x0 and the error x0_old = x0 x0 = (xl + xr) / 2.d0 this is partial… Er = DABS((x0 - x0_old)/x0)*100.d0 WRITE (*,10) iteration, x0_old, x0, Er 10 FORMAT (1X,I4,3(2X,E10.4)) 10 Các mức độ truy cập thành viên lớp  PRIVATE members available:  Only within the class Order  PROTECTED members available: PRIVATE  Within the class  Within the class hierarchy  PUBLIC members available: PROTECTED PUBLIC  Within the class  Within the class hierarchy  To users outside the class 43 Thừa kế - thí dụ Class: Order PRIVATE: orderNum AS INT custNum AS INT CalculateTotalPrice( ) PROTECTED: GetCredit( ) PUBLIC: CreateOrder( ) UpdateOrder( ) GetOrderTotal( ) Next( ) 44 Thừa kế - thí dụ Class: Order Class InternalOrder inherits Order PRIVATE: orderNum AS INT InternalOrder custNum AS INT PROTECTED: CalculateTotalPrice( ) GetCredit( ) PROTECTED: PUBLIC: GetCredit( ) CreateOrder( ) PUBLIC: UpdateOrder( ) CreateOrder( ) GetOrderTotal( ) UpdateOrder( ) Next( ) GetOrderTotal( ) Next( ) 45 Thừa kế viết chồng phương thức  Method overriding used to specialize behavior  Subclass may override a method in its super class (hierarchy)  Method signatures must match  Overriden method can:  Completely override behavior of super class  Augment behavior by providing its own behavior and calling super class method 46 Viết chồng phương thức – thí dụ Order Class InternalOrder inherits Order PROTECTED: GetCredit ( ) credit = FindCreditScore( ) InternalOrder PROTECTED: GetCredit ( ) credit = -1 /*unlimited*/ 47 Viết chồng phương thưc – thí dụ Order Class ExternalOrder inherits Order PROTECTED: GetCredit ( ) credit = FindCreditScore( ) ExternalOrder PROTECTED: GetCredit ( ) credit = SUPER:GetCredit( ) + extraMoney 48 Các tiện ích thừa kế viết chồng  Inheritance supports modular design  Common behavior put in super class and used by subclass  Subclass can override to specialize behavior  Inheritance is strongly-typed InternalOrder myOrder = NEW InternalOrder myOrder.GetCredit( ) myOrder is an InternalOrder that inherits from Order 49 Đa hình Một giao diện, nhiều thể  Polymorphism is the ability to call an overridden method in a subclass using a super class object reference  Code compiled using super class reference  Runtime dispatches method call to subclass  Three requirements:  Hierarchy with overridden method in subclass  Super class reference used to call method  Subclass assigned to super class reference 50 Đa hình – thí dụ Order PROTECTED: GetCredit ( ) credit = FindCreditScore( ) InternalOrder PROTECTED: GetCredit ( ) credit = -1 /*unlimited*/ ExternalOrder PROTECTED: GetCredit ( ) credit = SUPER:GetCredit( ) + extraCreditPoints 51 Đa hình – thí dụ tiếp DEFINE myOrder AS Order Super Class if (bInternalCust = TRUE) reference myOrder = NEW InternalOrder( ) else myOrder = NEW ExternalOrder( ) myOrder:GetCredit( ) Calls InternalOrder:GetCredit( ) or ExternalOrder:GetCredit( ) 52 Các tiện ích đa hình  Supports generic programming using super class or interface  Type used at compile time is super class or interface  Specialized behavior is called at runtime automatically  Built on inheritance and overriding 53 Ủy quyền  Ủy quyền việc sử dụng lớp khác lớp  Lớp chuyển tiếp lời gọi phương thức tới lớp  Lớp bao bọc lớp ủy quyền  Tạo thể lớp  Xác định phương thức tham chiếu (stub) cho phương thức cần xuất  Không truy cập tới thành viên protected private 54 Ủy quyền – thí dụ Order tham chiếu tới đối tượng ShipInfo Order ShipInfo PRIVATE: PRIVATE: id ShipInfo shipObj shipdate = NEW ShipInfo( ) promisedate PUBLIC: PUBLIC: GetShipDate( ) SetDate( ) GetDate( ) … shipObj:GetDate( ) calls 55 Phần  Giới thiệu  Các nguyên tắc hướng ĐT  Types, Classes, Objects Interfaces  Inheritance, Polymorphism Delegation  Các ngôn ngữ HĐT 56 Các ngôn ngữ hướng đối tượng SIMULA(67) SMALTALK(71) ADA(83) C++(86) SMALTALK(80) EIFFEL(90) ADA(95) JAVA(95) 57 [...]... HĐT 19 C c nguyên t c hướng đối tượng c bản  Abstraction  Encapsulation  Hierarchies 20 Trừu tượng hóa G c nhìn bên ngoài c a đối tượng  Trừu tượng hóa đư c sử dụng để quản lý sự ph c tạp  Tập trung vào c c tính chất bản chất  Loại bỏ c c chi tiết  Tìm c c điểm chung c a c c đối tượng  Defines the public contract  Mô tả bên ngoài cho người dùng đối tượng  “G c nhìn bên ngoài”  Đ c lập với... GetOrderTotal( ) GetOrderTotal now calls CalculateTotalPrice( ) Next( ) 26 Phân c p C c quan hệ giữa c c đối tượng  X c định quan hệ giữa c c đối tượng  C c đối tượng đư c x c định qua c c đối tượng kh c  Cho phép trạng thái và hành vi đư c chia sẻ và chuyên biệt hóa khi c n  Khuyến khích sử dụng lại mã  Hai dạng phân c p quan trọng:  Inheritance  Aggregation 27 Phân c p – thí dụ Order uses ShipInfo... Order orderNum AS INT custNum AS INT Hmm I’d like to change CalculatePrice to CalculateTotalPrice CalculatePrice( ) PUBLIC: CreateOrder( ) UpdateOrder( ) GetOrderTotal( ) GetOrderTotal calls CalculatePrice( ) Next( ) 25 Đóng gói – thí dụ (tiếp) Order orderNum AS INT This change was easy because users of custNum AS INT the object will not be affected CalculateTotalPrice( ) PUBLIC: CreateOrder( ) UpdateOrder(... Booch “Object-oriented programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class ” Grady Booch 16 Phát triển ứng dụng hướng đối tượng  C ch thiết kế và xây dựng ứng dụng  C c đối tượng bó c c dữ liệu và phương th c cùng nhau  C c đối tượng cho phép phân tách định nghĩa và thể hiện  Không chỉ... C c nguyên t c hướng ĐT c bản  Types, Classes, Objects và Interfaces  Inheritance, Polymorphism và Delegation  C c ngôn ngữ HĐT 30 Dạng Dạng là một định nghĩa  Dạng x c định:  Dữ liệu và phương th c  C c quan hệ thừa kế với c c dạng kh c  Không quan tâm tới thể hiện  Cho phép định dạng mạnh  Early (static) binding - types known at compile time  Type-consistency enforced at compile time and... instances  Thành ngữ Object thường đư c dùng cho c lớp và thể hiện Total Price = $45.00 YourOrder orderNum = 61 custNum = 58 Total Price = $318.34 35 Giao diện Giao diện x c định một dạng  Giao diện là một tập c c định nghĩa phương th c của một tập hành vi – “hợp đồng”  Không c thể hiện  Lớp c thể thể hiện giao diện  Phải thể hiện tất c c c phương th c của giao diện  Hành vi c thể đư c chuyên... c pháp  Lập trình hướng đối tượng c n bao hàm tư duy hướng đối tượng 17 Thiết kế một ứng dụng hướng đối tượng Order Take an Order Customer Create a Customer Assign Salesperson Check Credit beOrder Progress Customer Table DataSet Customer Table Order Table 18 Phần 1  Giới thiệu  C c nguyên t c hướng ĐT c bản  Types, Classes, Objects và Interfaces  Inheritance, Polymorphism và Delegation  C c. .. minimally capable computer language  But that is like saying a shovel is theoretically as capable as a tractor In practice, using a shovel might make things very hard… 14 Lập trình hướng đối tượng là gì?  Lập trình HĐT  Phương pháp lập trình dựa trên c c ĐT để xây dựng chương trình  Đối tượng  Vật thật hay trừu tượng với thu c tính và hành vi  Attribute: State, data  Behavior: Action, method hay function... Abstraction - Example “What should an Order object Order do?” CreateOrder UpdateOrder GetOrderTotal Next InternalOrder Two types of Orders ExternalOrder 22 Đóng gói Ẩn giấu c c chi tiết thể hiện  Đóng gói ẩn giấu thể hiện  Th c đẩy thiết kế phần mềm theo module – dữ liệu và phương th c đư c bó c ng nhau  Vi c truy c p dữ liệu thường thông qua phương th c  Thường đư c gọi là “ẩn giấu thông tin”  Cung... references is a ExternalOrder ShipInfo InternalOrder and ExternalOrder inherit from Order (Inheritance) 28 Tổng kết: c c nguyên t c HĐ c bản  Trừu tượng hóa  Break up complex problem  Focus on public view, commonalities  Đóng gói  Hide implementation details  Package data and methods together  Phân c p  Build new objects by referencing or extending other objects 29 Phần 1  Giới thiệu  C c nguyên ... INT Hmm I’d like to change CalculatePrice to CalculateTotalPrice CalculatePrice( ) PUBLIC: CreateOrder( ) UpdateOrder( ) GetOrderTotal( ) GetOrderTotal calls CalculatePrice( ) Next( ) 25 Đóng... Booch 16 Phát triển ứng dụng hướng đối tượng  C ch thiết kế xây dựng ứng dụng  C c đối tượng bó liệu phương th c  C c đối tượng cho phép phân tách định nghĩa thể  Không c pháp  Lập trình. .. dụ Class Order implements IList interface Class: Order orderNum AS INT custNum AS INT Interface: IList CalculateTotalPrice( ) PUBLIC: Next( ) PUBLIC: CreateOrder( ) UpdateOrder( ) Compiler checks

Ngày đăng: 28/03/2016, 00:59

TỪ KHÓA LIÊN QUAN

w