(十五) 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括号内的值都一一传入下面👇的构造函数中:

 

posted @ 2021-02-17 05:16  七弹指的树  阅读(894)  评论(0)    收藏  举报