Đối tượng Object Mô tả một thực thể hay một quan hệ trong thế giới thực Có các thuộc tính properties và hành vi behaviors Có thể là thực thể vật lý hay thực thể khái niệm.. Lớp v
Trang 1Xây dựng lớp _ đối tượng Chương 3:
Giảng viên: Ths Nguyễn Thị Khiêm Hòa
Trang 3Đối tượng (Object)
Mô tả một thực thể hay một quan hệ trong thế giới thực
Có các thuộc tính (properties) và hành vi (behaviors)
Có thể là thực thể vật lý hay thực thể khái niệm
Mô tả những vấn đề cần thao tác trong hệ thống
Đối tượng = Dữ liệu + Hành vi
Trang 4Đối tượng (Object)
Thuộc tính: mô tả thông tin của đối tượng
Trạng thái: được định nghĩa bởi giá trị của thuộc tính tại một thời điểm nào đó
Hành vi: chỉ ra các hoạt động của đối tượng được cài đặt thành phương thức (methods)
Trang 5Multimedia: Lớp đối tượng và đối tượng
Trang 6Lớp và đối tượng
Lớp (Class):
Thiết kế của đối tượng
Chứa thuộc tính và phương thức
Được xem như kiểu dữ liệu trừu tượng
Đối tượng (Object):
Thể hiện (Instance) của
lớp, đóng vai trò biến trong
Bath Office
Dining Room
Family Room Covered Porch
Class
Trang 7Xây dựng lớp và tạo đối tượng
[Bổ từ truy cập] class <tên lớp> [: Lớp cơ sở]
Trang 8Xây dựng lớp và tạo đối tượng
public class hocsinh
{
private string hoten;
public int lop ;
public void lenlop()
Trang 9Xây dựng lớp và tạo đối tượng
public class Taikhoan {
private string tentk;
private double sodutk = 0;
private double gioihanrut;
public void naptien(double tiennap) {
sodutk = sodutk + tiennap;
} public void ruttien(double tienrut) {
sodutk = sodutk - tienrut;
} }
Ví dụ
Trang 10Xây dựng lớp và tạo đối tượng
Tạo đối tượng
Taikhoan tk = new Taikhoan();
Truy xuất thành phần
tk.naptien(100000);
Trang 11Bổ từ truy cập
Quy định giới hạn truy xuất vào các thành phần của lớp
public Không giới hạn
private Chỉ truy cập trong nội bộ của lớp
internal Cho phép các lớp trong cùng chương trình
Trang 12Phương thức khởi tạo
Phương thức đặc biệt, được gọi tự động khi tạo ra đối tượng
Tên phương thức có cùng tên với lớp
Giới hạn truy cập: public
Phương thức khởi tạo mặc định không có tham số
Không có giá trị trả về
Không cho phép tham chiếu trực tiếp
Trang 13Phương thức khởi tạo
Giá trị mặc định của các kiểu dữ liệu
Kiểu dữ liệu Giá trị mặc định
int, long, byte,… 0
char ‘\0’, Null
Reference Null
Trang 14Phương thức khởi tạo
public class Taikhoan
{
… public Taikhoan() { tentk = Null;
sodutk = 0;
gioihanrut = 0;
} }
Ví dụ
Trang 15Nạp chồng phương thức khởi tạo
Có thể tạo nhiều phương thức khởi tạo cùng tên
Cũng có thể dùng con trỏ this
public class Lion
{
private string name;
private int age;
Trang 16Nạp chồng phương thức khởi tạo
public class Lion
{
private string name;
private int age;
}
Ví dụ
Trang 17Phương thức khởi tạo sao chép
Tạo một đối tượng mới bằng cách sao chép toàn bộ các thành phần dữ liệu từ một đối tượng đã có cùng lớp
public class Thoigian
Trang 18Phương thức khởi tạo sao chép
static void main()
Trang 19Bài tập
Xây dựng lớp Tài khoản hoàn chỉnh
Thực hiện
10 min
Trang 20Từ khóa this
Dùng để tham chiếu đến thể hiện hiện hành của một đối tượng
Con trỏ ẩn đến tất các phương thức không có thuộc tính tĩnh
(nonstatic) trong một lớp
Mỗi phương thức có thể tham chiếu đến những phương thức khác
và các biến thành viên thông qua tham chiếu this này
Trang 22Từ khóa this
class Point {
… public void Dispose() {
GC.SuppressFinalize( this );
} public override void Finalize() {
Dispose();
base.Finalize();
}
Ví dụ
Truyền đối tượng hiện hành làm tham số cho một phương
thức của đối tượng khác
Trang 23Từ khóa this
class Point {
}
Ví dụ
Gọi nạp chồng phương thức thiết lập từ phương thức thiết
lập khác
Trang 24 Dùng chung cho tất cả các thể hiện của lớp
Sử dụng không thông qua một thể hiện nào trong lớp
Khai báo thành phần tĩnh bằng từ khóa static
Thuộc tính tĩnh lưu trữ trạng thái liên quan đến tất cả các thể hiện
Trang 25Phương thức tĩnh
Hàm Main()
Được xem là hoạt động chung chứ không riêng thể hiện nào của lớp
Không có tham chiếu this
Không được các thể hiện tham chiếu đến
Không được gọi trực tiếp các phương thức không
tĩnh(nonstatic)
Trang 26Phương thức khởi tạo tĩnh
Được thực thi 1 lần khi chương trình thực thi
Thực thi trước bất kỳ thể hiện được tạo ra
Không tham số và bổ từ truy cập
Không cho phép truy xuất trực tiếp
Dùng khởi tạo các thành phần tĩnh
public class A {
static int x;
static A() {
x = 0;
}
Ví dụ
Trang 28Hủy đối tượng
Ngôn ngữ C# cung cấp cơ chế thu dọn (garbage collection)
Khai báo tường minh các phương thức hủy để giải phóng các tài nguyên với các đoạn mã không được quản lý
Trang 29… public void Dispose() {
GC.SuppressFinalize( this );
} public override void Finalize() {
Dispose();
base.Finalize();
}
Ví dụ
Trang 30} public void GetTime(int h, int m, int s) {
Trang 31Tham biến và tham trị
Tham trị
Trực tiếp chứa DL
Phải được khởi tạo
Không có giá trị null
Khai báo bởi từ khóa new
Được hủy bởi NET garbage collection
Lớp là một tham chiếu
42
i
c
Trang 32Truyền tham số cho phương thức
int h=0, m=0, s=0;
this.GetTime(h, m, s);
Console.WriteLine(“{0}:{1}:{2}”,h,m,s); }
}
Ví
dụ
Trang 33Truyền tham chiếu
int h=0, m=0, s=0;
this.GetTime(ref h, ref m, ref s);
Console.WriteLine(“{0}:{1}:{2}”,h,m,s); }
}
Ví
dụ
Trang 34Truyền tham chiếu
Cách gọi phương thức khi truyền tham chiếu
Trang 35Truyền tham chiếu với biến chưa khởi tạo
Cách gọi phương thức khi truyền tham chiếu với từ khóa out
public class Tester
{
static void Main() {
… int h, m, s;
t.GetTime(out h, out m, out s);
System.Console.WriteLine(“Current time: {0}:{1}:{2}”,
h, m, s);
}
Trang 36Nạp chồng phương thức
Tạo ra nhiều phương thức cùng tên
Tham số khác nhau:
Số lượng tham số khác nhau
Kiểu tham số khác nhau
Trang 37Nạp chồng phương thức
using System;
public class Area
{
private double areaVal;
public void AreaCal(double radius) {
areaVal = 22/7*radius*radius;
} public void AreaCal(double length, double width) {
areVal = length * width;
} }
Ví dụ
Trang 38//khai báo các thuộc tính
<Bổ từ truy cập> <kiểu trả về> <Tên thuộc tính> {
get { //câu lệnh }
set { //câu lệnh }
Trang 39public class Employee
{
private string fullName;
public string Name
{
get { return fullName }
set { fullName = value;
} }
}
Ví dụ
Trang 41Bài t ậ p
Xây dựng lớp Point chứa tọa độ của một
điểm trên mặt phẳng Oxy Nhập 2 điểm trên mặt phẳng rồi tính khoảng cách giữa hai điểm đó
Thực hiện
45 min
Trang 42Q & A