... location: 20 0, 3000 In myFunc loc: 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 ... chúng cấu trúc Tạo cấu trúc không gọi new Bởi 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( 20 0, 300); kết đốitượng Location tạo stack Tuy ... Bộ khởi tạo mặc định thiết lập tất biến thành viên vớ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ớ...
... Câu hỏi 2: Có thể tạo ký toán tử riêng ta thực thi nạp chồng toán tử hay không? Câu hỏi 3: Có toán tử mà NET quy định? Ký hiệu 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 ... 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, trừ, nhân, chia Bài tập 3: Tương tự tập điểm nằm không gian chiều Bài tập 4: Xây dựng lớp số phúc ... khác là: Không có hủy khởi tạo mặc định tùy chọn: Những cấu trúc hủy khởi tạo mặc định không tham số tùy chọn Nếu không cung cấp khởi tạo cấu trúc cung cấp khởi tạo mặc định, giá trị thiết lập...
... new Fraction( 3, 4); Console.WriteLine("f1:{0}",f1.ToString()); Fraction f2 = new Fraction( 2, 4); Console.WriteLine("f2:{0}",f2.ToString()); Fraction f3 = f1 + f2; Console.WriteLine("f1 + f2 = ... 3/4, 2/ 4: Fraction f1 = new Fraction( 3, 4); Console.WriteLine("f1:{0}",f1.ToString()); Fraction f2 = new Fraction( 2, 4); Console.WriteLine("f2:{0}",f2.ToString()); Kết thực lệnh sau: In Fraction ... int) f1: 3/4 In 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...
... secondFraction trình biên dịch chuyển biểu thức vào: 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 ... + secondFraction; Thì toán tử nạp chồng + thực hiện, với firstFraction truyền vào tham số đầu tiên, secondFraction truyền vào tham số thứ hai Khi trình biên dịch gặp biểu thức: firstFraction + ... khóa operator theo sau toán tử nạp chồng Từ khóa operator bổ sung phương thức (method operator) Như vậy, để nạp chồng toán tử cộng (+) viết operator + Khi viết: Fraction theSum = firstFraction...
... Main() để 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 ... 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: Không thiết vậy, nhiên C#, tất lớp tạo ... 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 hình thức, tức có khai báo, phần...
... C# Phải chắn đốitượng boxing kiểu giá trị đưa Sao chép giá trị từ thể hay đốitượng vào biến kịểu giá trị Heap Stack i 123 int i = 123 ; i o 123 boxed Int 123 object o=i; k 123 int k = (int)o; ... ngầm định kiểu liệu giá trị sang kiểu liệu tham chiếu đốitượng Boxing giá trị cách tạo thể hiển đốitượng cần dùng chép giá trị vào đốitượngtạo Ta có hình vẽ sau minh họa trình Boxing số nguyên ... C# Stack Heap i 123 int i = 123 ; i boxed o 123 object o=i; Int 123 Hình 5.5: Boxing số nguyên Boxing thực ngầm định đặt kiểu giá trị vào tham chiếu chờ đợi giá trị đưa vào đốitượng cách tự động...
... xuất, việc tạo thể hay đốitượng cho lớp trừu tượng xem không hợp lệ Một khai báo phương thức trừu tượng, phải ngăn cấm việc tạo thể cho lớp Do vậy, thiết kế phương thức DrawWindow() trừu tượng lớp ... 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ượng lớp sở lớp dẫn xuất lớp trừu tượng, ta tạo thể lớp ... Những phương thức bao gồm Equals() kiểm tra xem hai đốitượng có giống hay không Phương thức GetType() trả kiểu đốitượngVà phương thức ToString 1 42 Kế Thừa – Đa Hì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í đốitượng Window mảng Vàtương tự ta đặt đốitượng Button vào vị trí mảng đốitượng Window, ... phần thân ví 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 ... winArray = new Window[3]; winArray[0] = new Window( 1, ); winArray[1] = new ListBox( 3, 4, “List box is array”); winArray [2] = new Button( 5, ); Chuyện xảy gọi phương thức DrawWindow() cho đối tượng...
... void Main() { // tạođốitượng cho lớp sở Window w = new Window(5, 10); w.DrawWindow(); // tạođốitượng cho lớp dẫn xuất ListBox lb = new ListBox( 20 , 10, “Hello world!”); lb.DrawWindow(); } ... Ngôn Ngữ Lập Trình C# Sự thiết 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 ... Khi gọi phương thức DrawWindow đốitượng lớp ListBox phương thức ListBox.DrawWindow() thực hiện, phương thức Window.DrawWindow() lớp sở Window Tuy nhiên, ta gọi phương thức DrawWindow() lớp sở...
... tính a, b, c nghiệm x1, x2 Hãy xây dựng theo hướng đốitượng lớp Lớp cho phép bên xem nghiệm phương trình cho phép thiết lập hay xem giá trị a, b, c 124 Xây Dựng Lớp - ĐốiTượng Ngôn Ngữ Lập Trình ... tập 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 ... không đặt biệt hóa, hay lớp trừu tượng sử dụng đặc biệt hóa Lớp đốitượng Object gốc tất lớp thảo luận phần cuối chương Đặc biệt hóa tổng quát hóa Lớp thể lớp tức đốitượng không tồn khối, chúng tồn...
... location: 20 0, 3000 In myFunc loc: 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 ... chúng cấu trúc Tạo cấu trúc không gọi new Bởi 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( 20 0, 300); kết đốitượng Location tạo stack Tuy ... 0, Bộ khởi tạo mặc định thiết lập tất biến thành viên vớ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ớ...
... Câu hỏi 2: Có thể tạo ký toán tử riêng ta thực thi nạp chồng toán tử hay không? Câu hỏi 3: Có toán tử mà NET quy định? Ký hiệu 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 ... 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, trừ, nhân, chia Bài tập 3: Tương tự tập điểm nằm không gian chiều Bài tập 4: Xây dựng lớp số phúc ... khác là: Không có hủy khởi tạo mặc định tùy chọn: Những cấu trúc hủy khởi tạo mặc định không tham số tùy chọn Nếu không cung cấp khởi tạo cấu trúc cung cấp khởi tạo mặc định, giá trị thiết lập...
... new Fraction( 3, 4); Console.WriteLine("f1:{0}",f1.ToString()); Fraction f2 = new Fraction( 2, 4); Console.WriteLine("f2:{0}",f2.ToString()); Fraction f3 = f1 + f2; Console.WriteLine("f1 + f2 = ... 3/4, 2/ 4: Fraction f1 = new Fraction( 3, 4); Console.WriteLine("f1:{0}",f1.ToString()); Fraction f2 = new Fraction( 2, 4); Console.WriteLine("f2:{0}",f2.ToString()); Kết thực lệnh sau: In Fraction ... int) f1: 3/4 In 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...
... secondFraction trình biên dịch chuyển biểu thức vào: 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 ... + secondFraction; Thì toán tử nạp chồng + thực hiện, với firstFraction truyền vào tham số đầu tiên, secondFraction truyền vào tham số thứ hai Khi trình biên dịch gặp biểu thức: firstFraction + ... khóa operator theo sau toán tử nạp chồng Từ khóa operator bổ sung phương thức (method operator) Như vậy, để nạp chồng toán tử cộng (+) viết operator + Khi viết: Fraction theSum = firstFraction...
... Main() để 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 ... 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: Không thiết vậy, nhiên C#, tất lớp tạo ... 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 hình thức, tức có khai báo, phần...
... C# Phải chắn đốitượng boxing kiểu giá trị đưa Sao chép giá trị từ thể hay đốitượng vào biến kịểu giá trị Heap Stack i 123 int i = 123 ; i o 123 boxed Int 123 object o=i; k 123 int k = (int)o; ... ngầm định kiểu liệu giá trị sang kiểu liệu tham chiếu đốitượng Boxing giá trị cách tạo thể hiển đốitượng cần dùng chép giá trị vào đốitượngtạo Ta có hình vẽ sau minh họa trình Boxing số nguyên ... C# Stack Heap i 123 int i = 123 ; i boxed o 123 object o=i; Int 123 Hình 5.5: Boxing số nguyên Boxing thực ngầm định đặt kiểu giá trị vào tham chiếu chờ đợi giá trị đưa vào đốitượng cách tự động...
... xuất, việc tạo thể hay đốitượng cho lớp trừu tượng xem không hợp lệ Một khai báo phương thức trừu tượng, phải ngăn cấm việc tạo thể cho lớp Do vậy, thiết kế phương thức DrawWindow() trừu tượng lớp ... 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ượng lớp sở lớp dẫn xuất lớp trừu tượng, ta tạo thể lớp ... phủ Những phương thức bao gồm Equals() kiểm tra xem hai đốitượng có giống hay không Phương thức GetType() trả kiểu đốitượngVà phương thức ToString 1 42 Kế Thừa – Đa Hì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í đốitượng Window mảng Vàtương tự ta đặt đốitượng Button vào vị trí mảng đốitượng Window, ... phần thân ví 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 ... winArray = new Window[3]; winArray[0] = new Window( 1, ); winArray[1] = new ListBox( 3, 4, “List box is array”); winArray [2] = new Button( 5, ); Chuyện xảy gọi phương thức DrawWindow() cho đối tượng...
... void Main() { // tạođốitượng cho lớp sở Window w = new Window(5, 10); w.DrawWindow(); // tạođốitượng cho lớp dẫn xuất ListBox lb = new ListBox( 20 , 10, “Hello world!”); lb.DrawWindow(); } 130 ... Ngôn Ngữ Lập Trình C# Sự thiết 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 ... Khi gọi phương thức DrawWindow đốitượng lớp ListBox phương thức ListBox.DrawWindow() thực hiện, phương thức Window.DrawWindow() lớp sở Window Tuy nhiên, ta gọi phương thức DrawWindow() lớp sở...
... tính a, b, c nghiệm x1, x2 Hãy xây dựng theo hướng đốitượng lớp Lớp cho phép bên xem nghiệm phương trình cho phép thiết lập hay xem giá trị a, b, c 124 Xây Dựng Lớp - ĐốiTượng Ngôn Ngữ Lập Trình ... tập 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 ... không đặt biệt hóa, hay lớp trừu tượng sử dụng đặc biệt hóa Lớp đốitượng Object gốc tất lớp thảo luận phần cuối chương Đặc biệt hóa tổng quát hóa Lớp thể lớp tức đốitượng không tồn khối, chúng tồn...