Giải pháp “cổ điển”: Tạo method trả về giá trị second và method gán giá trị cho second Lý do dùng properties class Time { private int seconds; public int Get Seconds... Tạo properti
Trang 1Click to edit Master subtitle style
PROPERTIES
Khoa Công nghệ thông tin Trường Đại học Ngoại ngữ - Tin học, TP.HCM
CHƯƠNG 4:
Trang 3LÝ DO DÙNG PROPERTIES
Trang 5Giải pháp “cổ điển”: Tạo method trả về giá trị
second và method gán giá trị cho second
Lý do dùng properties
class Time
{
private int seconds;
public int Get Seconds()
Trang 7Một cách cực kỳ “thuận lợi” nhưng không ai dùng
C# cung cấp 1 giải pháp cho vấn đề này là Property
Trang 8TẠO PROPERTIES
Trang 9Tạo properties
class Time
{
private int seconds;
public int Seconds
}
class Time
{ private int seconds;
public int GetSeconds() {
Trang 10Khai báo property: có 3 phần
Từ khóa ‘ public ’: Ai cũng có thể dùng property
Kiểu của property
Tên property
Thân của property
get : thực thi khi ai đó đọc giá trị của property
set : thực thi khi ai đó gán giá trị cho property
Tạo properties
Trang 11Nội dung của get và set giống hàm GetSeconds
và SetSeconds
Hàm SetSeconds có tham số còn set không có
tham số mà dùng từ khóa value đại diện cho
giá trị gán cho property
Tạo properties
Trang 12Time time = new Time();
time.SetSeconds(90);
} }
Trang 13}
Trang 15Tạo properties
class Time
{
private int seconds;
public int Seconds
} }
public int Hours
{ get { return seconds/3600;
} } }
Trang 16Trong lớp TaiKhoan ở bài tập 3.1
thay thế các phương thức Get/Set
thành các properties Và kiểm tra
tính hợp lệ trước khi thay đổi dữ
liệu của field
Số tiền phải là số dương (Sotien > 0)
Bài tập thực hành 4.1
Trang 17Trong lớp Sach ở bài tập 3.4 thay
thế các phương thức Get/Set
thành các properties Và kiểm tính
hợp lệ trước khi thay đổi dữ liệu
của field
Tên sách không được là chuỗi rỗng
Giá sách phải là số dương
Bài tập thực hành 4.2
Trang 18Trong lớp SinhVien ở bài tập 3.2 thay
thế các phương thức Get/Set thành
các properties Và kiểm tính hợp lệ
trước khi thay đổi dữ liệu của field
Họ tên không được là chuỗi rỗng
Năm sinh phải là số dương
Địa chỉ không được là chuỗi rỗng
Bài tập thực hành 4.3
Trang 19Trong lớp Circle ở bài tập 3.3 thay
Trang 20AUTO – IMPLEMENTED PROPERTIES
Trang 21private int seconds;
public int Seconds
}
Trang 22OBJECT INITIALIZER
Trang 23Khi tạo đối tượng, có thể dùng các properties
để khởi tạo giá trị
Object Initializer
class Book
{
private string title;
private string author;
private int pages;
public string Title
} set { pages = value;
} }
}
public string Author
{ get { return author;
} set { author = value;
} }
Trang 24Book book = new Book();
book.Title = “Don't Make Me Think”;
book.Author = “Steve Krug”;
}
}
Trang 25Lý do dùng properties
Truy cập field
Code dễ đọc
Một field không nhất thiết chỉ có 1 property
Auto – Implemented properties
Vừa tạo properties vừa tạo fields
Trang 26Trong lớp Circle ở bài tập 4.4 vừa cài đặt
ở trên Tạo mảng đối tượng của lớp
Circle Trong phương thức Main() thực
hiện các yêu cầu sau:
Khai báo và nhập n hình tròn
Xuất thông tin n hình tròn ra màn hình
Tính và xuất diện tích của từng hình tròn
Tìm diện tích lớn nhất trong n hình tròn
đó
Bài tập thực hành 4.5
Trang 27Tạo lớp Color được biểu diễn bằng các giá trị
red, green, blue (có giá trị từ 0 đến 255) và
alpha (transparency – trong suốt – từ 0 đến
255: 0 là trong suốt, 255 là đậm đặc)
Thêm các instance variables (fields)
Thêm default constructor (255,255,255:
white)
Thêm constructor có tham số
Thêm copy constructor
Thêm properties
Thêm phương thức tính giá trị xám của màu (tính trung bình cộng 3 màu)
Bài tập thực hành 4.6
Trang 28Tạo lớp Ball, sử dụng lớp Color làm field
Gồm các fields: kích thước (size hay radius), màu sắc (color) và số lần ném banh
Thêm constructor có tham số
Thêm copy constructor
Thêm properties (có kiểm tra ràng buộc)
Thêm phương thức Pop (banh nổ => size=0)
Bài tập thực hành 4.7
Trang 29Tạo lớp Ball (tt)
Thêm phương thức Throw (cộng thêm 1 khi banh chưa bị nổ)
Thêm phương thức Input() để nhập thông tin trái banh
Thêm phương thức Output() để xuất thông tin trái banh
Viết phương thức Main()
bàn phím)
Bài tập thực hành 4.7 (tt)
Trang 30Bài tập OOP của ThS Tôn Quang
Toại, Khoa CNTT, Huflit, 2016
Tài liệu tham khảo bài tập