Trang chủ » Blog » Ví dụ về định nghĩa lớp và tạo đối tượng

Ví dụ về định nghĩa lớp và tạo đối tượng

bởi CodeGym | 26/12/2023 15:36 | Blog

Bài viết này đưa ra hai ví dụ về định nghĩa lớp và sử dụng chúng để tạo các đối tượng. Một chương trình định nghĩa lớp Circle và sử dụng để tạo các đối tượng. Chương trình tạo ra 3 đối tượng hình tròn với bán kính 1, 25 và 125 và hiển thị bán kính và diện tích của mỗi hình tròn. Sau đó thay đổi bán kính của đối tượng thứ hai thành 100 và hiển thị bán kính và diện tích mới.

Lớp Circle trong ví dụ này được đặt tên là SimpleCircle. Dưới đây là lớp TestSimpleCircle chứa đoạn mã lệnh sử dụng lớp SimpleCircle.

public class TestSimpleCircle
{ 
     public static void Main(string[] args)
     {
          SimpleCircle circle1 = new SimpleCircle();
          Console.WriteLine("The area of the circle of radius " + circle1.radius + " is " + circle1.GetArea());
          SimpleCircle circle2 = new SimpleCircle(25);
          Console.WriteLine("The area of the circle of radius " + circle2.radius + " is " + circle2.GetArea());

          SimpleCircle circle3 = new SimpleCircle(125);
          Console.WriteLine("The area of the circle of radius " + circle3.radius + " is " + circle3.GetArea());
          circle2.radius = 100;
         Console.WriteLine("The area of the circle of radius " + circle2.radius + " is " + circle2.GetArea());
     }
}

Lớp SimpleCircle

class SimpleCircle
 {
     public double radius;
     /* Construct a circle with radius */

     public SimpleCircle()
     {
         radius = 1;
     }

     /* Construct a circle with a specified radius */
     public SimpleCircle(double newRadius)
     {
        radius = newRadius;
     }

     /* Return the area of this circle */
     public double GetArea()
     {
        return radius * radius * Math.PI;
     }

     /* return the perimeter of this circle */
     public double GetPerimeter()
     {
        return 2 * radius * Math.PI;
     }

     /* set a new radius for this circle */
     public void SetRadius(double newRadius)
     {
        radius = newRadius;
     }
 }

Ví dụ về định nghĩa lớp và tạo đối tượng

Lớp chính chứa phương thức Main để tạo 3 đối tượng. Như trong việc tạo ra một mảng, toán tử new được sử dụng để tạo ra một đối tượng từ constructor: new SimpleCircle() tạo một đối tượng với bán kính 1, new SimpleCircle(25) tạo ra một đối tượng có bán kính 25 và new SimpleCircle(125) tạo một đối tượng với bán kính 125.

Ba đối tượng này (tham chiếu bởi circle1, circle2, và circle3) có dữ liệu khác nhau nhưng có cùng phương thức. Do đó, bạn có thể tính toán diện tích bằng cách sử dụng phương thức GetArea(). Các trường dữ liệu có thể được truy cập thông qua tham chiếu của đối tượng bằng cách sử dụng circle1.radius, circle2.radius, và circle3.radius. Đối tượng có thể gọi phương thức của nó qua tham chiếu của đối tượng bằng cách sử dụng circle1.GetArea(), circle2.GetArea() và circle3.GetArea().

Ba đối tượng này hoạt động một cách độc lập. Bán kính của circle2 được thay đổi thành 100

Có rất nhiều cách để viết các chương trình C# Ví dụ, bạn có thể kết hợp hai lớp trong ví dụ thành một, như sau:

File SimpleCircle.cs

public class SimpleCircle {
   public static void Main(string[] args) {
       SimpleCircle circle1 = new SimpleCircle();
       Console.WriteLine("The area of the circle of radius " + circle1.radius + " is " + circle1.getArea());
       SimpleCircle circle2 = new SimpleCircle(25);
       Console.WriteLine("The area of the circle of radius " + circle2.radius + " is " + circle2.getArea());
       SimpleCircle circle3 = new SimpleCircle(125);
       Console.WriteLine("The area of the circle of radius " + circle3.radius + " is " + circle3.getArea());
       circle2.radius = 100;
       Console.WriteLine("The area of the circle of radius " + circle2.radius + " is " + circle2.getArea());
     }

