Bài giảng Lập trình hướng đối tượng Chương 4 Properties cung cấp cho người học các kiến thức Lý do dùng properties, tạo properties, auto – Implemented properties, object Initializer. Mời các bạn cùng tham khảo nội dung chi tiết.
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
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
{
return seconds/60;
} }
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”;
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.
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 (timeOfThrown)
Khai báo các fields cho Ball (field color nên dùng
kiểu Color đã tạo từ bài trước)
Thêm default constructor: size=0, soLanNem=0,
màu mặc địn
Thêm constructor có tham số
Thêm copy constructor
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()
• Khai báo và tạo n trái banh có giá trị mặc định (n nhập từ bàn
phím).
• Nhập lại thông tin trái banh thứ 0.
• Xuất ra n trái banh.
• Ném trái banh thứ 1, 2.
• Cho nổ trái thứ 1 và ném trái thứ 1.
• In số lần ném các trái banh.
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