(十五) C#基础学习之“类”/构造函数/静态&非静态
一、 类的定义
我们把具有相同属性相同方法的对象进行进一步的封装,抽象出类这个概念。
类就是个模子,确定了对象应该有的属性和方法。
对象是根据类创建出来的。
二、语法:
[public] class 类名{
字段;
属性;
方法;
构造函数;
}
* 写好一个类后,需在class Program的main方法中创建类的对象, 给类赋值将其实例化
格式:类名 对象名称 = new 类名()
例子:

** 注意:当属性中只有get,没有set,说明这个属性值是只读,不能引用. 例如:

三、静态方法和非静态方法
- 静态:
* 含有关键字static
* 静态成员都需要类名去调用。例如调用静态方法: 类名.方法名()
* 静态函数只能访问静态成员,不能访问非静态/实例成员 (例如,如果字段不标注static,则静态方法访问不到这些字段)
* 静态类中只允许出现静态成员。例如Console就是一个静态类。
* 静态类不允许new出对象,即不可以实例化;
- 非静态(实例成员):
* 没有关键字static
* 非静态成员都需要用对象名去调用,例如调用方法: 对象名.方法名();
* 非静态函数既能访问静态成员,也能访问非静态/实例成员
* 非静态类中,既可以有实例成员,也可以有静态成员
例子:


- 静态类的使用:
* 如果想将一个类当做 "工具类" 使用,可以考虑将类写成 "静态类"。
(我们将经常会使用的函数封装到一个类中,称这个类为工具类。因为静态类不需要创建对象,直接"类名."调用,比较方便。例如Console静态类)
* 静态类在整个项目中,资源共享 (内存经常用到的区域:堆,栈,静态存储区域)
例如:当登陆QQ时,只需要输入一次用户名和密码,其他功能例如QQ邮箱,博客等就可以直接进入。这是因为用户名和密码被存储在了静态类中,使用其他功能时可自动获取用户名密码。
* 只有在程序全部结束之后,静态类才会释放资源.
四、构造函数
- 作用:帮助我们初始化对象(给对象的每个属性依次赋值)
- 格式: 没有返回值类型和void,名称必须和类名保持一致
例如: public Student {
}
- 执行顺序:创建new对象的时候会执行构造函数。
例如new一个对象: Student s = new Student(); 对象new后,会立刻先调用构造函数,然后再给对象初始化 (给对象的属性赋值)。
- 类本身会默认自带一个没有参数的构造函数。当你写了一个新的构造函数,无论带不带参数,类默认自带的构造函数都将被替代。
例子:
* 没有使用构造函数前,给new对象的属性依次赋值:

* 使用了构造函数,就可以在new对象的时候直接传入属性值:

上面👆new括号内的值都一一传入下面👇的构造函数中:


浙公网安备 33010602011771号