Tải bản đầy đủ (.pdf) (58 trang)

Bài giảng môn học Kỹ thuật lập trình C: Chương 4 - Đại học Kinh tế Luật

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (20.72 MB, 58 trang )

Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Chương 4

Lớp và đối tượng


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Nội dung

v Lập trình truyền thống và lập trình hướng đối tượng
v Các khái niệm liên quan tới Lớp và Đối tượng
v Các mức truy xuất
v Các thành phần của lớp
v Thuộc tính, phương thức
v Operator
v Service Method và Support Method
v Overloading method
v Parameter list method
v Alias và cơ chế gom rác tự động


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật



Khoa Hệ Thống Thông Tin

Lập trình truyền thống
q

Phương pháp tiếp cận của lập trình truyền thống

ü

Lập trình tuyến tính.

ü

Lập trình cấu trúc

q

Ưu điểm

ü

Chương trình rõ ràng, dễ hiểu, dễ theo dõi.

ü

Tư duy giải thuật rõ ràng.

q


Khuyết điểm

ü

Không hỗ trợ việc sử dụng lại mã nguồn.

ü

Khi thay đổi cấu trúc dữ liệu, phải thay đổi giải thuật. 

ü

Phải giải quyết các mối quan hệ vĩ mô giữa các module phần 


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Lập trình hướng đối tượng
q

Đặc điểm cơ bản

ü

Tập trung vào dữ liệu thay cho các hàm. 

ü


Chương trình được chia thành các đối tượng độc lập. 

ü

Cấu trúc dữ liệu được thiết kế sao cho đặc tả được các đối tượng.

ü

Dữ liệu được che giấu, bao bọc. 

ü

Các đối tượng trao đổi với nhau thông qua các hàm.

ü

Chương trình được thiết kế theo hướng tiếp cận từ dưới lên. 


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Lập trình hướng đối tượng
q

Một số ưu điểm nổi bật


ü

Không có nguy cơ dữ liệu bị thay đổi tự do trong chương trình. 

ü

Khi  thay  đổi  cấu  trúc  dữ  liệu  của  một  đối  tượng,  không  cần 
thay đổi mã nguồn của các đối tượng khác.

ü

Có thể sử dụng lại mã nguồn, tiết kiệm tài nguyên.

ü

Phù hợp với các dự án phần mềm lớn, phức tạp.


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Khái niệm Lớp và Đối tượng

v Khái  niệm  đối  tượng  (object)  trong  lập  trình 
hướng đối tượng giống như một đối tượng cụ thể 
trong thế giới thực.
v Mỗi  đối  tượng  có  các  thuộc  tính  và  các  hành  vi 
riêng.

§ Thuộc  tính  (attribute)  mô  tả  đặc  điểm  của  đối 
tượng.
§ Hành  vi  là  phương  thức  hoạt  động  của  đối 
tượng, gọi tắt là phương thức (method).


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khái niệm Lớp và Đối tượng

v Ví dụ: Phân số
v Đặc điểm
§ Tử số
§ Mẫu số
v Thao tác
§ Cộng, trừ, nhân, chia
§ Tối giản
§ Nghịch đảo

Khoa Hệ Thống Thông Tin


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khái niệm Lớp và Đối tượng

v Ví dụ: xe hơi
§ Màu trắng

§ 4 cửa
§ 4 bánh
§ Hiệu Toyota
§ Chạy tới
§ Chạy lui
§ Xe dừng
§…

Khoa Hệ Thống Thông Tin


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Khái niệm Lớp và Đối tượng

v Đối tượng:
v XeHoi
v Hiệu xe
v Màu xe
v Số bánh xe
v Số cửa
v Chạy tới
v Chạy lui
v Dừng xe

v Tên đối tượng
v Thuộc tính


v Phương thức


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Khái niệm Lớp và Đối tượng

v Các  đối  tượng  có  các  đặc  điểm  (thuộc  tính  và 
phương  thức)  giống  nhau  được  gom  nhóm  thành 
một lớp để phân biệt với các đối tượng khác và dễ 
quản lý.
⇒Một  lớp  (class)  là  sự  phân  loại  của  các  đối  tượng 
hay là kiểu (type) của đối tượng.
v Ví dụ: 
− Các  chiếc  xe  Toyota,  Honda,  Porsche  thuộc  lớp 
xe hơi.
• Các  con  chó  giữ  nhà,  chó  săn,  chó  kiểng  thuộc 
lớp chó.


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Khái niệm Lớp và Đối tượng

v

v

Như  vậy  Lớp  là  một  khái  niệm  trừu  tượng,  dùng 
để chỉ một tập hợp các đối tượng có mặt trong hệ 
thống.
Lớp có thuộc tính và phương thức:
§

§

Thuộc  tính  của  lớp  tương  ứng  với  thuộc  tính  của  đối 
tượng.
Phương thức của lớp tương  ứng với các hành động của 
đối tượng.


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Khái niệm Lớp và Đối tượng
v

Một Lớp có thể có một trong các khả năng sau:
§
§
§


Ø

Hoặc chỉ có thuộc tính, không có phương thức.
Hoặc chỉ có phương thức, không có thuộc tính.
Hoặc có cả thuộc tính và phương thức, trường hợp này là 
phổ biến nhất.

Lớp không có thuộc tính và phương thức nào là các 
lớp  trừu  tượng.  Các  lớp  này  không  có  đối  tượng 
tương ứng.


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Khái niệm Lớp và Đối tượng
v

