Lập trình hướng đối tượng - Chương 4: Properties
Lý 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
Object Initializer
Dùng field khi tạo đối tượng
30 trang |
Chia sẻ: huyhoang44 | Lượt xem: 681 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Lập trình hướng đối tượng - Chương 4: Properties, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
PROPERTIESKhoa Công nghệ thông tinTrường Đại học Ngoại ngữ - Tin học, TP.HCMCHƯƠNG 4: 1Lý do dùng propertiesTạo propertiesAuto – Implemented propertiesObject InitializerNỘI DUNG2Lý do dùng properties3Ví dụ:Nhu cầu: Bên ngoài lớp có thể truy cập giá trị secondsLý do dùng propertiesclass Time{ private int seconds;}4Giải pháp “cổ điển”: Tạo method trả về giá trị second và method gán giá trị cho secondLý do dùng propertiesclass Time{ private int seconds; public int GetSeconds() { return seconds; } public void SetSeconds(int seconds) { this.seconds = seconds; if (this.seconds { get { return ; } set { } } 13Backing fieldProperty có get hay set giá trị cho field thì field đó gọi là backing field của propertyMột property không nhất thiết có backing fieldTạo properties14Tạo propertiesclass Time{ private int seconds; public int Seconds { get { return seconds; } set { seconds = value; } } public int Minutes { get { return seconds/60; } } public int Hours { get { return seconds/3600; } }}15Trong 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.116Trong 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.217Trong 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.318Trong lớp Circle ở bài tập 3.3 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.Bán kính phải lớn hơn không.Bài tập thực hành 4.419Auto – implemented properties20Nhận xétAIP tự động tạo backing field và PropertyAuto – Implemented propertiesclass Time{ private int seconds; public int Seconds { get { return seconds; } set { seconds = value; } }}class Time{ public int Seconds { get; set; }}21Object initializer22Khi tạo đối tượng, có thể dùng các properties để khởi tạo giá trịObject Initializerclass Book{ private string title; private string author; private int pages; public string Title { get { return title; } set { title = value; } } public int Pages { get { return pages; } set { pages = value; } }} public string Author { get { return author; } set { author = value; } }23Object Initializerclass Program{ static void Main(string[] args) { Book book = new Book() { Title = "Don't Make Me Think", Author= "Steve Krug" }; }}class Program{ static void Main(string[] args) { Book book = new Book(); book.Title = “Don't Make Me Think”; book.Author = “Steve Krug”; }}24Lý do dùng propertiesTruy cập fieldCode dễ đọcMột field không nhất thiết chỉ có 1 propertyAuto – Implemented propertiesVừa tạo properties vừa tạo fieldsObject InitializerDùng field khi tạo đối tượng Điểm chính Book book = new Book() { Title = "Don't Make Me Think", Author= "Steve Krug" };25Trong 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.526Tạ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.627Tạ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.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.728Tạ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)29Bà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ập30
Các file đính kèm theo tài liệu này:
- lap_trinh_huong_doi_tuongchuong_04_properties_5066.pptx