     double radius;
       SimpleCircle() {
       radius = 1;
     }

     SimpleCircle(double newRadius) {
       radius = newRadius;
     }

     double GetArea() {
       return radius * radius * Math.PI;
     }

     double GetPerimeter() {
       return 2 * radius * Math.PI;
     }

     void SetRadius(double newRadius) {
       radius = newRadius;
     }
}

Lớp kết hợp có phương thức Main, do đó nó có thể thực thi bởi trình thông dịch C#. Điều này chứng tỏ rằng bạn có thể kiểm tra một lớp bằng cách thêm một phương thức Main trong cùng lớp.

Một ví dụ khác, quan sát tập các kênh truyền hình. Mỗi TV là một đối tượng với các trạng thái (kênh hiện tại, mức âm lượng hiện tại, bật hoặc tắt nguồn) và hành vi (thay đổi kênh, điều chỉnh âm lượng, bật / tắt). Bạn có thể sử dụng một lớp để mô hình hoá lại đối tượng TV. Biểu đồ UML cho lớp được hiển thị như sau:

Ví dụ về định nghĩa lớp và tạo đối tượng

Chương trình định nghĩa lớp TV

public class TV {
    int channel = 1;
    int volumeLevel = 1;
    bool on = false;

    public TV() {
    }

    public void TurnOn() {
        on = true;
    }

    public void TurnOff() {
        on = false;
    }

    public void SetChannel(int newChannel) {
        if (on && newChannel >= 1 && newChannel <= 120)
            channel = newChannel;
    }

    public void SetVolume(int newVolumeLevel) {
        if (on && newVolumeLevel >= 1 && newVolumeLevel <= 7)
            volumeLevel = newVolumeLevel;
    }

    public void ChannelUp() {
        if (on && channel < 120)
            channel++;
    }

    public void ChannelDown() {
        if (on && channel > 1)
            channel--;
    }

    public void VolumeUp() {
        if (on && volumeLevel < 7)
            volumeLevel++;
    }

    public void VolumeDown() {
        if (on && volumeLevel > 1)
            volumeLevel--;
    }
}

Constructor và các phương thức trong lớp TV được định nghĩa là public để chúng có thể được truy cập từ các lớp khác. Lưu ý rằng kênh và mức âm lượng không thay đổi nếu TV không bật. Trước khi kênh và mức âm được được thay đổi, giá trị hiện tại của nó được kiểm tra để đảm bảo rằng nó nằm trong dải đúng.

Chương trình sử dụng lớp TV bằng cách tạo ra 2 đối tượng

TV tv1 = new TV();
 tv1.TurnOn();
 tv1.SetChannel(30);
 tv1.SetVolume(3);
 
 TV tv2 = new TV();
 tv2.TurnOn();
 tv2.ChannelUp();
 tv2.VolumeUp();

Console.WriteLine("Tv1's channel is " + tv1.channel + " and volume level is " + tv1.volumeLevel);
Console.WriteLine("Tv2's channel is " + tv2.channel + " and volume level is " + tv2 .volumeLevel);

Kết quả hiển thị lên màn hình là

Tv1’s channel is 30 and volume level is 3

Tv2’s channel is 2 and volume level is 2

Chương trình tạo 2 đối tượng, và gọi các phương thức trên các đối tượng để thực hiện các hành động để cài đặt các kênh và mức âm lượng và để tăng kênh và âm lượng. Các phương thức được gọi bằng cách sử dụng cú pháp như tv1.TurnOn(). Các trường dữ liệu được truy cập bằng cách sử dụng cú pháp như tv1.channel.

Những ví dụ này đã cung cấp cho bạn một cái nhìn thoáng qua về lớp và đối tượng.

ĐỌC THÊM CÁC TÀI LIỆU, HƯỚNG DẪN HỌC LẬP TRÌNH C# KHÁC TẠI ĐÂY

TÌM HIỂU VỀ KHÓA HỌC .NET TẠI CODEGYM – TRỞ THÀNH LẬP TRÌNH VIÊN CHUYÊN NGHIỆP TRONG VÒNG 6 THÁNG

Download - Giáo trình thuật toán

2 + 4 =

Tags:

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

10 + 9 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM