home commit with new plugins
This commit is contained in:
+55
-41
@@ -1,55 +1,69 @@
|
||||
# 成员变量和访问修饰符
|
||||
概念:
|
||||
1. 声明在类中
|
||||
2. 用来描述对象特征
|
||||
3. 任意变量类型
|
||||
4. 是否赋值根据需求决定
|
||||
|
||||
1. 成员变量也常叫==字段(field)==
|
||||
2. 它声明在类或结构体中,用来描述对象状态
|
||||
3. 字段类型可以是任意合法类型
|
||||
4. 字段如果没手动赋值,会先使用该类型的默认值
|
||||
|
||||
通常用法:
|
||||
|
||||
- 保存对象的基础数据
|
||||
- 配合访问修饰符控制谁能访问
|
||||
- 再配合[[成员属性]]对外暴露更安全的访问方式
|
||||
|
||||
语法:
|
||||
1. 声明:
|
||||
```Csharp
|
||||
enum E_SexType
|
||||
{
|
||||
male,
|
||||
female
|
||||
}
|
||||
class Human
|
||||
{
|
||||
string name;
|
||||
int age;
|
||||
E_Sex sex;
|
||||
Human[] friend; //==可以类里声明自己类的同类型 但是不能实例化!==
|
||||
}
|
||||
```csharp
|
||||
class Human
|
||||
{
|
||||
public string name;
|
||||
private int age;
|
||||
protected bool isAlive;
|
||||
internal Human[] friends;
|
||||
}
|
||||
```
|
||||
2. 访问修饰符
|
||||
public——公共的 类内部和外部都可以进行访问
|
||||
private——私有的 只有内部才能访问 ==子类不行==
|
||||
protected——保护的 只有自己内部和子类才可以访问
|
||||
3. 成员默认值
|
||||
可以看[[值类型和引用类型]]
|
||||
懒得看可以cw(default(变量类型))
|
||||
|
||||
访问修饰符:
|
||||
1. `public`
|
||||
类内部和外部都能访问
|
||||
2. `private`
|
||||
只有当前类型内部能访问
|
||||
3. `protected`
|
||||
当前类型和子类能访问
|
||||
4. `internal`
|
||||
同一个程序集内能访问
|
||||
|
||||
案例:
|
||||
```Csharp
|
||||
class Human
|
||||
{
|
||||
string name;
|
||||
int age;
|
||||
E_Sex sex;
|
||||
Human[] friend; //==可以类里声明自己类的同类型 但是不能实例化!==
|
||||
}
|
||||
Human h1 = new Human();
|
||||
h1.age = 18;
|
||||
cw(h1.age);
|
||||
```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`,再通过[[成员属性]]控制访问
|
||||
|
||||
#封装
|
||||
#核心
|
||||
|
||||
|
||||
Reference in New Issue
Block a user