Tải bản đầy đủ (.ppt) (13 trang)

Bài giảng Lập trình hướng đối tượng 1: Chương 3 - ThS. Thái Kim Phụng

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 (168.47 KB, 13 trang )

Trường ĐH Kinh Tế
Tp.HCM
Khoa Tin Học Quản Lý

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
1
CHƯƠNG 3: ĐỊNH NGHĨA TOÁN TỬ


Nội dung

1.
1. Định
Địnhnghĩa
nghĩatoán
toántử
tử
2.
2.Các
Cácloại
loạitoán
toán tử
tử
3.
3. Phạm
Phạm vi
visử
sửdụng
dụngtoán
toán tử
tử


4.
4.Bài
Bàitập
tậpthực
thựchành
hành


1. Định nghĩa toán tử
 Trong C# , toán tử là một phương thức tĩnh (static

method) dùng để nạp chồng (overload) một phép tốn
nào đó trên các đối tượng.
 Mục đích của tốn tử là để viết mã chương trình gọn
gàng, dễ hiểu hơn, thay vì phải gọi phương thức .
 Ví dụ: Giả sử ta có lớp PhanSo có phương thức Cong
PhanSo ps1 = new PhanSo(2,4) ;
PhanSo ps2 = new PhanSo(1,3) ;
Thay vì viết: PhanSo ps3 = ps1.Cong(ps2);
ta viết: PhanSo ps3 = ps1 + ps2;


1. Định nghĩa tốn tử
 Ta có thể nạp chồng các toán tử sau:
 Toán học: + , - , * , / , %
 Cộng trừ một ngôi: ++ , -- ,  Quan hệ so sánh: == , != , > , < , >= , <=
 Ép kiểu:( )


1. Định nghĩa toán tử

 Nạp chồng toán tử bằng cú pháp sau:
public
public static
staticType
TypeOperator
Operator operator_symbol([parameter_list]);
operator_symbol([parameter_list]);

 Trong đó :
 Type là kiểu giá trị trả về.
 parameter_list là danh sách các đối số nếu có.
 operator_symbol là các tốn tử.


1. Định nghĩa toán tử
public static PhanSo operator + (PhanSo a, PhanSo b) {
PhanSo kq = new PhanSo();
kq.tu = a.tu * b.mau + a. mau * b.tu;
kq.mau = a.mau * b mau;
return kq. RutGon();
}
public static PhanSo operator - (PhanSo a, PhanSo b) {
PhanSo kq = new PhanSo();
kq.tu = a.tu * b.mau - a.mau * b.tu;
kq.mau = a.mau * b.mau;
return kq. RutGon();
}


1. Định nghĩa toán tử

 Lưu ý khi nạp chồng toán tử
 Tham số của toán tử phải là tham trị (khơng dùng

các từ khóa ref, out).
 Khơng được nạp chồng toán tử = (gán), && , || (and,
or logic), ?: (điều kiện), checked, unchecked, new,
typeof, as, is.
 [ ] khơng được xem là một tốn tử.
 Khi nạp chồng các toán tử dạng: +, -, *, / , % thì các
tốn tử +=, -=, *=, /= , %= cũng tự động được nạp
chồng.


1. Định nghĩa toán tử
 Lưu ý khi nạp chồng tốn tử (tt)
 Khi nạp chồng tốn tử thì nên nạp chồng theo cặp

đối ngẫu. Chẳng hạn, khi nạp chồng tốn tử == thì
nạp chồng thêm tốn tử !=
 Khi nạp chồng tốn tử ==, != thì nên phát triển thêm
các phương thức Equals(), GetHashCode() để đảm
bảo luật “hai đối tượng bằng nhau theo toán tử ==
hoặc phương thức Equals sẽ có cùng mã băm”.
 Khi định nghĩa tốn tử ép kiểu ta phải chỉ ra đây là
toán tử ép kiểu ngầm định (implicit) hay tường minh
(explicit).


2. Các loại tốn tử
 Trong C#, có các tốn tử có thể nạp chồng và các


phương thức thay thế như sau:
Toán tử

Tên phương thức
thay thế

Toán tử

Tên phương thức
thay thế

+

Add

>

Compare

-

Subtract

<

Compare

*


Multiply

!=

Compare

/

Divide

>=

Compare

%

Mod

<=

Compare

^

Xor

*=

Multiply


&

BitwiseAnd

-=

Subtract

|

Bitwiseor

^=

Xor


2. Các loại toán tử
&&

Add

<<=

leftshift

||

Or


%=

Mod

=

Assign

+=

Add

<<

leftshift

&=

BitwiseAnd

>>

Rightshift

|=

Bitwiseor

==


Equals

/=

Divide

--

Decrement

-

Negate

++

Increment


3. Phạm vi sử dụng toán tử
Phạm trù

Toán tử

Hạn chế

Nhị phân tốn học

+, *, /, -, %


Khơng

Thập phân tốn học

+, -, ++, --

Không

Nhị phân bit

&, |, ^, <<, >>

Không

Thập phân bit

!, ~, true, false

Không

So sánh

==,!=,>=,<,
<=, >

Phải nạp chồng theo
từng cặp.


Bài thực hành 1

Xây dựng lớp Vector gồm có các thành phần dữ
liệu X, Y, Z.
Các phương thức:
- Phương thức khởi tạo khơng tham số
- Phương thức khởi tạo có 3 tham số
- Phương thức: setX(float x), setY(float y), setZ(float
Z), getX(), getY(), getZ()
- Phương thức HienThi()
- Phương thức nạp chồng toán tử cộng (+) đối với hai
vector


Bài thực hành 2
Viết chương trình thực hiện nạp chồng các toán
tử +, -, *, /, ==, !=, >,<= trên phân số.



×