1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình hướng Đối tượng trong vb net và mô hình mvc

136 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Lập trình hướng đối tượng trong VB.net và mô hình MVC
Tác giả Nguyễn Văn Thuận
Người hướng dẫn ThS. Lê Minh Trung
Trường học Trường Đại Học Sư Phạm TP.HCM
Chuyên ngành Toán - Tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2007
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 136
Dung lượng 11,07 MB

Nội dung

LỜI CẢM ƠN -Em xin chân thành cảm on đến tắt cả các thầy cô trong Khoa Toan ‘Tin da tin tỉnh chỉ bao truyền dạt những kinh nghiệm kiến thức cho chúng em để chúng em cỏ được những cơ x

Trang 1

TRUONG ĐẠI HỌC SƯ PHẠM TP.HCM KHOA TOAN - TIN

BO MON TIN

HQ VA TEN: NGUYEN VAN THUAN

TÊN ĐÔ ÁN: LẬP TRÌNH HƯỚNG _ DOI TUGNG TRONG VB.NET VA MO

Trang 2

LỜI CẢM ƠN

-Em xin chân thành cảm on đến tắt cả các thầy cô trong Khoa Toan ‘Tin da tin tỉnh

chỉ bao truyền dạt những kinh nghiệm kiến thức cho chúng em để chúng em cỏ được những cơ xơ kiến thức cần thiết hoàn thành đỗ án này Thực hiện đồ ân tắ nghiệp à một dịp tố để chúng em có thể rên luyện kỉ năng chuyên môn, biết tông hợp các kiến thúc đã học trên mọi phương diện Rên luyện tỉnh tư chủ sàng tạo vành thần trách nhiệm trong công việc, Phất huy tỉnh độc lập, xing tạo và tự nghiên cửu đề tạo ra một sản phẩm, một bảo cáo trình bây hoàn hun

-ÂĐ sở được thình qua tối đẹp cho hôm nay và mai sao, em xin chân thành cảm on

sỗ đã tận tỉnh giang dạy hướng dẫn em trong suỗt năm học

"Xin chân thành cảm ơn thẫy Lê Minh Trung đã tận tỉnh hướng dẫn, tạo điều kiện cho eo trong suất thôi gian thực hiện đổ án tốt nghiệp Nhờ thầy ma em đã có lập trình hướng đổi tượng trong vb.net và mô được những kiến thức quý báo

Trang 3

13 Bài Toán CầnthiếLkế| làp tượng trang thi diém CTime 13.1 Xie dinh ed tp thue the ed tit ke 7 7

132 Xée dinh ede (ci thi, chúng) của các thực thể 1

133 Case study (Thiét ké Class CTime 8

1.34 Xác định consuclorphương thức xây đựng) và các phương thức khác hiên

un i i i gi cho instance bông Ì.355 — Xác dịnh các hành động có hệ thực thì ôi thực thẻ đi ượng 9

Reuse ability && RAD (Object Browser) x

Trang 4

W182 Uudiém ia Inert?

L187 Cath kai Bio KE tha ong NEL

LISR - Sơđổ kế thừa

