CHƢƠNG III: LỚP VÀ ĐỐI TƢỢNG 1 Đối tƣợng
3.4. Nạp chồng phƣơng thức
Trong một lớp, cho phép ta định nghĩa nhiều phương thức có cùng tên nhưng khác nhau về số các tham số hoặc kiểu của các tham số, các phương thức như vậy gọi là các phương thức được nạp chồng (overloading).
Ví dụ (III.5) Nạp chồng phƣơng thức khởi tạo
Bước 1: Thêm một dự án console với tên CarOverloading vào solution Session_III Bước 2: Thêm class Car vào dự án và chèn mã lệnh như bên dưới
using System;
class Car {
// khai bao thuoc tinh public string model;
public string color;
public int yearBuilt; // phuong thuc khoi tao public Car() { model = ""; color = ""; yearBuilt = 0; }
public Car(string s_model, string s_color, int i_yearBuilt) {
model = s_model; color = s_color;
yearBuilt = i_yearBuilt; }
// khai bao phuong thuc public void Start() {
System.Console.WriteLine(model + " started"); }
public void Stop() {
System.Console.WriteLine(model + " stopped"); }
}
Tương tự như phương thức khởi tạo, các phương thức khác cũng có thể nạp chồng bằng cách sử dụng cùng một tên phương thức nhưng số tham số và kiểu tham số có thể khác nhau Bước 3: Chèn mã dưới vào lớp Program, dịch và chạy thử
class Program {
public static void Main() {
// Khai báo một đối tượng có tên myCar Car myCar;
// Tạo ra 1 đối tượng thuộc lớp Car và gán địa chỉ vào myCar
System.Console.WriteLine("Creating a Car object and assigning " +"its memory location to myCar");
myCar = new Car();
// Gán giá trị cho các trường của myCar myCar.model = "MR2";
myCar.color = "black"; myCar.yearBuilt = 1995;
// Hiển thị giá trị các trường của myCar System.Console.WriteLine("myCar details:");
System.Console.WriteLine("myCar.model="+myCar.model); System.Console.WriteLine("myCar.color = "+myCar.color);
System.Console.WriteLine("myCar.yearBuilt="+myCar.yearBuilt); // Gọi các phương thức của myCar
myCar.Start(); myCar.Stop();
// Khai báo và tạo ra một đối tượng khác thuộc lớp Car
System.Console.WriteLine("Creating another Car objectand"+"assigning its memory location to redPorsche");
//gọi hàm tạo có tham số của lớp Car để tạo ra đối tượng Car mới Car redPorsche = new Car(“Boxster”, “red”, 2012);
System.Console.WriteLine("redPorsche is a " + redPorsche.model); //Gán đối tượng myCar bằng redPorsche
System.Console.WriteLine("Assigning redPorsche to myCar"); myCar = redPorsche;
System.Console.WriteLine("myCar details:");
System.Console.WriteLine("myCar.model = " +myCar.model); System.Console.WriteLine("myCar.color = " +myCar.color);
System.Console.WriteLine("myCar.yearBuilt = "+myCar.yearBuilt); // gán giá trị null cho myCar nghĩa là xóa bỏ đối tượng myCar myCar = null;
Console.ReadLine(); }
}