... trị 169 Cấu Trúc Ngôn Ngữ Lập Trình C# Ghi chú: Đối với lập trình viên C++ lưu ý, ngôn ngữ C#, từ khóa new luôn tạo đốitượng nhớ heap Cáclớp tạo heap, cấu trúc tạo stack Ngoài ra, new bỏ ... Location cấu trúc lớp, thể tạo stack Trong ví dụ 7.1 toán tử new gọi: Location loc1 = new Location( 200, 300); kết đốitượng Location tạo stack Tuy nhiên, toán tử new gọi khởi dựng lớp Location, ... 50, 100 Loc1 location: 50, 100 Lúc Location đốitượng tham chiếu nên truyền vào phương thức myFunc() việc gán giá trị cho x y điều làm thay đổiđốitượng Location Gọi khởi dựng mặc định Như đề...
... giống kiểu lớp Một điều quan trọnglớp kiểu liệu tham chiếu, cấu trúc kiểu lịêu giá trị (Chương thảo luận kiểu liệu tham chiếu kiểu liệu giá trị) Do cấu trúc thường dùng để thể hiển đốitượng không ... chiếu Trong chương tìm hiểu định nghĩa làm việc với kiểu cấu trúc cách sử dụng khởi dựng để khởi tạo giá trị cấu trúc Định nghĩa cấu trúc Cú pháp để khai báo cấu trúc tương tự cách khai báo lớp: ... toán tử? Bài tập Bài tập 1: Hãy tiếp tục phát triển lớp Fraction ví dụ chương cách thêm toán tử khác trừ, nhân, chia, so sánh Bài tập 2: Xây dựng lớp điểm không gian hai chiều, với toán tử cộng,...
... đơn giản thành 3/4 so sánh hai phân số Tronglớp thực thi phủ phương thức Equals() lớp object, đốitượng Fraction đối xử cách đa hình với đốitượng khác Trong phần thực thi phương thức ủy thác ... numerator.ToString() + “/” + denominator.ToString(); return s; } Chúng ta tạo chuỗi cách gọi phương thức ToString() numerator Do numerator đối tượng, nên trình biên dịch ngầm định thực boxing số nguyên numerator ... Fraction Constructor(int, int) f2: 2/4 Do phương phức khởi dựng lớp Fraction có gọi hàm WriteLine() để xuất thông tin khởi dựng nên tạo đốitượng (new) thông tin hịển thị Dòng hàm Main() gọi toán tử...
... Fraction.operator+(firstFraction, secondFraction) Kết sau thực đốitượng Fraction trả về, trường hợp phép gán thực để gán đốitượng Fraction cho theSum Ghi chú: Đối với người lập trình C++, ngôn ngữ C# tạo toán ... chức cộng hai đốitượng Nạp chồng toán tử cú pháp ngắn gọn, không đường dẫn cho đốitượng thiết lập nhiệm vụ đưa Sử dụng toán tử Nạp chồng toán tử làm cho mã nguồn trực quan hành động lớp mà xây ... toán tử cách sử dụng cách đặc trưng Ví dụ, hấp dẫn việc sử dụng nạp chồng toán tử gia tăng (++) lớp Employee để gọi phương thức gia tăng mức lương nhân viên, điều đem lại nhiều nhầm lẫn cho lớp client...
... để tạo mảng đốitượng Xe, đưa đốitượng cụ thể vào mảng đốitượng Xe, sau cho lặp đốitượng mảng để tự giới thiệu tên (bằng cách gọi hàm Who() đối tượng) Bài tập 3: Xây dựng lớpđốitượng hình ... nghĩa bắt buộc phải thực lớp dẫn xuất từ lớp trừu tượng Do lớp trừu tượng, thực thi nên tạo thể hay tạo đốitượng cho lớp trừu tượng Câu hỏi 3: Có phải tạo lớp phải kế thừa từ lớp không? Trả lời 3: ... phương thức phủ phương thức ảo (của lớp sở ) bên lớp dẫn xuất Câu hỏi 2: Lớp trừu tượng nào? Có thể tạo đốitượng cho lớp trừu tượng hay không? Trả lời 2: Lớp trừu tượng thực thi, phương thức tạo...
... lúc này, lớp tạo để dùng cho lớp bên ngoài, chức lớplớp trợ giúp (helper class) Chúng ta định nghĩa lớp trợ giúp bên lớp (outer class) Cáclớp định nghĩa bên gọi lớp lồng (nested class), lớp chứa ... private cho lớp Cuối cùng, lớp làm lồng bên public truy cập bên phạm vi lớp Nếu lớp Outer lớp ngoài, lớp Nested lớp public lồng bên lớp Outer, tham chiếu đến lớp Tested Outer.Nested, lớp bên hành ... liệu giá trị (như int, long, ) đối xử kiểu liệu tham chiếu (các đối tượng) Một giá trị đưa vào bên đối tượng, gọi Boxing Trường hợp ngược lại, Unboxing chuyển từ đốitượng giá trị Xử lý cho phép...
... trừu tượnglớp Window, dẫn xuất từ lớp này, ta tạo đốitượng cho lớp Khi lớp dẫn xuất phải thực thi phương thức DrawWindow() Nếu lớp dẫn xuất không thực thi phương thức trừu tượnglớp sở lớp dẫn ... thể lớp ListBox Button, hai lớp phủ phương thức trừu tượng Hay nói hai lớp xác định (ngược với lớp trừu tượng) Hạn chế lớp trừu tượng Mặc dù thiết kế phương thức DrawWindow() lớp trừu tượng ... cho lớp dẫn xuất xa nữa, việc dẫn xuất tạo thừa kế hay kiến trúc phân cấp Lớp gốc lớp nằm phân cấp thừa kế, lớp dẫn xuất nằm bên Trong ngôn ngữ C#, lớp gốc lớp Object, lớp nằm phân cấp lớp Lớp...
... dụ 5.2, ta tạo ba đối tượng, đốitượng thứ Window, đốitượng thứ hai lớp ListBox đốitượng cuối lớp Button Sau ta thực việc gọi phương thức DrawWindow() cho đốitượng sau: Window win = new Window( ... dịch lớp thực việc phủ lại phương thức DrawWindow() lớp sở Tương tự ta thực việc phủ phương thức lớp dẫn xuất khác Button, lớp dẫn xuất từ Window Trong phần thân ví dụ 5.2, ta tạo ba đối tượng, đối ... ta, đốitượng thực công việc tô vẽ Tuy nhiên, lúc chưa có đa hình thực thi Mọi chuyện bình thường ta muốn tạo mảng đốitượng Window, ListBox Window nên ta tự đặt đốitượng ListBox vào vị trí đối...
... kế hay cách tốt để tổ chức đối tượng, khởi điểm để hiểu cách quan hệ đốitượng với đốitượng khác Sự kế thừa Trong ngôn ngữ C#, quan hệ đặc biệt hóa thực thi cách sử dụng kế thừa Đây cách để ... dựng lớp sở Trong ví dụ 5.1, lớp tên ListBox dẫn xuất từ lớp sở Window, lớp ListBox có phương thức khởi dựng lấy ba tham số Trong phương thức khởi dựng lớp dẫn xuất có gọi phương thức khởi dựng lớp ... cho Gọi phương thức lớp sở Trong ví dụ 5.1, phương thức DrawWindow() lớp ListBox làm ẩn thay phương thức DrawWindow lớp sở Window Khi gọi phương thức DrawWindow đốitượnglớp ListBox phương thức...
... hướng đốitượng Khái niệm cho phép thể lớp có liên hệ với xử lý theo cách tổng quát Cuối phần trình bày lớp cô lập (sealed class) không đặt biệt hóa, hay lớp trừu tượng sử dụng đặc biệt hóa Lớpđối ... override Lớp trừu tượng Gốc tất lớp - lớp Object Boxing Unboxing liệu Boxing thực ngầm định Unboxing phải thực tường minh Cáclớp lồng Câu hỏi & tập Trong chương trước trình bày cách ... Trong chương trước trình bày cách tạo kiểu liệu việc xây dựng lớpđốitượng Tiếp theo chương đưa sâu vào mối quan hệ đốitượng giới thực cách mô hình hóa quan hệ xây dựng chương trình Chương giới...
... giá trị 169 Cấu Trúc Ngôn Ngữ Lập Trình C# Ghi chú: Đối với lập trình viên C++ lưu ý, ngôn ngữ C#, từ khóa new luôn tạo đốitượng nhớ heap Cáclớp tạo heap, cấu trúc tạo stack Ngoài ra, new bỏ ... Location cấu trúc lớp, thể tạo stack Trong ví dụ 7.1 toán tử new gọi: Location loc1 = new Location( 200, 300); kết đốitượng Location tạo stack Tuy nhiên, toán tử new gọi khởi dựng lớp Location, ... 50, 100 Loc1 location: 50, 100 Lúc Location đốitượng tham chiếu nên truyền vào phương thức myFunc() việc gán giá trị cho x y điều làm thay đổiđốitượng Location Gọi khởi dựng mặc định Như đề...
... giống kiểu lớp Một điều quan trọnglớp kiểu liệu tham chiếu, cấu trúc kiểu lịêu giá trị (Chương thảo luận kiểu liệu tham chiếu kiểu liệu giá trị) Do cấu trúc thường dùng để thể hiển đốitượng không ... chiếu Trong chương tìm hiểu định nghĩa làm việc với kiểu cấu trúc cách sử dụng khởi dựng để khởi tạo giá trị cấu trúc Định nghĩa cấu trúc Cú pháp để khai báo cấu trúc tương tự cách khai báo lớp: ... toán tử? Bài tập Bài tập 1: Hãy tiếp tục phát triển lớp Fraction ví dụ chương cách thêm toán tử khác trừ, nhân, chia, so sánh Bài tập 2: Xây dựng lớp điểm không gian hai chiều, với toán tử cộng,...
... đơn giản thành 3/4 so sánh hai phân số Tronglớp thực thi phủ phương thức Equals() lớp object, đốitượng Fraction đối xử cách đa hình với đốitượng khác Trong phần thực thi phương thức ủy thác ... numerator.ToString() + “/” + denominator.ToString(); return s; } Chúng ta tạo chuỗi cách gọi phương thức ToString() numerator Do numerator đối tượng, nên trình biên dịch ngầm định thực boxing số nguyên numerator ... Fraction Constructor(int, int) f2: 2/4 Do phương phức khởi dựng lớp Fraction có gọi hàm WriteLine() để xuất thông tin khởi dựng nên tạo đốitượng (new) thông tin hịển thị Dòng hàm Main() gọi toán tử...
... Fraction.operator+(firstFraction, secondFraction) Kết sau thực đốitượng Fraction trả về, trường hợp phép gán thực để gán đốitượng Fraction cho theSum Ghi chú: Đối với người lập trình C++, ngôn ngữ C# tạo toán ... chức cộng hai đốitượng Nạp chồng toán tử cú pháp ngắn gọn, không đường dẫn cho đốitượng thiết lập nhiệm vụ đưa Sử dụng toán tử Nạp chồng toán tử làm cho mã nguồn trực quan hành động lớp mà xây ... toán tử cách sử dụng cách đặc trưng Ví dụ, hấp dẫn việc sử dụng nạp chồng toán tử gia tăng (++) lớp Employee để gọi phương thức gia tăng mức lương nhân viên, điều đem lại nhiều nhầm lẫn cho lớp client...
... để tạo mảng đốitượng Xe, đưa đốitượng cụ thể vào mảng đốitượng Xe, sau cho lặp đốitượng mảng để tự giới thiệu tên (bằng cách gọi hàm Who() đối tượng) Bài tập 3: Xây dựng lớpđốitượng hình ... nghĩa bắt buộc phải thực lớp dẫn xuất từ lớp trừu tượng Do lớp trừu tượng, thực thi nên tạo thể hay tạo đốitượng cho lớp trừu tượng Câu hỏi 3: Có phải tạo lớp phải kế thừa từ lớp không? Trả lời 3: ... phương thức phủ phương thức ảo (của lớp sở ) bên lớp dẫn xuất Câu hỏi 2: Lớp trừu tượng nào? Có thể tạo đốitượng cho lớp trừu tượng hay không? Trả lời 2: Lớp trừu tượng thực thi, phương thức tạo...
... lúc này, lớp tạo để dùng cho lớp bên ngoài, chức lớplớp trợ giúp (helper class) Chúng ta định nghĩa lớp trợ giúp bên lớp (outer class) Cáclớp định nghĩa bên gọi lớp lồng (nested class), lớp chứa ... private cho lớp Cuối cùng, lớp làm lồng bên public truy cập bên phạm vi lớp Nếu lớp Outer lớp ngoài, lớp Nested lớp public lồng bên lớp Outer, tham chiếu đến lớp Tested Outer.Nested, lớp bên hành ... liệu giá trị (như int, long, ) đối xử kiểu liệu tham chiếu (các đối tượng) Một giá trị đưa vào bên đối tượng, gọi Boxing Trường hợp ngược lại, Unboxing chuyển từ đốitượng giá trị Xử lý cho phép...
... trừu tượnglớp Window, dẫn xuất từ lớp này, ta tạo đốitượng cho lớp Khi lớp dẫn xuất phải thực thi phương thức DrawWindow() Nếu lớp dẫn xuất không thực thi phương thức trừu tượnglớp sở lớp dẫn ... thể lớp ListBox Button, hai lớp phủ phương thức trừu tượng Hay nói hai lớp xác định (ngược với lớp trừu tượng) Hạn chế lớp trừu tượng Mặc dù thiết kế phương thức DrawWindow() lớp trừu tượng ... tất lớp thực thi cách trừu tượng Ý tưởnglớp trừu tượng Window thể thuộc tính chung với hành vi tất Window, chí ta ý định tạo thể lớp trừu tượng Window Ý nghĩa lớp trừu tượng bao hàm từ “trừu tượng ...
... dụ 5.2, ta tạo ba đối tượng, đốitượng thứ Window, đốitượng thứ hai lớp ListBox đốitượng cuối lớp Button Sau ta thực việc gọi phương thức DrawWindow() cho đốitượng sau: Window win = new Window( ... dịch lớp thực việc phủ lại phương thức DrawWindow() lớp sở Tương tự ta thực việc phủ phương thức lớp dẫn xuất khác Button, lớp dẫn xuất từ Window Trong phần thân ví dụ 5.2, ta tạo ba đối tượng, đối ... ta, đốitượng thực công việc tô vẽ Tuy nhiên, lúc chưa có đa hình thực thi Mọi chuyện bình thường ta muốn tạo mảng đốitượng Window, ListBox Window nên ta tự đặt đốitượng ListBox vào vị trí đối...
... kế hay cách tốt để tổ chức đối tượng, khởi điểm để hiểu cách quan hệ đốitượng với đốitượng khác Sự kế thừa Trong ngôn ngữ C#, quan hệ đặc biệt hóa thực thi cách sử dụng kế thừa Đây cách để ... dựng lớp sở Trong ví dụ 5.1, lớp tên ListBox dẫn xuất từ lớp sở Window, lớp ListBox có phương thức khởi dựng lấy ba tham số Trong phương thức khởi dựng lớp dẫn xuất có gọi phương thức khởi dựng lớp ... cho Gọi phương thức lớp sở Trong ví dụ 5.1, phương thức DrawWindow() lớp ListBox làm ẩn thay phương thức DrawWindow lớp sở Window Khi gọi phương thức DrawWindow đốitượnglớp ListBox phương thức...