csharp:类

C# 类 (Class) 基础知识

在面向对象编程 (OOP) 中,这是最核心的概念。

  • 类 (Class):是图纸模板模具。它定义了事物应该具备的属性(数据)和行为(功能),但在内存中不占实际空间(除了静态成员)。

* 对象 (Object):是根据图纸制造出来的实物。它是类的实例 (Instance),在内存中占据实际空间。

比喻

* :汽车的设计图纸(规定了有4个轮子、有引擎、能跑)。

  • 对象:根据图纸造出来的具体的一辆奔驰、一辆宝马。

使用 class 关键字来定义类。

// 定义一个类:Student
public class Student
{
    // 1. 字段 (Fields):存储数据
    private int _age;
 
    // 2. 属性 (Properties):保护字段,控制读写
    public string Name { get; set; }
 
    // 3. 构造函数 (Constructor):初始化对象
    public Student()
    {
        // ...
    }
 
    // 4. 方法 (Methods):定义的行为
    public void Study()
    {
        Console.WriteLine("正在学习...");
    }
}

字段是类内部使用的变量,通常用于存储数据。 * 规范:一般设为 private(私有),变量名前加下划线 _。 * 作用:作为类的内部状态,不直接对外暴露。

属性是对字段的封装,用于保护数据。 * get:读取数据。 * set:写入数据(可以在这里加逻辑判断,比如年龄不能为负数)。 * 简写public int Age { get; set; } (自动属性)。

方法是类能够执行的动作或行为(函数)。

* 特点:方法名与类名相同,没有返回值(连 void 都不写)。 * 触发时机:在使用 new 关键字创建对象时自动调用。 * 作用:用于初始化对象(给属性赋初始值)。

class Phone
{
    public string Brand { get; set; }
    public double Price { get; set; }
 
    // 无参构造函数
    public Phone()
    {
        Brand = "未知品牌";
        Price = 0;
    }
 
    // 重载构造函数(带参数)
    public Phone(string brand, double price)
    {
        // this 关键字代表当前对象
        this.Brand = brand; 
        this.Price = price;
    }
}

定义好类之后,需要使用 new 关键字把它变成对象才能使用。

class Program
{
    static void Main(string[] args)
    {
        // 1. 使用无参构造函数创建对象
        // 内存中开辟了一块空间,生成了一个 Phone 对象,名字叫 myPhone
        Phone myPhone = new Phone(); 
        myPhone.Brand = "Apple"; // 修改属性
 
        // 2. 使用带参构造函数创建对象
        // 在创建的同时直接赋值
        Phone myXiaoMi = new Phone("Xiaomi", 3999.00);
 
        Console.WriteLine(myXiaoMi.Brand); // 输出: Xiaomi
    }
}

在类的方法或构造函数中,this 代表当前这个对象实例本身

主要用途: 当方法的参数名(局部变量)与类的属性名(成员变量)重名时,使用 this 来区分。

class Person
{
    public string name; // 成员变量
 
    public void SetName(string name) // 参数 name
    {
        // name = name; // 错误:这是把参数赋给参数自己,没意义
 
        this.name = name; 
        // 正确:把参数 name (右边) 赋值给当前对象的成员变量 name (左边)
    }
}

控制类成员的可见性(封装性)。

修饰符 含义 作用范围
public 公有的 最大权限,任何地方都能访问
private 私有的 最小权限,只有在当前类的大括号 {} 内部能访问
protected 受保护的 只有当前类和继承它的子类能访问
internal 内部的 同一个项目(程序集)内可以访问
  • 类 (Class) 是定义结构的蓝图。
  • 对象 (Object) 是内存中运行的实体,通过 new 创建。
  • 字段存数据,属性管数据,方法做事情。
  • 构造函数负责对象出生时的初始化。
  • this 区分“我的成员”和“外来的参数”。
请输入您的评论. 可以使用维基语法:
 

该主题尚不存在

您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。

  • csharp/类.txt
  • 最后更改: 2025/11/26 17:06
  • 张叶安