Session 3 Session 4 Classes and Methods Inheritance and Polymorphism Định nghĩa class và object • Các kiểu dữ liệu cơ bản int, long, char, • Khả năng tạo ra những kiểu dữ liệu mới, phức tạp • Tạo ra c[.]
Session Classes and Methods Inheritance and Polymorphism Định nghĩa class object • Các kiểu liệu bản: int, long, char, … • Khả tạo kiểu liệu mới, phức tạp • Tạo kiểu liệu cách xây dựng lớp đối tượng • Một đặc tính quan trọng ngơn ngữ lập trình hướng đối tượng • Bằng cách khai báo định nghĩa lớp • Thể lớp gọi đối tượng (object) Những đối tượng tạo nhớ chương trình thực Khác lớp đối tượng • • • • Ví dụ: lồi mèo mèo Mướp Không thể đụng hay giỡn với khái niệm mèo Có thể thực điều với mèo Mướp Mèo Mướp: thực thể sống động, không trừu tượng khái niệm họ lồi mèo • Ví dụ: • Một họ mèo có đặc tính: trọng lượng chiều cao màu mắt màu lơng Một họ mèo có hành động: ăn ngủ leo trèo Định nghĩa class • Cú pháp: Tên class [Bổ sung truy cập] class [: Lớp sở] { Thuộc tính Phương thức } Thuộc tính truy cập • • • • • public private protected internal protected internal Tham số phương thức void Method( int param1, button param2) { // } public class BaiTap_1 { public void SomeMethod(int p1, float p2) { Console.WriteLine(“Ham nhan duoc hai tham so: {0} va {1}”, p1,p2); } } static void Main() { int var1 = 5; float var2 = 10.5f; BaiTap_1 c = new BaiTap_1(); c.SomeMethod( var1, var2 ); } Tạo đối tượng • Ví dụ: ThoiGian t = new ThoiGian(); //t không chứa giá trị đối tượng ThoiGian //t chứa địa đối tượng chứa tham chiếu đến đối tượng Contructor • ThoiGian t = new ThoiGian(); • Xem class ThoiGian Từ khóa this public void SetYear( int Nam) { this.Nam = Nam; } Truyền tham chiếu ref • Ý nghĩa: dùng tham số truyền vào kết trả • Xem ví dụ (ThamChieu): xem khác chưa có ref Truyền tham chiếu out • Ý nghĩa: Khi sử dụng tham chiếu out yêu cầu bắt buộc phải khởi tạo tham số tham chiếu bỏ qua Overloading Method • Ý nghĩa: xây dựng nhiều phương thức tên nhận tham số khác • Bài tập 1: Viết chương trình tính diện tích hình trịn, hình chữ nhật, hình vng • Hướng dẫn: Tạo lớp HinhHoc chứa method DienTich với tham số truyền vào khác Đóng gói liệu với thành phần thuộc tính • Cung cấp khả bảo vệ trường liệu bên lớp việc đọc viết chúng thông qua thuộc tính • Phương thức lấy liệu (getter method) phương thức thiết lập liệu (setter method) Bài tập • Sửa lỗi: public static void GetNumber(ref int x, ref int y) { x = 5; y = 10; } public static void Main() { int a = 0, b = 0; GetNumber(a, b); System.Console.WriteLine(“a = {0} \nb = {1}”, a, b); } Bài tập • Sửa lỗi: public static void Main() { Display(); } public static void Display() { System.Console.WriteLine(“Hello!”); return 0; } Kế Thừa • Cú pháp: public class ListBox : Window Đa hình • Khai báo khóa virtual phương thức lớp cha public virtual void Tinh() • public override void Tinh() Bài tập Viết chương trình minh họa sau: Tạo class NhaCungCap gồm thông tin sau: ID, ten, diaChi, sDT, email gồm methods: nhap() // nhập thông tin nhà cung cấp hienThi() // hiển thị thông tin nhà cung cấp Main() //gọi hàm nhap() hàm hienThi() Bài tập Write a program to display the name and age of a person • Use a default constructor to assign values to the name and age variables • Use a parameterized constructor to pass the values of name and age • Use a single method to display the values from both the constructors Bài tập • Write a program that calculates the square of an integer, say and a double, say 4.2 Use method overloading to calculate the square of the integer and double values Bài tập Write a program to demonstrate Inheritance • Define a base class Vehicle having properties like type, color, speed, brand and methods Run() and Display() • The Run() method should display a message “I am running” and the type of the vehicle • The Display() method should display the various properties of the vehicle • Derive a class Car and initialized the derived attributes of base class Vehicle • Finally, in the Main() method execute Run() and Display()using an object of the derived class Car Bài tập • Consider the previous question Override the Run() method in the derived class to display a message “The CAR is running” ... constructors Bài tập • Write a program that calculates the square of an integer, say and a double, say 4. 2 Use method overloading to calculate the square of the integer and double values Bài tập Write