1159 Proeeted vi Friend (Access modifier

1.1310 Mộtsểđiểu nổi thêm

L.16 ` TINILDA HINH Polymorphism {46K if Tah d inh Pyar)

1162 Tinh da hinh trong cude sng doi thực

1 nk Copan ugmg & Lapev the Abst & Concrete Cass Lind Vidy

L168 Tiekhoa MustOveride

1166 Nottheritable Class(NotOveridable Method)

1467 Gin din erie

B14 Các phương thức Phương thức khởi tạo 3g ”

Trang 5

3.1 Bign dich thanh StyledTextArea dll 22 Nig yin vo ig dng

2.1 Cit bute nhing StyledTextArea vio ding dung

33 Thiết v ph va viết code: a3 ¢ form chinh: Ung đạng muinh họa

'Cưhht tư ng Sạn

2.1 Cae chire ning trong menu Fil

3432 Các chức năng trong menu Edit

3.323 Cac chite ning trong menu Format

Trang 6

LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG TRONG VB.NET VÀ MÔ HÌNH MVC

+ OOP thươ ding class dé bao boc (che

xariables (dữ liệu) và method (phương thức) chỉ ti encapsulate) cba instance 1.12 Ví dụ

+ Giả xử ta cần "cải đặt” các hình chữ nhật trong một chương trình Ta sẽ phẩntích tìm ra những thuộc tỉnh và hành động chung nhất mà một hình chữ nhật nối shúng phải có Tạ sẽ "bao bọc”."che giấu chỉ tiết” thuộc tỉnh và hành động này trong mat lp Class Rectangle

Trang 7

hub SetWidth(value As Double)

tunction Area() As Double

Sụb MoveTo(X As Inleger.Y As Integer)

tub Draw(LineColor As Inleger.BackColor As Integer)

Các đối tượng có thể truy cập và sử dụng các thành viên (dữ liệu phương thúc)

cỗ aceess modifier là Publie

và phương thức Publie gọi là "giao điện” của một lớp

1.1.4 Tôm lại

Cluss là khuôn mô hình tạo nên đối ương

Classis ao bọc cả dữ liệu (instanee variable data member,property lẫn hành động (method.i

inction member.behavior )

“Có thể khởi tạo các đổi tương thật sự từ các Class đã dược khai báo

Trang 8

ắc thành viên (dữ liệu phương thie ) ¢6 acess modifier public

1.2 Khai báo lớp VB.net

[Private|Protected|Public] Class <Tén Class>

Trang 9

Mùi thời điểm cụ thể (1:30:20)

1.3.2 Xác định các thuộc tính (cần thiết, chung) của các thực thể

13:45:16 Hour=13,Minute~45.Second= 16

22:0:1 9 Hour=22,Minute=0,Second=1

Trang 10

Pai Seth Mane) End Sub ub biel minute Ae rng?) End Sub Phe SubsetSecon&Vloncond htntoge) End Sub Hình L3

Trang 11

Public Class CTimevi

=_ Biển dịch lớp thành tập tin thu vign ‹dH

= _ Lâm thễ não sử dụng class trong các ứng dung?

inh 15

Trang 12

+ Gol aTime.setHour(15) ⁄ ati + Gol aTime.setTime(12,80,21)

Hình L7

Trang 13

+ Sự tách biệt mình bạch giữa "phí sử dụng client” và "phía cung cấp server" làm, cho chương trình:

Mềm dẻo, nh hoatdé thay d6i hom,

Vige ái sử dụng các class cho phép RAD (Rapid Application Development) lam ting ki tăng sản x ft (productivity)

Hệ thống chương trình là sự tương tác của các Objet độc ip hoat ding dũng dễ lập trình, báo tì và gỡ rỗi

+ _ Sự tách biệt mình bạch giữa "phía sử dụng lien và "phía cụng cắp srxer" làm, cho chương trình

+ Mam dễo nh họa đễ thay đổi hơn

+ Vige ải sử đụng các class cho phép RAD (Rapid Application Development) lim ting kha nding sin xuit (productivity), 1S Hoat vi Class

“Các thành viên (dữ liệu & phương thức) của một Class có hoạt vì Cluss và có thể được truy cập bởi các thành viên khác của Class

“Các thành viên Publie có thể được tham chiều từ các đổi tương eta Class, + _ Các biển của các method cỏ họat vi cục bộ trong method (block scope) Truy c các thành viên

+ _ Nỗ lực từ một đối tương khởi tạo từ một Class truy cập vào thành viên Private

ua Class sé gay ra một lỗ lập trình,

VD: Trong Client sir dung Class Time

Dim aTime As Time = few Time()

aTimemHour=7 “gay ra lỗi

Trang 14

16

1.6

Constructor (Phương thức khởi tạo )

Chúng ta dùng Constructor để khởi tạo giá trị cho cắc instanee variable,

Constructor ty động được gọi (invoke) khi có một đổi tượng được khởi tạo (instantiate) tir Class

Nếu không cỏ construetor nào trong khai bảo của Clas thị VB.NET s@ ding

«onstruetor mặc định (defalut constructor) va khai tạo giả trị ngằm định cho các

instance variable,

Trong một Class có thể có nhiều constructor (averloaded constructors) cung,

'onstructor (Overload construetor

sắp nhiễu cách đ khối ạo đối tượng,

(Cae consrutor có cùng tên New chỉ khác nhau danh sich các tham số, Các conamiclor là Sub và không trí về gỉ ea

Túy thuộc vào danh sách đổi số cung cấp lúc khởi tạo đổi tượng VB.NET sẽ chọn construelor thích hợp,

2 VíDụ

Fig, Ro: CTime2.vb

Represents time and contains overloaded constructors, Class CTime?

Trang 15

5 “Ucelare Integers for hour, minute and second

vate mllour As Integer ‘0-23

vate mMinute As Integer "0 - 59

vate mSecond As Integer " 0 - 59

9 “constructor initializes each variable to zero and 10.” ensures that each CTime? object stars in consistent tate

11 Publie Sub New)

12.SetTimed)

13.End Sub,

14° Cime2 constructor: hour supplied:

15." minute and second default to 0

16, Publie Sub New(ByVal hourValue As Integer) 17.Setlime(hourValue)

18, End Sub‘ New

19." Cig

constructor: hour and minute supplied: 20," second detaulted to 0

21 Publi Sub New(ByVal hourValue As Integer

22, ByVal minuteValue As Integer)

28 SetTimethourValue, minuteValue)

24, End Sub" New

Trang 16

26 Publie Sub New(ByVal hourValue As Integer _

27 ByVal minuteValue As Integer, ByVal secondValue As Integer)

28, SetTime(hourValue, minuteValue, secondValue) 30." CTime? constructor: another CTime2 object supplied

31 Public Sub New(By Val timeValue As CTime2)

33 SetTimetimeValue mHour, tìmeValue.mMinute, timeValue mSecond) 34." set new time value using universal time

35." pertrm validity checks on data;

36." set invalid values to zero

37 Public Sub Set ime(Optional ByVal hourValue As Integer

38 Optional ByVal minuteValue As Integer ~ 0, 40." perform validity checks on hour, then set hour 4L-If (hourValue >= 0 AndAlso hourValue < 24) Then

Trang 17

58, im format As String = "{0):(1:D2)=(2:D2)"

‘59 Dim standardHlour As Integer

60," determine whether time is AM or PM

61 If mllour < 12 Then suffix = " AM"

Trang 18

(03 convert from universal-time format to standard-time format 64.1 (mHlour 12 OrBlse mllour = 0) Then standandllour = 12

ind Function * ToStandardSiring

End Class’ CTime2

L "Fig, 8.5: TimeTest2.vb

Demonstrates overloading constructors

3 Imports System Windows.Forms

4, Module mod TimeTest2

‘ub Main()

6, ‘use overloaded constructors

Dirm time! As New CTime2()

8 Dim time? As New CTime2(2)

9 Dim times As New CTime2(21, 34)

10, Dim times As New CTime2(12,

MD Dim time6 As New CTime2(timed)’ use timed as initial value timeS As New CTime2(27, 74,99) 5.42)

13 Const SPACING As Integer = 13 spacing between output text

Trang 19

im output As String ~ "Constructed with: * & vbCrI.1 a _

timel; all arguments defaulted” & vbCrL& _

17 Space(SPACING) & time] ToUniversalString() &

18 vbCrl.1 & Space(SPACING) & time] ToStandardString() 19." invoke time? methods

20, output &= vbCrLf & _

ime2: hour specified; minute and second defaulted” & _

22 vbCHL & Spaee(SPACING) & _

23.time2.VoLniversalString() & vbCrLf & Space(SPACING) & _ 24-time?:FoStandardString)

invoke time3 methods

26, output &= VOCHLE &

27." time: hour and minute speci

28 VaCHL.£& Space(SPACING) & time3.ToUniversalString() & _

39 xhCH.E& Space(SPACING) & time3.ToStandardString()

med: hour minute and second specified” & _

33 vbC#LL & Space(SPACING) & times ToUniversalString() & _ 1M vbC#L & Space(SPACING) & timet.ToStandardString() 3S." invoke timeS methods

1X6 output &= vbCHL ER _

¥7." time!

hour minute and second specified” &

38 vbCrL.L & Space(SPACING) & timeS.ToUniversalString() &

39, vbCr1 & Space(SPACING) & timeS.ToStandardString() 40." invoke time6 methods

Trang 20

+

4

46

48

time: Time2 object timed speci

Space(SPACING) & time6.ToUniversalString() & xhCrl.Ÿ& Spaee(SPACING) & time6 ToStandardString()

" & vOCrL I & MessageBox,Show(ourput

“Demonstrating Overloaded Construct

End Sub’ Main

End Module‘ modTimeTest2

Trang 21

* use overloaded constructors

Dim time} As New CTime2() > 0 tham sé duge goi

Dim time? As New CTime2(2) > | tham sé được gọi Dim time} As New CTime2(21, 34) > 2tham sé duge gọi Dim timed As New CTime2(12, 25,42) > 3 tham số được gọi Dim time6 As New CTime2(times) > Copy

"use times as initial value

Minh hga overloaded constructors

Tạo ra một Console appication Test

- Thêm vào ứng dụng Test class CTimev2 với 5 construetors có chữ kí khác nhau + Viễt code trong module của Test sử dụng class trên

Nhược điểm của instance variables

+ Aeeess Modifier của các instance variables nên là Private.Khỏng thể truy cập &: cắn giả trị cho các instance variables ciia mot déi tượng một cách trực tiếp

+ Chang ta ao ước có thể dùng cú pháp anObjectinstanee, variable để truy cập Sede sắn gỉ

1.7 Thuộc tính của Class

`VR Net khắc phục điều này bằng khải niệm Property(thuge tinh) Mot property gắn với một instance variable và cung cấp: Get accessor cho phép truy cập giá trị

Set accessor cho phép thiét lip gia r

Trang 22

Trong một số trường hợp thiết kế class sẽ rô rùng hơndiện hơn nếu class cố

xiên dữ liệu tham chiếu tới đối tượng thuộc lớp khác thải

5 Private mFirstName As String

7 Private mBirthDate As CDay ' member object refereni

Trang 23

12 mLastName -lastNameValue

Day instance for employee birthday

14, mBirthDate = New CDay(irthMonthValue, bithDayValue, birth YearValue) 15." create CDay instance for employee hire date

1s milireDate ~ New CDay(hireMonthValue hireDay Value hireYearValue)

17 End Sub! New

18 "return employee information as standard-format String

19, Public Funetion ToStandardString() As String

20 Return mLastName & "," & mFirstName & "Hire:

& millireDate‘ToStandardString() & " Binhday: "&mBithDate.ToStandardString()

21, End Funetion * ToStandardString

22 End Class ' Cemployee

Trang 24

* Encapsulates month, day and year

Imports System Windows.Forms

Class CDay

S Inherits Object

6 Private mMonth As Integer 1-12

Private mDay As Integer ' 1-31 based on month

8 Private mYear As Integer’ any year

9, “constructor confirms proper value for month, then calls 10," method CheckDay to confirm proper value for day

1, Publie Sub New(ByVal monthValue As Integer

12, ByVal day Value As Integer, ByVal yearValuc As Integer) 13." ensure month value is valid

Ie(monthValue > 0 AndAlso monthValue

| S.mMonth = monthValue

Else

16.mMonth = |

17." inform user of error

18, Dim errorMessage As String = "Month invalid Set to month 1."

Trang 25

23 End Sub’ New

24." confirm proper day value based on month and year

te Function CheckDay(ByVal testDay Value As Integer) As Integer

26 Dim daysPerMonth() As Integer = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30 31 39.31)

27.If (testDay Value > 0 AndAlso

testDayValue <> daysPerMonth(mMonth)) Then

28 Return testDayValue

29.End If

30." check for leap year in February

31 If (mMonth = 2 AndAlso testDayValue ~ 29 AndAlso _ mYear Mod 400 = 0 OrElse mY ear Mod 4 = 0 AndAlso mYear Mod 100 <> 0) Then

32 Return testDayValue

Ele

Trang 26

44 Dim errorMessage As String,

“day * & testDDayValue & “invalid Set to day 1."

35, MessageBox Show{erromMessage, MessageBoxButtons OK MessageBoxleon Error)

36 Return "leave object in consistent state 37-End If

38 End Function ' CheckDay 39." ereate string containing month’day/year format

40 Public Function ToStandardString() As String

41, Return mMonth & "7" & mDay & "7" & mYear

42 End Function ToStandardString

43, End Class ' CDay

Trang 27

4

Demonstrate an object with member object reference Imports System Windows Forms Module modCompositionTest Sub Maino)

