LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 1. Chuẩn đầu ra của học phần: L1. Áp dụng các kiến thức về lập trình hướng đối tượng của ngôn ngữ C để xây dựng các ứng dụng. 2. Mục tiêu bài học: Sinh viên cài đặt được các lớp bằng cách mô hình hóa các đối tượng, sử dụng được các kỹ thuật lập trình hướng đối tượng để giải quyết được một số bài tập thực tế. 3. Hình thức, thời lượng dạy học: Lý thuyết (3,5,6) + NỘI DUNG BÀI HỌC ONLINE PHẦN 1. LỚP VÀ ĐỐI TƯỢNG....................................................................................2 1. Tổng quan về lập trình hướng đối tượng.................................................................2 2. OOP là gì? ...............................................................................................................2 3. Lịch sử của OOP......................................................................................................3 4. Tại sao sử dụng OOP?.............................................................................................3 5. Các đặc điểm của OOP............................................................................................5 5.1. Các đối tượng (Objects) ...................................................................................5 5.2. Đặc điểm 1: Tính trừu tượng (Abstraction)......................................................5 5.3. Đặc điểm 2: Tính đóng gói (Encapsulation) ....................................................6 5.4. Đặc điểm 3: Tính thừa kế (Inheritance) ...........................................................7 5.5. Đặc điểm 4: Tính đa hình (Polymorphism)......................................................7 5.6. Tổng hợp (Aggregation)...................................................................................7 6. C nhìn ở góc độ lịch sử.........................................................................................8 7. Tạo class..................................................................................................................8 7.1. Giới thiệu các đối tượng và lớp (object và class).............................................8 7.2. Định nghĩa lớp (class).......................................................................................9 7.3. Tạo các thuộc tính cho class.............................................................................9 7.4. Tạo các phương thức ......................................................................................11 7.5. Phương thức khởi tạo .....................................................................................12 7.6. Nạp chồng (overloading)................................................................................13 7.7. Luyện tập ........................................................................................................13 7.8. Từ khóa static (tĩnh) ..................................................
LẬP TRÌNH NET BÀI LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Chuẩn đầu học phần: L1 Áp dụng kiến thức lập trình hướng đối tượng ngôn ngữ C# để xây dựng ứng dụng Mục tiêu học: Sinh viên cài đặt lớp cách mơ hình hóa đối tượng, sử dụng kỹ thuật lập trình hướng đối tượng để giải số tập thực tế Hình thức, thời lượng dạy - học: Lý thuyết (3,5,6) + NỘI DUNG BÀI HỌC ONLINE PHẦN LỚP VÀ ĐỐI TƯỢNG Tổng quan lập trình hướng đối tượng 2 OOP gì? .2 Lịch sử OOP Tại sử dụng OOP? Các đặc điểm OOP 5.1 Các đối tượng (Objects) 5.2 Đặc điểm 1: Tính trừu tượng (Abstraction) 5.3 Đặc điểm 2: Tính đóng gói (Encapsulation) 5.4 Đặc điểm 3: Tính thừa kế (Inheritance) 5.5 Đặc điểm 4: Tính đa hình (Polymorphism) 5.6 Tổng hợp (Aggregation) C # nhìn góc độ lịch sử Tạo class 7.1 Giới thiệu đối tượng lớp (object class) .8 7.2 Định nghĩa lớp (class) .9 7.3 Tạo thuộc tính cho class .9 7.4 Tạo phương thức 11 7.5 Phương thức khởi tạo .12 7.6 Nạp chồng (overloading) 13 7.7 Luyện tập 13 7.8 Từ khóa static (tĩnh) .18 Học kết hợp Trang LẬP TRÌNH NET + NỘI DUNG BÀI HỌC OFFLINE PHẦN KẾ THỪA VÀ GIAO DIỆN 23 Kế thừa (Inheritance) 23 1.1 Tạo class sở class dẫn xuất 23 1.2 Sử dụng quyền truy cập class 24 1.3 Ghi đè phương thức class sở 26 1.4 Tính đa hình lập trình hướng đối tượng 33 1.5 Lớp niêm phong (sealed class) .37 1.6 Lớp trừu tượng (class abstract) .38 Giao diện (interface) 39 2.1 Khai báo 40 2.2 Ví dụ tạo giao diện thực thi .41 2.3 Giao diện IComparable 42 2.4 Giao diện IComparer 46 - PHẦN LỚP VÀ ĐỐI TƯỢNG Tổng quan lập trình hướng đối tượng Để tạo tiền đề cho việc học lập trình hướng đối tượng (OOP) C #, học xem xét sơ qua lịch sử lập trình hướng đối tượng đặc điểm ngơn ngữ lập trình hướng đối tượng Chúng ta xem lập trình hướng đối tượng lại trở nên quan trọng phát triển hệ thống phần mềm phân tán có sức mạnh cơng nghiệp Chúng ta xem cách C # phát triển thành ứng dụng hàng đầu ngơn ngữ lập trình Sau đọc học này, nắm được: Lập trình hướng đối tượng Tại lập trình hướng đối tượng lại trở nên quan trọng việc phát triển ứng dụng sức mạnh công nghiệp Các đặc điểm tạo nên ngơn ngữ lập trình hướng đối tượng Lịch sử phát triển C # OOP gì? Lập trình hướng đối tượng (OOP) cách tiếp cận để phát triển phần mềm, cấu trúc phần mềm dựa đối tượng tương tác với để hoàn thành Học kết hợp Trang LẬP TRÌNH NET nhiệm vụ Sự tương tác có dạng thơng điệp chuyển qua chuyển lại đối tượng Để trả lời thơng điệp, đối tượng thực hành động Nếu nhìn vào cách hoàn thành nhiệm vụ giới xung quanh, thấy tương tác giới hướng đối tượng Ví dụ, muốn đến cửa hàng, bạn tương tác với đối tượng ô tô Một đối tượng ô tô bao gồm các đối tượng tương tác với để hoàn thành nhiệm vụ đưa bạn đến cửa hàng Bạn đặt chìa khóa vào vật đánh lửa vặn Điều đến lượt gửi thơng điệp (thơng qua tín hiệu điện) đến đối tượng khởi động, tương tác với đối tượng động để khởi động xe Là người lái xe, bạn bị cô lập khỏi logic cách đối tượng hệ thống hoạt động để khởi động xe Bạn cần bắt đầu chuỗi kiện cách thực phương thức bắt đầu đối tượng đánh lửa chìa khóa Sau đó, bạn chờ phản hồi (thông báo) thành công hay thất bại Tương tự vậy, người dùng chương trình phần mềm bị lập khỏi logic cần thiết để hồn thành nhiệm vụ Ví dụ: bạn in trang trình xử lý văn mình, bạn bắt đầu hành động cách nhấp vào nút in Bạn cần đợi phản hồi cho bạn biết in Trong chương trình phần mềm, đối tượng nút tương tác với đối tượng máy in, đối tượng tương tác với máy in thực tế để hoàn thành nhiệm vụ in trang Lịch sử OOP Các khái niệm OOP bắt đầu xuất vào năm 1960 với ngơn ngữ lập trình gọi Simula ngày phát triển vào năm 1970 với đời Smalltalk Mặc dù nhà phát triển phần mềm không áp dụng tiến ban đầu ngôn ngữ OOP, phương pháp luận hướng đối tượng tiếp tục phát triển Vào năm 1980, mối quan tâm trở lại phương pháp luận hướng đối tượng Cụ thể, ngôn ngữ OOP C ++ Eiffel trở nên phổ biến với lập trình viên máy tính thống OOP tiếp tục phát triển phổ biến năm 1990, đáng ý với đời Java thu hút lượng lớn người theo dõi Và vào năm 2002, với việc phát hành NET Framework, Microsoft giới thiệu ngôn ngữ OOP mới, C # (phát âm Csharp) cải tiến ngơn ngữ có phổ biến rộng rãi họ, Visual Basic, để thực hướng đối tượng Ngày ngôn ngữ OOP tiếp tục phát triển trụ cột lập trình đại Tại sử dụng OOP? Tại OOP phát triển thành mô hình sử dụng rộng rãi để giải vấn đề nghiệp vụ ngày nay? Trong năm 1970 1980, ngơn ngữ lập trình hướng thủ tục C, Pascal Fortran sử dụng rộng rãi để phát triển hệ thống phần mềm theo định hướng nghiệp vụ Các ngôn ngữ thủ tục tổ chức Học kết hợp Trang LẬP TRÌNH NET chương trình theo kiểu tuyến tính — chúng chạy từ xuống Nói cách khác, chương trình chuỗi bước chạy nối tiếp Kiểu lập trình hoạt động tốt chương trình nhỏ bao gồm vài trăm dòng mã, chương trình trở nên lớn hơn, chúng trở nên khó quản lý gỡ lỗi Trong nỗ lực quản lý kích thước ngày tăng chương trình, lập trình có cấu trúc giới thiệu để chia nhỏ mã thành phân đoạn quản lý gọi hàm thủ tục Đây cải tiến, chương trình thực chức nghiệp vụ phức tạp tương tác với hệ thống khác, thiếu sót sau lập trình cấu trúc bắt đầu xuất hiện: Các chương trình trở nên khó bảo trì Chức có khó thay đổi mà khơng ảnh hưởng xấu đến tất chức hệ thống Các chương trình xây dựng từ đầu Do đó, có lợi nhuận từ việc đầu tư nỗ lực trước Lập trình khơng có lợi cho việc phát triển nhóm Các lập trình viên phải biết khía cạnh cách chương trình hoạt động khơng thể lập nỗ lực họ khía cạnh hệ thống Thật khó để chuyển mơ hình nghiệp vụ thành mơ hình lập trình Lập trình cấu trúc hoạt động tốt tách biệt khơng tích hợp tốt với hệ thống khác Ngồi thiếu sót này, số phát triển hệ thống máy tính gây căng thẳng cách tiếp cận chương trình cấu trúc, chẳng hạn như: Các nhà lập trình yêu cầu có quyền truy cập trực tiếp vào chương trình thơng qua việc kết hợp giao diện người dùng đồ họa máy tính để bàn họ Người dùng yêu cầu cách tiếp cận trực quan hơn, cấu trúc để tương tác với chương trình Các hệ thống máy tính phát triển thành mơ hình phân tán logic nghiệp vụ, giao diện người dùng sở liệu phụ trợ kết hợp lỏng lẻo truy cập qua Internet mạng nội Do đó, nhiều nhà phát triển phần mềm nghiệp vụ chuyển sang phương pháp hướng đối tượng ngôn ngữ lập trình Ngơn ngữ lập trình dựa hai khái niệm liệu cách thức để thao tác với liệu Cách tiếp cận hướng đối tượng định nghĩa đối tượng thực thể có tập giá trị xác định tập hợp thao tác xác định thực giá trị Học kết hợp Trang LẬP TRÌNH NET Những lợi ích bao gồm điều sau đây: Chuyển đổi trực quan từ mơ hình phân tích kinh doanh sang mơ hình triển khai phần mềm Khả trì thực thay đổi chương trình cách hiệu nhanh chóng Khả tạo hệ thống phần mềm hiệu cách sử dụng quy trình nhóm, cho phép chun gia làm việc phận hệ thống Khả sử dụng lại thành phần mã chương trình khác mua thành phần viết nhà phát triển bên thứ ba để tăng chức chương trình có mà khơng tốn nhiều cơng sức Tích hợp tốt với hệ thống máy tính phân tán kết hợp lỏng lẻo Cải tiến tích hợp với hệ điều hành đại Khả tạo giao diện đồ họa-người dùng trực quan cho người dùng Các đặc điểm OOP Trong phần này, bạn xem xét số khái niệm thuật ngữ chung cho tất ngôn ngữ OOP 5.1 Các đối tượng (Objects) Như lưu ý trước đó, sống giới hướng đối tượng Bạn đối tượng Bạn tương tác với đối tượng khác Trên thực tế, bạn đối tượng có liệu chiều cao màu tóc bạn Bạn có hành vi mà bạn thực thực bạn, chẳng hạn ăn uống Vậy đối tượng gì? Theo thuật ngữ OOP, đối tượng cấu trúc kết hợp liệu cách thức để làm việc với liệu Ví dụ: bạn muốn có chức in ứng dụng mình, bạn làm việc với đối tượng máy in chịu trách nhiệm liệu phương pháp sử dụng để tương tác với máy in bạn 5.2 Đặc điểm 1: Tính trừu tượng (Abstraction) Khi bạn tương tác với đối tượng giới, bạn thường quan tâm đến tập hợp thuộc tính chúng Nếu khơng có khả để trừu tượng hóa lọc thuộc tính khơng liên quan đối tượng, bạn khó xử lý vơ số thơng tin làm bạn nhiễu loạn khó tập trung vào nhiệm vụ trước mắt Kết trừu tượng hóa, hai người khác tương tác với đối tượng, họ thường xử lý tập hợp thuộc tính khác Ví dụ, tơi lái xe ô tô mình, cần biết tốc độ xe hướng Vì xe sử dụng hộp số tự động nên không cần biết số vòng quay phút (RPM) động nên lọc thông tin Mặt khác, thông tin quan trọng tay đua xe đua, người không lọc thông tin Học kết hợp Trang LẬP TRÌNH NET Khi xây dựng đối tượng ứng dụng OOP, điều quan trọng phải kết hợp khái niệm trừu tượng Các đối tượng bao gồm thơng tin có liên quan ngữ cảnh ứng dụng Nếu bạn xây dựng ứng dụng vận chuyển, bạn tạo đối tượng sản phẩm với thuộc tính kích thước trọng lượng Màu sắc mặt hàng thông tin không liên quan bị bỏ qua Mặt khác, xây dựng ứng dụng nhập đơn đặt hàng, màu sắc quan trọng đưa vào thuộc tính đối tượng sản phẩm 5.3 Đặc điểm 2: Tính đóng gói (Encapsulation) Một tính quan trọng khác OOP tính đóng gói Đóng gói q trình mà khơng có quyền truy cập trực tiếp phép cấp vào liệu; thay vào đó, bị ẩn Nếu bạn muốn có quyền truy cập vào liệu, bạn phải tương tác với đối tượng chịu trách nhiệm liệu Trong ví dụ kiểm kê trước đó, bạn muốn xem cập nhật thông tin sản phẩm, bạn phải làm việc thông qua đối tượng sản phẩm Để đọc liệu, bạn gửi cho đối tượng sản phẩm thông điệp Các đối tượng sản phẩm sau đọc giá trị gửi lại thông điệp cho bạn biết giá trị Đối tượng sản phẩm xác định thao tác thực liệu sản phẩm Nếu bạn gửi thông điệp để sửa đổi liệu đối tượng sản phẩm xác định yêu cầu hợp lệ, thực thao tác cho bạn gửi lại thông điệp kèm theo kết Bạn trải nghiệm gói gọn sống hàng ngày lúc Hãy nghĩ phận nhân Họ đóng gói (ẩn) thơng tin nhân viên Họ xác định cách liệu sử dụng thao tác Bất kỳ yêu cầu liệu nhân viên yêu cầu cập nhật liệu phải chuyển qua chúng Một ví dụ khác an ninh mạng Mọi yêu cầu thông tin bảo mật thay đổi sách bảo mật phải thực thông qua quản trị viên an ninh mạng Dữ liệu bảo mật đóng gói từ người sử dụng mạng Bằng cách đóng gói liệu, bạn làm cho liệu hệ thống an toàn đáng tin cậy Bạn biết liệu truy cập thao tác thực liệu Điều làm cho việc bảo trì chương trình dễ dàng nhiều đơn giản hóa q trình gỡ lỗi Bạn sửa đổi phương thức sử dụng để làm việc liệu và, bạn không thay đổi cách phương thức yêu cầu kiểu phản hồi gửi lại, bạn không cần phải thay đổi đối tượng khác phương pháp Hãy suy nghĩ thời điểm bạn gửi thư qua đường bưu điện Bạn yêu cầu bưu điện chuyển thư Làm bưu điện hồn thành việc khơng tiết lộ cho bạn Nếu thay đổi lộ trình mà sử dụng để gửi thư, khơng ảnh hưởng đến cách bạn bắt đầu gửi thư Bạn không cần phải biết thủ tục nội bưu điện sử dụng để chuyển thư Học kết hợp Trang LẬP TRÌNH NET 5.4 Đặc điểm 3: Tính thừa kế (Inheritance) Hầu hết đối tượng sống thực phân loại thành thứ bậc Ví dụ, bạn phân loại tất chó với có số đặc điểm chung định có bốn chân lơng Các giống họ tiếp tục phân loại chúng thành nhóm phụ với thuộc tính chung kích thước phong thái Bạn phân loại đối tượng theo chức chúng Ví dụ, có xe thương mại xe giải trí Có xe tải xe khách Bạn phân loại tơ theo thực mơ hình họ Để hiểu giới, bạn cần sử dụng phân cấp phân loại đối tượng Bạn sử dụng tính kế thừa OOP để phân loại đối tượng chương trình theo đặc điểm chức chung Điều giúp làm việc với đối tượng dễ dàng trực quan Nó làm cho việc lập trình dễ dàng cho phép bạn kết hợp đặc điểm chung vào đối tượng mẹ kế thừa đặc điểm đối tượng Ví dụ: bạn xác định đối tượng nhân viên xác định tất đặc điểm chung nhân viên cơng ty bạn Sau đó, bạn xác định đối tượng người quản lý kế thừa đặc điểm đối tượng nhân viên bổ sung đặc điểm riêng cho người quản lý công ty bạn Do tính kế thừa, đối tượng quản lý tự động phản ánh thay đổi đặc điểm đối tượng nhân viên 5.5 Đặc điểm 4: Tính đa hình (Polymorphism) Tính đa hình khả đối tượng khác phản hồi thông điệp yêu cầu theo cách riêng chúng Điều liên quan đến OOP? Bạn tạo đối tượng phản hồi thông báo triển khai độc đáo riêng chúng Ví dụ: bạn gửi tin nhắn đến đối tượng máy in in văn máy in bạn gửi thơng báo tương tự đến đối tượng hình in văn đến cửa sổ hình máy tính bạn Một ví dụ điển hình khác tính đa hình việc sử dụng từ ngơn ngữ tiếng Anh Các từ có nhiều nghĩa khác nhau, thông qua ngữ cảnh câu, bạn suy ý nghĩa sử dụng Bạn biết nói “Give me a break!” (Hãy cho nghỉ ngơi!) yêu cầu bạn đánh gãy chân mình! 5.6 Tổng hợp (Aggregation) Tổng hợp đối tượng bao gồm tổng hợp đối tượng khác hoạt động Ví dụ: đối tượng máy cắt cỏ bạn tổng hợp đối tượng bánh xe, đối tượng động cơ, đối tượng lưỡi dao, v.v Trên thực tế, đối tượng động tổng hợp nhiều đối tượng khác Có nhiều ví dụ tập hợp giới xung quanh Khả sử dụng tính tổng hợp OOP tính mạnh mẽ cho phép bạn lập mơ hình thực xác quy trình nghiệp vụ chương trình Học kết hợp Trang LẬP TRÌNH NET Bây bạn hiểu cấu thành ngơn ngữ OOP ngơn ngữ OOP lại quan trọng việc phát triển ứng dụng cấp doanh nghiệp, bước bạn làm quen với cách ứng dụng OOP thiết kế C # nhìn góc độ lịch sử Ngôn ngữ C # lấy cảm hứng từ Java Đến lượt nó, Java lấy cảm hứng từ C ++, lần - mặt hướng đối tượng - truy ngược trở lại Simula Dưới tổng quan ngôn ngữ lập trình hướng đối tượng quan trọng mà từ C # hình thành: Simula (1967) - Ngơn ngữ lập trình hướng đối tượng C ++ (1983) - Ngơn ngữ lập trình hướng đối tượng họ ngôn ngữ C Java (1995) - Ngơn ngữ lập trình hướng đối tượng Sun C # (2001) - Ngơn ngữ lập trình hướng đối tượng Microsoft Tạo class 7.1 Giới thiệu đối tượng lớp (object class) Trong OOP, bạn sử dụng đối tượng chương trình để đóng gói liệu liên kết với thực thể mà chương trình hoạt động Ví dụ, ứng dụng nhân cần làm việc với nhân viên Nhân viên có thuộc tính liên quan đến họ cần theo dõi Bạn quan tâm đến thứ tên nhân viên, địa chỉ, phòng ban, v.v Mặc dù bạn theo dõi thuộc tính giống cho tất nhân viên, nhân viên có giá trị riêng cho thuộc tính Trong ứng dụng nguồn nhân lực, đối tượng Nhân viên lấy sửa đổi thuộc tính liên kết với nhân viên Trong OOP, đặc tính (attribute) đối tượng gọi thuộc tính (property) Cùng với thuộc tính nhân viên, ứng dụng nhân cần tập hợp hành vi thiết lập đối tượng Nhân viên Ví dụ, hành vi quan tâm nhân viên phận nhân khả yêu cầu thời gian nghỉ Trong OOP, đối tượng thể hành vi thông qua phương thức Đối tượng Employee chứa phương thức RequestTimeOff chứa mã thực thi Các thuộc tính phương thức đối tượng sử dụng OOP xác định thông qua lớp (class) Class thiết kế định nghĩa thuộc tính hành vi đối tượng tạo thể class Nếu bạn hồn thành việc phân tích thiết kế ứng dụng phù hợp, bạn tham khảo tài liệu thiết kế UML để xác định class cần xây dựng thuộc tính phương thức mà class chứa Các biểu đồ lớp UML chứa thông tin ban đầu bạn cần để xây dựng class hệ thống Học kết hợp Trang LẬP TRÌNH NET Chúng ta xem mã lớp Nhân viên (Employee) đơn giản Lớp Employee có thuộc tính phương thức làm việc với liệu nhân viên phần ứng dụng nhân lực giả định 7.2 Định nghĩa lớp (class) Chúng ta kiểm tra mã nguồn cần thiết để tạo định nghĩa class Dòng mã xác định khối mã định nghĩa class cách sử dụng lớp từ khóa theo sau tên class Phần thân định nghĩa class bao gồm dấu ngoặc nhọn mở đóng Khối mã cấu trúc sau: class Person {} 7.3 Tạo thuộc tính cho class Sau xác định điểm bắt đầu { điểm kết thúc khối mã } class, bước xác định biến thể (thường gọi trường) có class Các biến giữ liệu mà thể class bạn thao tác Từ khóa private đảm bảo biến cá thể thao tác mã bên class Dưới định nghĩa biến thể hiện: private string _id; private string _name; private int _age; Khi người dùng class (mã máy khách) cần truy vấn đặt giá trị biến thể này, thuộc tính cơng khai hiển thị với chúng Bên khối mã thuộc tính khối Set (nhận) khối Get (đặt) Khối Get trả giá trị biến riêng tư cho người dùng class Mã cung cấp thuộc tính đọc Khối Set cung cấp thuộc tính cho phép ghi; chuyển giá trị người dùng gửi đến biến thể riêng tương ứng Đây ví dụ khối thuộc tính: public string Id { get { return _id; } set { _id = value; } } public string Name { get { return _name; } set { _name = value; } } public int Age { get { return _age; } set { _age = value; } } Học kết hợp Trang LẬP TRÌNH NET Có thể đơi bạn muốn hạn chế quyền truy cập vào thuộc tính để người dùng đọc giá trị thuộc tính khơng thay đổi Bằng cách loại bỏ khối thiết lập bên khối thuộc tính, bạn tạo thuộc tính đọc Đoạn mã sau cho biết cách đặt thuộc tính EmployeeID chế độ đọc: public string Id { get { return _id; } } Những người dùng OOP thường hỏi cần phải trải qua nhiều cơng việc để có thiết lập thuộc tính Bạn tạo biến phiên công khai mà người dùng đọc ghi trực tiếp? Câu trả lời nằm nguyên lý OOP: tính đóng gói Đóng gói có nghĩa máy khách khơng có quyền truy cập trực tiếp vào liệu Khi làm việc với liệu, máy khách phải sử dụng thuộc tính phương thức xác định rõ ràng truy cập thông qua thể lớp static void Main(string[] args) { Person p = new Person(); p.Id = "P01"; p.Name = "Nguyen Thi Anh"; p.Age = 20; Console.WriteLine("Person Id: " + p.Id); Console.WriteLine("Person Name: " + p.Name); Console.WriteLine("Person Age: " + p.Age); } Như Id, Name, Age phương thức dùng để thiết lập lấy (Set/Get) giá trị thuộc tính class Sau số lợi ích việc đóng gói liệu theo cách này: Ngăn chặn truy cập trái phép vào liệu Đảm bảo tính tồn vẹn liệu thơng qua kiểm tra lỗi Tạo thuộc tính đọc ghi Cách ly người dùng lớp khỏi thay đổi mã triển khai Ví dụ: bạn kiểm tra để đảm bảo mật dài sáu ký tự thông qua đoạn mã sau: public string Password { get { return _password; } set { if (value.Length >= 6) { _password = value; } else { throw new Exception("Password must be at least characters"); } } } Học kết hợp Trang 10