C#学习第三天

1.面向对象:描述一个对象,通过描述这个对象的属性与方法;

我们把具有相同属性和相同方法的对象封装在一起,抽象出来,形成一个类;

对象是根据类抽象出来的;

2.类:

【public/private/protected】 class 类名

{

  字段1;

  字段2;

  -------;

  属性1;

  属性2;

  -------;

  方法1;

  方法2;

  -------;

}

字段:Field

属性:Property

方法:Method

写好一个类后,需要创建类,创建类的过程叫做类的实例化,用关键字new;

this表示当前这个类的对象;

类不占内存,但是对象占内存,因为类相当于一个模板,而对象是根据这个模板实例化出来的数据;其次,类里面的字段会自动赋初值0,所以实际上是字段占的内存;

3.属性:保护字段,对字段的赋值与取值做限定;

比如有一个年龄字段,那么显然年龄就不能为负数;

属性的本质就是get与set两个方法;

4.访问修饰符:

public:在类里面和类外面都可以使用

private:只能在这个类里面使用

5.静态与非静态:

区别:

在非静态类中可以出现静态成员,也可以出现非静态成员(实例化成员);

在调用实例成员时,需要使用对象.实例成员;

在调用静态成员时,需要使用类.静态成员名;所以说在静态类里面无法创建实例对象;

在静态函数中,只能访问静态成员,不能访问实例成员;

在实例函数中,既能访问静态成员,也能访问实例成员;

使用:

如果想将某个类当作一个“工具类”去使用,那么就可以考虑将这个类封装成静态类;

静态类在整个项目中资源共享;

6.构造函数:初始化对象

构造函数没有返回值,void也不能写;

构造函数的名称必须和类名一样;

在实例化对象的时候就可以直接在后面括号里面初始化参数,参数顺序和构造函数里面形参的顺序一样;

构造函数可以重载;

类会自动创建一个没有参数的构造函数,但是如果自己写了一个构造函数,无论有没有参数,类自动创建的构造函数都会被替代;

7.this关键字:

表示当前类的对象;

在类当中显示的调用本类的构造函数  :this

 

8.析构函数:

~类名()

{

}

当程序结束时才会执行,帮助我们释放资源,否则由垃圾回收器自动回收资源

9.命名空间:用来解决类的重名问题

命名空间可以认为是类的文件夹
如果在当前项目中没有这个类的命名空间,则需要手动导入命名空间--->Alt+Shift+F10,或者鼠标点击;
在一个项目中引用另一个项目中的类:
添加引用(右击项目目录,选择添加引用)--->引用命名空间(Using 项目名)

10.值类型与引用类型:

值类型与引用类型在内存上存储的地方不一样:值类型的值存储在类型的栈中,引用类型的值存储在类型的堆中;引用类型的名称存储在栈中,其中存储的是引用类型的地址。
值类型:int,double,decimal,bool,enum,char,struct
引用类型:string,自定义类

 

 

posted on 2022-11-10 11:01  xy-struggle  阅读(30)  评论(0)    收藏  举报

导航