面向对象之封装二

成员变量和访问修饰符

一.成员变量

基本规则

1.申明在类语句块中

2.用来描述对象的特征

3.可以是任意变量类型

4.数量不做限制

5.是否赋值根据需求来定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
namespace 语法知识
//命名空间——像是工具包。(在学习面向对象相关知识点时会涉及)
{
//这个类是用来形容人类的
class Person{
//特征——成员变量
string name="大帅哥";
//姓名
//也可以不初始化
int age;
//年龄
E_SexType sex;
//性别
//枚举类型也是变量,自己定义完就可以了.
Person Friend1;
//朋友
//这边就有和结构体不一样的地方了,可以申明同名变量。
//如果要在类中申明一个和自己相同类型的成员变量时,不能对它进行初始化。
//因为类是引用类型,在类里面申明同名变量类型的时候,没赋值时,变量默认为空(堆里面是没有东西的,栈里面只有一个空的指针),因此不会进行无限循环。
Person[] Friend2;
//好多朋友
//同样的,可以申明任意类型的变量,只要你之前有申明过进行了。
Position sex;
//位置
Pet pets;
//宠物
}
enum E_SexType{
Man,
Wonman,
}
//表示性别的枚举,在类里面也可以使用。
struct Position{

}
class Pet{
}
//表示宠物的类,也可以用在Person类里面
//表示位置的结构体,在类里面也可以用
internal class Program
{
static void Main(string[] args)
{
Person p= new Person();
p.
//还没加访问修饰符之前,你是点不出来东西的。
}
}
}

二.访问修饰符

pubilc——公共的,自己(内部)和别人(外部)都能访问和使用

private——私有的,自己(内部)才能访问和使用,不写默认为private

protected——保护的,自己(内部)和子类才能访问和使用(讲继承会用到)

目前决定类内部成员的访问权限

三.成员变量的使用和初始值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
namespace 语法知识
//命名空间——像是工具包。(在学习面向对象相关知识点时会涉及)
{
//这个类是用来形容人类的
class Person{
//特征——成员变量
public string name="大帅哥";
//姓名
//也可以不初始化
public int age;
//年龄
public E_SexType sex;
//性别
//枚举类型也是变量,自己定义完就可以了.
public Person Friend1;
//朋友
//这边就有和结构体不一样的地方了,可以申明同名变量。
//如果要在类中申明一个和自己相同类型的成员变量时,不能对它进行初始化。
//因为类是引用类型,在类里面申明同名变量类型的时候,没赋值时,变量默认为空(堆里面是没有东西的,栈里面只有一个空的指针),因此不会进行无限循环。
public Person[] Friend2;
//好多朋友
//同样的,可以申明任意类型的变量,只要你之前有申明过进行了。
public Position sex;
//位置
public Pet pets;
//宠物
}
enum E_SexType{
Man,
Wonman,
}
//表示性别的枚举,在类里面也可以使用。
struct Position{

}
class Pet{
}
//表示宠物的类,也可以用在Person类里面
//表示位置的结构体,在类里面也可以用
internal class Program
{
static void Main(string[] args)
{
Person p= new Person();
p.age=10;
//加了pubilc访问修饰符之后,可以进行访问了。
}
}
}

对于值类型,数字类型来说,只要在类里面定义了,默认值都是0

bool类型 false

char类型 空字符串

引用类型 null(空类型)

(查看默认值小技巧如下)

1
2
Console.WriteLine(default(int));
//查看int类型默认值

四.总结

关键词:

成员变量;描述特征;类中申明;赋值随意;不同类型默认值不同;任意类型;任意数量;


面向对象之封装二
https://gaster44.github.io/2023/11/29/面向对象之封装二/
作者
huangjinhong
发布于
2023年11月29日
许可协议