Không gian tên (namespace)
§

§

Một nhóm các lớp (classes) và giao diện (interfaces) được 
tổ  chức  thành  một  đơn  vị  quản  lý  theo  hình  thức  không 
gian tên gọi là namespace.
Lợi  ích  của  namespace  là  tổ  chức  sắp  xếp  lại hệ thống 

thông tin các lớp trong dự án một cách khoa học, giúp cho 
việc theo dõi bảo trì dự án được tốt nhất.


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Khái niệm Lớp và Đối tượng
v

Tính trừu tượng:
§

Ø
§
§

Lớp  (Class)  là  một  khái  niệm  trừu  tượng,  đối  tượng  là 
một thể hiện cụ thể của lớp.
Ví dụ: 
Bản thiết kế của chiếc xe hơi là lớp.
Chiếc xe hơi được tạo ra từ bản thiết kế là đối tượng.

Object
Class


Đại Học Quốc Gia TP.HCM

Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Khái niệm Lớp và Đối tượng
v

Tính trừu tượng:
§

§

v

Từ  những  đối  tượng  giống  nhau:  trừu  tượng  hóa  thành 
một lớp: 
Chỉ  đưa ra các thuộc tính và phương thức cần thiết của 
đối tượng trong lập trình.

Ví dụ: 
Trừu tượng hóa

Objects

Class


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật


Khoa Hệ Thống Thông Tin

Khái niệm Lớp và Đối tượng
v

Tính đóng gói:
§

§

§

Mỗi  lớp  được  xây  dựng  để  thực  hiện  một  nhóm  chức 
năng đặc trưng của riêng lớp đó.
Tất cả mọi thao tác truy xuất vào thành phần dữ liệu từ 
đối  tượng này qua  đối  tượng khác  phải  được thực hiện 
bởi các phương thức (method) của chính đối tượng chứa 
dữ liệu. 
Tính đóng gói cho phép dấu thông tin của đối tượng bằng 
cách kết hợp thông tin và các phương thức liên quan đến 
thông tin trong đối tượng.


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Khái niệm Lớp và Đối tượng
v


Tính đóng gói:

v

Ví dụ:

ngungXe()

chayToi()

chayLui()

ngungXe()
chayToi()
chayLui()
kiemTraXang()

mucXang
Yes, I can
drive !


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Khái niệm Lớp và Đối tượng
v


Ø

Tính kế thừa:
§
Cho  phép  xây  dựng  một  lớp  mới  dựa  trên  các 
định nghĩa của một lớp đã có. 
§
Lớp đã có gọi là lớp Cha, lớp mới phát sinh gọi là 
lớp Con 
§
Lớp  con  kế  thừa  tất  cả  các  thành  phần  của  lớp 
Cha, có thể mở rộng các thành phần kế thừa và 
bổ sung thêm các thành phần mới.

 
Khái niệm này sẽ trình bày chi tiết ở chương sau


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khái niệm Lớp và Đối tượng
v

Tính kế thừa:

v

Ví dụ:


Khoa Hệ Thống Thông Tin


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Định nghĩa Lớp
v

v

Quy tắc đặt tên Lớp trong C#
§
Tên lớp nên là một danh từ
§
Tên lớp có thể gồm nhiều từ, ký tự đầu tiên của 
mỗi từ nên viết hoa
§
Tên lớp nên đặt đơn giản, dễ nhớ, và có ý nghĩa
§
Tên lớp không được trùng với từ khóa của Java
§
Tên lớp không thể bắt đầu bằng số.

Trong  một  dự  án  thực  tế  làm  sao  xác  định 
được  các  Lớp,  các  đối  tượng,  thuộc  tính  và 
phương thức của đối tượng???



Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Định nghĩa Lớp

class TenLop
{
//khai báo biến lớp
kieubien tenBien1;
kieubien tenBien2;
//khai báo phương thức
PhuongThuc1();
PhuongThuc2();
}


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Định nghĩa Lớp

v Định nghĩa lớp Phân Số:
class PhanSo
{

//khai báo biến lớp
int tuSo;
int mauSo;
//khai báo phương
thức
...
}


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Định nghĩa Lớp kiểu POCO

v Không  cần  khai  báo  thuộc  tính,  sử  dụng  trực  tiếp 
public class PhanSo
Properties:
{
public int TuSo
{
get;
set;
}
public int MauSo
{
get;
set;
}

public override string
ToString()
{
return
this.TuSo+"/"+this.MauSo;
}
}


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Khởi tạo đối tượng

v TenLop tenBien = new TenLop();
v Ví dụ:
§ PhanSo psA = new PhanSo();
§ XeHoi xeHoiB = new XeHoi();
Từ  khóa  new  dùng  để  cấp  phát  bộ  nhớ  cho  đối 
tượng. psA và xeHoiB là 2 biến đối tượng trỏ tới 2 
vùng nhớ được cấp phát trong thanh RAM
xeHoiB
RAM

XX
X
psA


YY
Y


Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật

Khoa Hệ Thống Thông Tin

Mức truy suất

vpublic
§ Có thể truy xuất ở mọi nơi khác

vprivate
§ Chỉ có thể truy xuất ở trong class

vprotected
§ Chỉ có thể truy xuất  ở trong class hoặc class kế 
thừa


×