# 成员变量和访问修饰符 概念: 1. 成员变量也常叫==字段(field)== 2. 它声明在类或结构体中,用来描述对象状态 3. 字段类型可以是任意合法类型 4. 字段如果没手动赋值,会先使用该类型的默认值 通常用法: - 保存对象的基础数据 - 配合访问修饰符控制谁能访问 - 再配合[[成员属性]]对外暴露更安全的访问方式 语法: ```csharp class Human { public string name; private int age; protected bool isAlive; internal Human[] friends; } ``` 访问修饰符: 1. `public` 类内部和外部都能访问 2. `private` 只有当前类型内部能访问 3. `protected` 当前类型和子类能访问 4. `internal` 同一个程序集内能访问 案例: ```csharp class Human { public string name; private int age; public void SetAge(int value) { age = value; } public void PrintInfo() { Console.WriteLine($"{name} - {age}"); } } Human h1 = new Human(); h1.name = "小明"; // h1.age = 18; // 报错,外部不能直接访问 private 字段 h1.SetAge(18); h1.PrintInfo(); ``` 注意: 1. ==类中的字段如果不写访问修饰符,默认是 `private`== 2. 字段可以声明成当前类型本身,比如 `Human[] friends` 3. 默认值示例: - `int` 是 `0` - `bool` 是 `false` - 引用类型是 `null` 4. 实际开发中,很多字段会写成 `private`,再通过[[成员属性]]控制访问 #封装 #核心