前言
本章我们介绍类,类是编程中的一个重要部分,大家需要深刻理解
制作不易还请各位一键三连哦!
类的简介
在真实世界里,有许多同“种类”的对象。而这些同“种类”的对象可被归类为 一个“类”。例如我们可将世界上所有的汽车归类为汽车类,所有的动物归为动 物类,所有的人归为人类。
类是一组具有相同属性和行为的对象的抽象描述
类封装了一组数据结构和作用于该数据结构的一组方法
类的定义
[类修饰符] class 类名 [:基类类名]
{
数据类型 变量 ;
void 函数名( )
{
…
}
}
由上面的类的定义结构来看,类是对变量和函数的封装
下面让我们自己创建一个新的类看看:
这里大家会发现,我们新创建的无论是类还是类里面的函数,前面都带有一个词:public,那么这个词是什么意思呢?大家仔细看上面类的组成结构,其中第一个是类修饰符,那么这个public对应的就是类修饰符的概念,下面我们来讲解一下类修饰符
类修饰符
类修饰符,起到一个对类的可访问性的一个限制概念,也就是说类修饰符决定了当前类或者是函数是否可以被其他的类访问,下面我们来简单看一下几种修饰符:
类修饰符 | 对应的介绍 |
---|---|
public | 声明公有成员,对公有成员访问不受限制。 |
private(默认) | 声明私有成员,私有成员只能被类中的成员访问,外部无法访问 |
protected | 声明保护成员,保护成员可以被类中成员和派生类访问 |
internal | 声明内部成员,内部成员只有在同中的文件内才是可访问的 |
上面的表格当中很清楚的为大家介绍了四个访问修饰符的作用,下面我们可以详细的来看一下具体的作用是什么样子的:
那如果我们把上面的public换成private会是什么效果呢?
这时大家会发现,系统提示会报出错误,这就是我们说的修饰符的作用,其余的修饰符的作用,教给大家自己去探索。
类的成员
类成员包括成员变量和成员方法
成员变量包括 | 类要处理的数据,它包括常数和字段 |
成员方法包括 | 方法、属性、事件、索引器、运算符、构造函数、析构函数 |
类的具体成员
类的具体成员有以下几种类型
具体成员 | 具体成员的介绍 |
---|---|
常量 | 代表与类相关的常数值,是在类中声明的值不变的变量 |
字段 | 类中的变量 |
方法 | 完成类中各种计算或功能操作 |
属性 | 定义类的值,并对它们提供读写操作 |
事件 | 由类产生的通知,用于说明发生了什么事情 |
索引器 | 又称下标指示器,允许编程人员访问数组时,通过索引器访问类的多个实例 |
运算符 | 定义类的实例能使用的运算符 |
构造函数 | 在类被实例化时首先执行的函数,主要完成对象初始化操作 |
析构函数 | 在对象被销毁之前最后执行的函数,主要完成对象结束时的收尾工作 |
构造函数
构造函数是特殊的成员函数,它主要用于为对象分配空间,完成初始化工作:
构造函数特殊性表现在以下几方面:
- 构造函数的名字必须与类名相同。
- 构造函数可以带参数,但没有返回值,void都没有。
- 我们不能直接调用构造方法,必须通过new关键字来自动调用,从而创建类的实例。构 造函数也可以重载,但不可以被继承。
- 如果没有给类定义构造函数,则编译系统会自动生成一个默认不带参数的构造函数。
下面是构造函数的示例:
class Person
{
public string name;
public int age;
public Person() //无参构造函数
{
}
public Person(string n ,int a) //有参构造函数
{
name = n;
age = a;
}
}
析构函数
析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完 毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时 用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
析构函数具有以下特点:
- 析构函数的名字与类名相同,但它前面加了一个“~”符号。
- 析构函数不能带参数,也没有返回值。
- 当撤消对象时,析构函数被自动调用。
- 析构函数不能被继承,也不能重载。
- 如果没有给类定义析构函数,则编译系统会自动生存一个默认的析构函数。
析构函数的示例:
class Person
{
public Person() //无参构造函数
{
Console.WriteLine("111111");
}
~ Person() //析构函数
{
Console.WriteLine("222222");
}
}
总结
以上是对于类的简单介绍,大家结合其他博主的文章一起学习,下一篇我们讲解类的实例化。