C#_02.14_基础五_.NET类

时间:2022-11-11 14:47:20

C#_02.14_基础五_.NET类

一、类实例:

我们前面说过类是一个模板,我们通过类创建一个又一个的实例,通常情况下类当中的变量是每一个实例都各有一份的,互相不影响,而静态字段是除外的,静态字段是所有的类实例共享的,是唯一一份。而且静态字段是无法使用实例来访问的,需要使用类名来访问。

Of  course,静态的方法也是使用类名来进行访问。Eg:

静态字段是可以被多次修改的,它一旦被改动,那么其他实例的该字段都会跟着变化。

C#_02.14_基础五_.NET类

二、成员常量:

成员常量和本地常量之间是需要进行区别的,他们的语法是一样的,都是: const + 类型 + 标识符 + 初始化值。

成员常量和本地常量都是必须赋值而且如果是引用类型只能够赋值为null而不能是对象的实例,因为对象的实例是在运行是才创建的。

本地常量以及静态变量都是放在相同的存储区域。

成员常量在内存中是没有存储空间的,而是在编译的时候进行替换,这一点我还不懂。

三、属性大法好(和成员常量一样是没有存储内存的):

 

先来说说属性的作用:属性是用来保护字段的。

那么what is 属性:属性是指定的一组两个匹配的、称为访问器的方法。Set访问器为属性赋值;get访问器从属性获取值。

属性只能有这两个玩意儿。而且这两个玩意儿是不能够直接调用的,而是不管他,当做他们不存在,而是把属性当做字段那样子使用,那么当我们进行对属性的赋值和使用的时候就会隐式的调用这两个访问器。

Set访问器:

1) 有一个单独的、隐式的值参,名称为value,与属性的类型相同;

2) 返回类型为void;

3) Set访问器可以对属性值进行过滤;

Get访问器:

a) 没有参数;

b) 拥有一个与属性类型相同的返回类型。

c) 所有的执行路径都必须要有一条return语句。

属性可以只有get或者set把属性设置成只读的属性或者是只写的属性。

 

重点:属性通常与字段关联,关联的方式是名称一样而写法不一样,字段用camel写法(第一个单词首字母小写),属性采用Pascal写法;

因为属性经常和字段关联,所以我们有了一个新的概念:

自动实现属性:

1) 不声明字段----编译器根据属性的类型分配存储;

2) 不能提供访问器的方法体,就是set和get打光棍了;

3) 除非通过访问器,否则无法访问字段,该字段是隐藏的后备字段,就是我们看不到他的意思

属性还有一个静态实例,就是静态的一个玩意儿,不说了,吃饭先!

四、构造函数:

构造函数用处:用于初始化实例的状态。(无返回值,与类同名)

C#_02.14_基础五_.NET类

五、对象初始化语句:

 

对象初始化语句有两种格式:

C#_02.14_基础五_.NET类

注意点:对象初始化语句的功能类似于构造函数,但是和构造函数是不一样的,构造函数的执行顺序在对象初始化语句之前。

C#_02.14_基础五_.NET类

六、readonly修饰符:

readonly修饰符是只读的意思,顾名思义这个值设定了之后就不能够在此改变了。而这个修饰符和const存在着根本上的差异。

Const是修饰常量的,必须在编译时决定值,是存储在静态数据区的,而readonly是修饰字段的,可以用构造函数进行初始化,是到运行时才进行初始化的。

 

 

七、This关键字:

  This关键字作用是区分类的成员和本地变量或参数。指代的是当前实例。

八、索引器:

索引器是对类中成员属性和字段索引,索引的作用是帮助快速的进行检索,我还没有用过,尴尬~

C#_02.14_基础五_.NET类

C#_02.14_基础五_.NET类

C#_02.14_基础五_.NET类

运行结果是输出    “ sas ”