... lưu sở liệu, phần thân truy cập thực công việc tương tác với sở lịêu Hoặc giá trị thuộc tính lưu trữ biến thành viên lớp ví dụ: private int hour; Truy cập lấy liệu (get accessor) Phần khai báo ... muốn gán: theHour++; t.Hour = theHour; Lợi ích hướng tiếp cận cho phép thành phần bên (client) tương tác với thuộc tính cách trực tiếp, mà hy sinh việc che dấu lịêu đặc tính đóng gói lịêu thiết ... tính: set { hour = value; } Như nói trước, ta khai báo thuộc tính lưu trữ dạng biến thành viên nên phần thân truy cập ta sử dụng biến thành viên mà Bộ truy cập thiết lập hoàn toàn cho phép viết giá...
... điều lý tưởng Các thành phần bên (client) muốn truy cập trạng thái đối tượng không muốn làm việc với phương thức Tuy nhiên, người thiết kế lớp muốn dấu trạng thái bên lớp mà xây dựng, cung cấp cách ... trả hai phương thức khác nhau, điều không đòi hỏi thích hợp trường hợp Đóng gói liệu với thành phần thuộc tính Thuộc tính khái niệm cho phép truy cập trạng thái lớp thay thông qua truy cập trực ... thiết kế nhắm vào hai mục đích: cung cấp giao diện đơn cho phép truy cập biến thành viên, Tuy nhiên cách thức thực thi truy cập giống phương thức liệu che dấu, đảm bảo cho yêu cầu thiết kế hướng đối...
... đổi với biến điều có hiệu lực tương tự thay đổi hàm Main() Tóm lại chế truyền tham số dạng tham chiếu thực đối tượng đưa vào Còn chế truyền tham số giá trị tạo đối tượng truyền vào, thay đổi bên ... Ngữ Lập Trình C# m = Minute; s = Second; } cách gọi phương thức GetTime() Main(): t.GetTime( out theHour, out theMinute, out theSecond); Tóm lại ta có cách khai báo tham số phương thức sau: kiểu ... t.GetTime( ref int theHour, ref int theMinute, ref int theSecond); Việc sử dụng đoạn lệnh hoàn toàn vô lý mục đích nhận giá trị đối tượng Time, việc khởi tạo giá trị biến đưa vào không cần thiết Tuy...
... dành cho thu dọn thực Nếu xửlý tài nguyên không kiểm soát xửlý handle tập tin ta muốn đóng hay giải phóng nhanh chóng lúc nào, ta có thực thi giao diện IDisposable, phần chi tiết IDisposable ... tạo thực thi phương thức Finalize() Chúng ta làm điều xửlý tài nguyên không kiểm soát Chúng ta không gọi phương thức Finalize() đối tượng cách trực tiếp, ngoại trừ gọi phương thức lớp sở bên ... giá trị tập hợp giá trị Nếu muốn phương thức trả nhiều giá trị cách thực tạo tham số hình thức tham chiếu Khi phương thức ta xửlý Xây Dựng Lớp - Đối Tượng 107 ...
... thân đối tượng thực ta bắt buộc phải dùng tham chiếu this để truyền Các thứ ba sử dụng tham chiếu this mảng mục (indexer), phần trình bày chi tiết chương Sử dụng thành viên tĩnh (static member) ... biến thành viên khởi dựng Ngôn ngữ C# không cung cấp khởi dựng chép, phải tự tạo Việc chép thành phầntừ đối tượng ban đầu cho đối tượng sau: public ThoiGian( ThoiGian tg) { Nam = tg.Nam; Thang ... thức khác biến thành viên thông qua tham chiếu this Tham chiếu this sử dụng thường xuyên theo ba cách: Sử dụng biến thành viên bị che lấp tham số đưa vào, trường hợp sau: public void SetYear(...
... đối tượng Phương thức gọi khởi dựng (constructor) Các phương thức định nghĩa xây dựng lớp, ta không tạo CLR thay mặt mà tạo phương thức khởi dựng cách mặc định Chức khởi dựng tạo đối tượng xác định ... thức khởi dựng mặc định tạo cho đối tượng không thực hành động nào, tức bên thân phương thức rỗng Các biến thành viên khởi tạo giá trị tầm thường thuộc tính nguyên có giá trị chuỗi khởi tạo rỗng, ... dựng tham số dt tham chiếu đến đối tượng DateTime đối tượng vừa tạo mà currentTime tham chiếu Nói cách khác lúc tham số dt currentTime tham chiếu đến đối tượng DateTime nhớ Nhờ phương thức khởi...
... Ngôn Ngữ Lập Trình C# } Thành phần thuộc tính đối tượng trình bày chi tiết chương sau, thành phần bổ sung truy cập trình ... thức định nghĩa hoàn toàn bên lớp Phần cuối định nghĩa lớp phần khai báo biến thành viên: Nam, Thang, Ngay, Gio, Phut, va Giay Sau định nghĩa xong lớp ThoiGian, phần định nghĩa lớp Tester, lớp ... phát triển ta bàn sau Tất thành viên lớp định nghĩa bên thân lớp, phần thân bao bọc hai dấu ({}) Ghi chú: Trong ngôn ngữ C# phần kết thúc lớp đấu chấm phẩy giống khai báo lớp ngôn ngữ C/C++...
... tính static Hủy đối tượng Truyền tham số Nạp chồng phương thức Đóng gói liệu với thành phần thuộc tính Thuộc tính đọc Câu hỏi & tập Chương thảo luận nhiều kiểu liệu ngôn ngữ C#, int,...
... tồn định danh Định nghĩa định danh Câu lệnh tiền xửlý sau: #define DEBUG Lệnh định nghĩa định danh tiền xửlýcó tên DEBUG Mặc dù thị tiền xửlý khác đặt đâu chương trình, với thị định nghĩa ... // Các đoạn mã nguồn bình thường, không bị tác động trình tiền xửlý Khi chương trình tiền xửlý thực hiện, chúng tìm thấy câu lệnh #define DEBUG lưu lại định danh DEBUG Tiếp theo trình tiền xử ... ta viết sau: #define DEBUG // Các đoạn mã nguồn bình thường, không bị tác động trình tiền xửlý #if DEBUG // Các đoạn mã nguồn khối if debug biên dịch #else // Các đoạn mã nguồn không định nghĩa...
... đề, không với mục đích yêu cầu Do việc xây dựng trình tựxửlý toán tử cần thiết Các luật độ ưu tiên xửlý bảo trình biên dịch biết toán tử thực trước biểu thức.Tương tự phép toán đại số phép nhân ... loại có độ ưu tiên từ xuống dưới, toán tử loại có độ ưu tiên cao phép toán gán có độ ưu tiên thấp toán tử Toán tử ba Hầu hết toán tử đòi hỏi có toán hạng toán tử (++, ) hay hai toán hạng (+,-,*,/, ... toán tửCác phép toán liệt kê loại có thứ tự theo mục thứ thự bảng: thứ tự trái tức độ ưu tiên phép toán từ bên trái sang, thứ tự phải phép toán có độ ưu tiên từ bên phải qua trái Các toán tử khác...
... đề, không với mục đích yêu cầu Do việc xây dựng trình tựxửlý toán tử cần thiết Các luật độ ưu tiên xửlý bảo trình biên dịch biết toán tử thực trước biểu thức.Tương tự phép toán đại số phép nhân ... loại có độ ưu tiên từ xuống dưới, toán tử loại có độ ưu tiên cao phép toán gán có độ ưu tiên thấp toán tử Toán tử ba Hầu hết toán tử đòi hỏi có toán hạng toán tử (++, ) hay hai toán hạng (+,-,*,/, ... toán tửCác phép toán liệt kê loại có thứ tự theo mục thứ thự bảng: thứ tự trái tức độ ưu tiên phép toán từ bên trái sang, thứ tự phải phép toán có độ ưu tiên từ bên phải qua trái Các toán tử khác...
... lưu sở liệu, phần thân truy cập thực công việc tương tác với sở lịêu Hoặc giá trị thuộc tính lưu trữ biến thành viên lớp ví dụ: private int hour; Truy cập lấy liệu (get accessor) Phần khai báo ... muốn gán: theHour++; t.Hour = theHour; Lợi ích hướng tiếp cận cho phép thành phần bên (client) tương tác với thuộc tính cách trực tiếp, mà hy sinh việc che dấu lịêu đặc tính đóng gói lịêu thiết ... tính: set { hour = value; } Như nói trước, ta khai báo thuộc tính lưu trữ dạng biến thành viên nên phần thân truy cập ta sử dụng biến thành viên mà Bộ truy cập thiết lập hoàn toàn cho phép viết giá...
... điều lý tưởng Các thành phần bên (client) muốn truy cập trạng thái đối tượng không muốn làm việc với phương thức Tuy nhiên, người thiết kế lớp muốn dấu trạng thái bên lớp mà xây dựng, cung cấp cách ... trả hai phương thức khác nhau, điều không đòi hỏi thích hợp trường hợp Đóng gói liệu với thành phần thuộc tính Thuộc tính khái niệm cho phép truy cập trạng thái lớp thay thông qua truy cập trực ... thiết kế nhắm vào hai mục đích: cung cấp giao diện đơn cho phép truy cập biến thành viên, Tuy nhiên cách thức thực thi truy cập giống phương thức liệu che dấu, đảm bảo cho yêu cầu thiết kế hướng đối...
... đổi với biến điều có hiệu lực tương tự thay đổi hàm Main() Tóm lại chế truyền tham số dạng tham chiếu thực đối tượng đưa vào Còn chế truyền tham số giá trị tạo đối tượng truyền vào, thay đổi bên ... Ngữ Lập Trình C# m = Minute; s = Second; } cách gọi phương thức GetTime() Main(): t.GetTime( out theHour, out theMinute, out theSecond); Tóm lại ta có cách khai báo tham số phương thức sau: kiểu ... t.GetTime( ref int theHour, ref int theMinute, ref int theSecond); Việc sử dụng đoạn lệnh hoàn toàn vô lý mục đích nhận giá trị đối tượng Time, việc khởi tạo giá trị biến đưa vào không cần thiết Tuy...
... dành cho thu dọn thực Nếu xửlý tài nguyên không kiểm soát xửlý handle tập tin ta muốn đóng hay giải phóng nhanh chóng lúc nào, ta có thực thi giao diện IDisposable, phần chi tiết IDisposable ... tạo thực thi phương thức Finalize() Chúng ta làm điều xửlý tài nguyên không kiểm soát Chúng ta không gọi phương thức Finalize() đối tượng cách trực tiếp, ngoại trừ gọi phương thức lớp sở bên ... giá trị tập hợp giá trị Nếu muốn phương thức trả nhiều giá trị cách thực tạo tham số hình thức tham chiếu Khi phương thức ta xửlý 107 Xây Dựng Lớp - Đối Tượng ...
... thân đối tượng thực ta bắt buộc phải dùng tham chiếu this để truyền Các thứ ba sử dụng tham chiếu this mảng mục (indexer), phần trình bày chi tiết chương Sử dụng thành viên tĩnh (static member) ... biến thành viên khởi dựng Ngôn ngữ C# không cung cấp khởi dựng chép, phải tự tạo Việc chép thành phầntừ đối tượng ban đầu cho đối tượng sau: public ThoiGian( ThoiGian tg) { Nam = tg.Nam; Thang ... thức khác biến thành viên thông qua tham chiếu this Tham chiếu this sử dụng thường xuyên theo ba cách: Sử dụng biến thành viên bị che lấp tham số đưa vào, trường hợp sau: public void SetYear(...
... Ngôn Ngữ Lập Trình C# } Thành phần thuộc tính đối tượng trình bày chi tiết chương sau, thành phần bổ sung truy cập trình ... thức định nghĩa hoàn toàn bên lớp Phần cuối định nghĩa lớp phần khai báo biến thành viên: Nam, Thang, Ngay, Gio, Phut, va Giay Sau định nghĩa xong lớp ThoiGian, phần định nghĩa lớp Tester, lớp ... phát triển ta bàn sau Tất thành viên lớp định nghĩa bên thân lớp, phần thân bao bọc hai dấu ({}) Ghi chú: Trong ngôn ngữ C# phần kết thúc lớp đấu chấm phẩy giống khai báo lớp ngôn ngữ C/C++...
... tính static Hủy đối tượng Truyền tham số Nạp chồng phương thức Đóng gói liệu với thành phần thuộc tính Thuộc tính đọc Câu hỏi & tập Chương thảo luận nhiều kiểu liệu ngôn ngữ C#, int,...
... tồn định danh Định nghĩa định danh Câu lệnh tiền xửlý sau: #define DEBUG Lệnh định nghĩa định danh tiền xửlýcó tên DEBUG Mặc dù thị tiền xửlý khác đặt đâu chương trình, với thị định nghĩa ... // Các đoạn mã nguồn bình thường, không bị tác động trình tiền xửlý Khi chương trình tiền xửlý thực hiện, chúng tìm thấy câu lệnh #define DEBUG lưu lại định danh DEBUG Tiếp theo trình tiền xử ... ta viết sau: #define DEBUG // Các đoạn mã nguồn bình thường, không bị tác động trình tiền xửlý #if DEBUG // Các đoạn mã nguồn khối if debug biên dịch #else // Các đoạn mã nguồn không định nghĩa...