YOMEDIA
BÀI GIẢNG MÔN HỌC LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Chia sẻ: Bùi Ngọc Thành
| Ngày:
| Loại File: PPT
| Số trang:61
278
lượt xem
103
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Khai báo lớp 2. Tạo đối tượng sử dụng lớp 3. Sử dụng các thành viên static (phương thức và thuộc tính) 4. Truyền tham số kiểu ref, out, params
AMBIENT/
Chủ đề:
Nội dung Text: BÀI GIẢNG MÔN HỌC LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
- LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
1. Khai báo lớp
2. Tạo đối tượng sử dụng lớp
3. Sử dụng các thành viên static (phương thức và
thuộc tính)
4. Truyền tham số kiểu ref, out, params
5. Nạp chồng phương thức, toán tử
6. Đóng gói dữ liệu với thuộc tính, các thuộc tính
chỉ đọc
7. Indexer
8. Thực thi giao diện khả so sánh để sắp xếp một
mảng đối tượng thuộc một lớp bất kỳ 1
- Khái niệm lớp
- Lớp dùng để định nghĩa các thực thể có
cùng chung các thuộc tính và các hành vi
- Đối tượng (object) là thực thể của một
lớp. Tất cả các object của một lớp có đầy
đủ các thuộc tính và hành vi được định
nghĩa bởi lớp đó.
2
- CÁC TÍNH CHẤT CỦA LẬP TRÌNH HĐT
• Tính đóng gói
• Trừu tượng
• Kế thừa
• Đa hình
3
- 4
- Abstraction
5
- Encapsulation
6
- Inheritance
…
7
- Polymorphism
8
- Access Modifiers
public
•
protected
•
private
•
internal
•
9
- CÁC THÀNH PHẦN CƠ BẢN CỦA LỚP
– Các thuộc tính: các đặc trưng mô tả đối tượng
– Các phương thức: Các thao tác mà đối tượng có thể
thực hiện
– Định nghĩa một lớp
public class Sinhvien
{
Các thuộc tính
Các phương thức của lớp
}
- Tạo thể hiện của một lớp: Để truy cập được các thành
phần dữ liệu và phương thức của lớp, ta phải tạo đối
tượng của lớp đó.
+ Ví dụ: Sinhvien s1 = new Sinhvien(); 10
- Các thành phần cơ bản của lớp
- Phương thức là các hàm được khai báo trong
lớp, được sử dụng để thao tác với các biến
của lớp. Hàm có thể có các tham số, có giá
trị trả về hoặc không. Phương thức thể hiện
các hành vi của lớp. Các phương thức có thể
được gọi bởi đối tượng của lớp định nghĩa
phương thức đó.
11
- Tạo phương thức
- Cú pháp:
[access modifier] return_type method_name ([list of
parameters])
{
// body of method
}
- Lưu ý:
+ Tên phương thức không thể là từ khóa của C#
+ Không chứa các ký tự spaces
+ Không thể bắt đầu bằng 1 số
+ Có thể bắt đầu bằng ký tự _ hoặc @
12
- Gọi phương thức
- Có thể gọi một phương thức trong lớp bằng việc tạo
một đối tượng của lớp. Gọi phương thức theo cú
pháp sau: object_name.MethodName(list of
parameter). ?
- Nếu các phương thức được gọi bởi các phương thức
khác trong lớp. Chỉ cần dùng tên lớp và các tham số
truyền vào phương thức.
- Trong C# các phương thức luôn được gọi từ
phương thức khác.
13
- Ví dụ
public class SinhVien
{
private string hoten, quequan;
private DateTime ngaysinh;
public SinhVien (string hoten, string quequan, DateTime ngaysinh)
{
this.hoten = _hoten
this.ngaysinh = _ngaysinh
this.quequan = _quequan
}
private int TinhTuoi()
{
return DateTime.Now.Year - ngaysinh.Year
}
public void ThongTinSV()
{
string info = "";
info = info + "Họ và tên:".PadRight(12) + hoten + "“;
info = info + "Quê quán:".PadRight(12) + quequan + "“;
info = info + “Tuổi:".PadRight(12, " ") + TinhTuoi().ToString();
Console.WriteLine(info);
}
14
}
- Các thuộc tính của lớp
- Lớp SinhViên có các thuộc tính thành ph ần: hoten,
ngaysinh, quequan.
- Hàm tạo (Contructor): Được gọi khi khởi tạo một đối tượng
của lớp.
- Hàm huỷ.
- Các phương thức: TinhTuoi, ThongTinSV
- Định nghĩa truy cập các thuộc tính có thể sử dụng: private,
protected, public, internal.
- Lớp là kiểu dữ liệu tham chiếu, khi khai báo giá trị mặc định
các đối tượng của lớp là null. Trước khi dùng biến
15
- Hàm tạo (contructor)
- Hàm tạo là một phương thức đặc biệt của lớp, dùng
để tạo một đối tượng mới. Chương trình sẽ cấp phát
bộ nhớ cho đối tượng sau đó gọi đến hàm tạo
- Contructor dùng để khởi tạo các biến thành viên của
lớp.
- Đặc điểm hàm tạo:
+ Tên hàm tạo bắt buộc trùng tên lớp.
+ Không có giá trị trả về tường minh.
+ Không cho kế thừa.
16
- Chồng các hàm, nạp chồng toán tử
- Chồng các hàm: Dùng cùng một tên để định nghĩa các hàm
khác nhau. Các hàm được nạp chồng phải khác nhau v ề
đối số (số lượng, kiểu dữ liệu).
- Ví dụ:
- Nạp chồng toán tử: để thực hiện các phép toán trên kiểu dữ
liệu không chuẩn. Như +, - , * , …
- Cú pháp
public static kiểu trả về operator toán tử (các tham số)
{
// các lệnh - Từ khóa định nghĩa truy cập phải
là public và phương thức kiểu static.
}
- Toán tử có bao nhiêu ngôi thì trong
phương thức nạp chồng có bấy
nhiêu tham số
17
- Các toán tử có thể nạp chồng
Các toán tử Khả năng nạp chồng
+, , !, ~, ++, , true, false These unary operators can be overloaded.
+, , *, /, %, &, |, ^, These binary operators can be overloaded.
==, !=, , = The comparison operators can be overloaded (but see the note
that follows this table).
&&, || The conditional logical operators cannot be overloaded, but they
are evaluated using & and |, which can be overloaded.
[] The array indexing operator cannot be overloaded, but you can
define indexers.
() The cast operator cannot be overloaded, but you can define new
conversion operators (see explicit and implicit).
Assignment operators cannot be overloaded, but +=, for
+=, =, *=, /=, %=, &=, |=,
^=, = example, is evaluated using +, which can be overloaded.
=, ., ?:, >, new, is, sizeof, These operators cannot be overloaded.
typeof 18
- Ví dụ về nạp chồng toán tử
- Nạp chồng toán tử chuyển kiểu
+ Chuyển kiểu ngầm định
class Digit
{
public Digit(double d) { val = d; }
public double val;
// ...other members
// User-defined conversion from Digit to double
public static implicit operator double(Digit d)
{
return d.val;
}
// User-defined conversion from double to Digit
public static implicit operator Digit(double d)
{
return new Digit(d);
}
}
19
- Ví dụ về nạp chồng toán tử
- Chuyển kiểu tường minh
- Có 2 lớp biểu diễn nhiệt độ Celsius và Farenheit. 2 lớp có
đều có thuộc tính public là degrees.
public static explicit operator Celsius(Farenheit f)
{
return new Celsius((5.0f/9.0f)*(f.degrees-32));
}
- Sử dụng chuyển kiểu tường minh
Fahrenheit f = new Fahrenheit(100.0f);
Celsius c = (Celsius)f;
20
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...