程序设计基础
登录
< 返回教程列表

2.1 类与对象

知识介绍

类(Class) 是对象的"蓝图/模板",对象(Object) 是类的"实例"。

定义一个类:

class Person
{
    // 字段(成员变量)
    public string name;
    public int age;

    // 构造方法(与类同名,没有返回值,创建对象时自动调用)
    public Person(string n, int a)
    {
        name = n;
        age = a;
        Console.WriteLine("有参构造被调用");
    }

    // 无参构造
    public Person()
    {
        Console.WriteLine("无参构造被调用");
    }

    // 方法(行为)
    public void SayHi()
    {
        Console.WriteLine($"我叫{name},今年{age}岁");
    }
}

创建对象(实例化):

Person p1 = new Person("张三", 20);
p1.SayHi();  // 我叫张三,今年20岁

Person p2 = new Person();
p2.name = "李四";
p2.age = 22;
p2.SayHi();  // 我叫李四,今年22岁

构造函数要点:

this 关键字:

class Person
{
    private string name;
    public Person(string name)
    {
        this.name = name;  // this 指代当前实例,区分成员和参数
    }
}

例题

例题1: 定义一个 Car 类。

class Car
{
    public string brand;   // 品牌
    public string color;   // 颜色
    public int speed;      // 当前速度

    public Car(string b, string c, int s)
    {
        brand = b;
        color = c;
        speed = s;
    }

    public void Accelerate(int delta)
    {
        speed += delta;
        Console.WriteLine($"加速到{speed} km/h");
    }

    public void Brake(int delta)
    {
        speed = Math.Max(0, speed - delta);
        Console.WriteLine($"减速到{speed} km/h");
    }

    public void ShowInfo()
    {
        Console.WriteLine($"[{color}] {brand},速度{speed}km/h");
    }
}

// 使用
Car myCar = new Car("Tesla", "红色", 0);
myCar.ShowInfo();      // [红色] Tesla,速度0km/h
myCar.Accelerate(60);  // 加速到60 km/h
myCar.Brake(25);       // 减速到35 km/h

练习题

  1. 定义一个 Student 类,包含 姓名、学号、班级 三个字段,一个 Show() 方法输出信息,一个有参构造。

  2. 定义一个 Rectangle(矩形)类,包含 width、height 字段,提供 GetArea() 求面积、GetPerimeter() 求周长。

  3. 定义一个 Calculator(计算器)类,提供加、减、乘、除四个方法,每个方法接收两个参数并返回结果。

  4. 定义一个 Book 类,包含 title、author、price,写一个方法 Discount(double rate) 按折扣率修改价格(rate 范围 0~1)。