Dim employee As New CEmployee(

"Bob", “Jones”, 7 24, 1949, 3, 12, 1988)

6, MessageBox Show(employee.ToStandardString() Testing Class Employes

7 End Sub’ Main

End Module‘ modCompositionTest

Jones, Bob Hired: 3/12/1968 Birthday: 7/24/1949

Lm

Hình L9

Trang 28

+ Trong mat class e6 thé ding tham chiều Me để tham chiếu tắt cả các thành vign (Public/Private) cia nd

“Tham chiều Me tham chiéu chinh elass (chính xác hơn đối tượng khởi tạo từ class

1.10 Garbage Collector

Constructor New( ) đùng để khởi tạo và cấp phát bộ nhớ cho các đồi tường Khi một đổi tượng trong bộ nhớ không côn được tham chiếu đến nữa thì sao”? Chúng a cô phải viết mã giải phống bộ nhớ và tài nguyên như trong C®&C ¡ VB.Net the hign gidi phông bộ nhớdấi nguyên một cách tự động bằng kĩ thuật Garbage Collector

Ci dinh ki Garbage Collector s8 được kích họat gom lại và giải phóng dối tượng không côn ding nba

Dua hod tan và G không giữ là gii pháp tốt Một số ti nguyễn như Network Conneston Siream nm dage gi phông chủ động dưỡng mính (im hiểu sau)

1.11 Shared Member(Thanh vién được chỉa s

1.1.1 Giới Thiệu

Trong lập trình, đôi khi ta can biết số đối tượng đã được khởi tạo của một class

đang tôn tại Thành viên dữ liệu,biển số đổi tượng nay , phải giống nhau

cho mọi đối tượng

'Cách tốt nhất là cải đặt thành viên mCount là một thành viên được chia sẻ bởi

mọi đối tượng (shared member) Thành viên mCount sẽ được cập nhật giá trị mỗi khi cỏ đổi tượng được khởi tạo hay hủy

Trang 29

L "Fig 8.17 CEmployee3.vb

2 *Class C:mployee3 uses Shared variable

3, Publie Class CE:mployce3

4 TnheritsObjeet

5 Private nFirstName As String

6 Private nl.astName As String

7." numbe:of objects in memory

8 PrivateShared mCount As Integer- Chia sé bai tt ced

15 End Sub’ New

16." finalizer method decrements Shared count of employees

17, Protected Overrides Sub Finalize()

Trang 30

19, Console WriteL ine ("Employee object finalizer: " & mFirstName &

& mLastName & ": count =" & mCount)

20, End Sub! Finalize

25 End Property ’ FirstName

26, retuen last name

27, Public ReadOnly Property LastName() As String Get

Trang 31

34 End Get

45, End Property * Count

36, End Class ' CEmployee3

inh chat Shared Member(Thanh vién duge chia sé )

1.1143

Thường ding Shared Data Member cho những thành viên chúng cho mọi đổi tượng của Class (mCoun)

Tắt cả các đối tượng chia sẻ chung một shared member

Public Shared member ei thể được ruy cập thậm chi khi chưa có di tượng nào

ng qua cú pháp,

sua Class được khởi tạo th

Class Name SharedMember

“Cổ thể khai bảo Shared method,

Trong shared method không thể truy cp non-shared member 1.12 Const va ReadOnly Data Member

Dung cho những thành viên dữ liệu không thay dỗi giá trị thành viên Const hoặc ReadOnly khéng thay dồi giá trị khi được khởi tạo (cung cắp giá tị)

NỔ lục thay đổi giá trị của thành viên Const hoặc ReadOnly sẽ dẫn tới một lắp trình

1, ° Bíg, 8.15: CCireleConstanls.vb

2 * Encapsulate constants PL and radius

Trang 32

4 "PL is constant data member

5 Public Const PI As Double = 3.14159

6 "radius is uninitialized constant Palblie RendOnly RADIUS As Integer

8, “constructor of elass CCireleConstants Public Sub New(ByVal radiusValue As Integer)

10 RADIUS = radiusValue End Sub" New

12, nd Class’ CeircleConstants

* Fig, 8.16: ConstAndReadOnly.vb

* Demonstrates Const and ReadOnly members Imports System, Windows.Forms Module modConstAndReadOnly Sub Maing)

Dim random As Random = New Random() Dim circle As CCireleConstants = _ New CCireleConstants(random.Next( 1 20))

Trang 33

9, Dim ouput As String = "Radius =" & radius & vbCrLf

10 & "Cireumference = "+ 8

1 circle RADIUS * 2 # CCireleConstants.P1) ing Format("{0:N3}"

12 MessageBox Show(output, “Circumference”,

m khác biệt giữa Const && ReadOnly ?

+ Khi ndo ding Const? Khi ndo ding ReadOnly? Const thing số chung cho Class

ReadOnly:thanh vign dt iệu khỏi tạo giá trị 1 lần trong constructor Now( ) && khong bạo giờ thay đối

Trang 34

+ Class được biên dich thanb file dll (dynamic link library), ¢6 thé ti sir dung trong các ứng dụng khác

ốt,đã được kiểm tra cin thin cho Tải sử dụng các đọan mã

phép(RAD:Rapid App!

+ Con é ding Object Browser để xem một class phii hyp với nhu cầu hay Development),

không”

1.14 Namespace + Mi class sẽ gẵn với một namespaee

Được tổ chức theo cầu trúc phân cấp

Tránh va chạm tén (name collision)

Không có hai clas trong cũng namespnse có công tên Mai class trong namespaee khác nhau cỏ thể có cùng tên + System, Windows, Forms TextBox

4 MyDesign MyTools TextBox

iNH KE THUA (INHERITANCE)

Trang 35

cho phép elass mới “kể thừa” töan bộ instanee variables thuộc tỉnh & phương thức của class cũ

Xuất ved

Hình tì!

1.182 Ưu điểm của Inheritanee?

“Cho pháp tải sử dụng class đã được kiểm nghiệm họat động hiệu qua Tải ử dụng, Tiết kiệm thời gian

Reusability RAD

1 âm rõ rằng cầu trúc đối tượng lập trình

115.3 Nhược điểm của Inheritance

+ Class din suit (derived elass) có thể kế thừa những thuộc tính dinh chất không mong muôn

"Người thiết kể class phải đảm bảo thiết kể ra những class vữa đỏ (Class din xuất có thể không hài lòng về một phương thức thuộc tính nổ được kế thừa

Trong class dẫn xuất có thể định nghĩa li (cười lên - overidden) thuộc tính,phương thức của elass cơ sở,

Trang 36

CClast B kế thừn trực tiếp class A

Class B Ia class din x class Á là class cơ sở Class B là elass on(subslass)elass A là elass cha(supperelas) Mỗi đối tượng của B cũng là đối tượng của A (ISA relationship) (ngược lại không đúng)

Trang 37

Base class Detived classes

CUndergraduatestudent CShape €Cirele CTriangle

CRectangle

CRemeTmprovenentLoan CMortgageLoan

CBtafEMenber CAccount €ChackingAccount CBavingeAccount

1.157 Cách khai báo kế thừa trongVB.NET

Trang 38

Người ta thường biểu diễn sơ đồ kế thừa ở dạng cấy

Các đối tượng tham chiéu base class && derived class Thành viên Private cua lap cơ sở chỉ có thể được truy cập trong thân của lớp cơ Protected cụng cấp khả năng truy cập ở mức giữa Public va Private hành viên Proteeted của lớp cơ sở có thể truy cập bởi các thành viên khác của hase class vi derived class,

Trang 39

Mi class dễu được kế thửa từ System.Object

Muốn t ng class dẫn xuất có thể cuối lên (overidden) một phương thức của glass cơ sở thì cần phi khai bảo class co sở với từ khóa Over rong System.Objeet những phương thức có thé cưỡi lên Public Overridable Function ToString() As String,

able tim

Trang 40

1.16.1 Khải niệm Tính đa hinh (Polymorphism) 1à một khái niệm cơ bản và tương đối khỏ hiểu của OOP(lập trình hướng đổi tượng)

1

Co thé hiểu như : một đối tượng biết cách thực hiện đúng "phương thức” cua nĩ én quan mật thiết tới tính kể thừa

sn” hơn,

"Với cơ chế polymorphism việc lập trình trở nên "th

pọntl ~ New CPoint(30, 50)

cirelel New CCirele(120 89.2.7)

point? cirelel 'hưan tưan cho phép

point2.ToString( )

kiểu đối tượng được Phương thức được thực thỉ la 2 phương thức cự

Tham chiếu tởi chứ khơng phải phương thức của kiểu của biển tham, Chiếu _> Tính đa hình

tiến trường hợp xây ra

Ngày đăng: 30/10/2024, 10:46

w