C#_02.14_基础五_.NET类
C#_02.14_基础五_.NET类
一、类实例:
我们前面说过类是一个模板,我们通过类创建一个又一个的实例,通常情况下类当中的变量是每一个实例都各有一份的,互相不影响,而静态字段是除外的,静态字段是所有的类实例共享的,是唯一一份。而且静态字段是无法使用实例来访问的,需要使用类名来访问。
Of course,静态的方法也是使用类名来进行访问。Eg:
静态字段是可以被多次修改的,它一旦被改动,那么其他实例的该字段都会跟着变化。

二、成员常量:
成员常量和本地常量之间是需要进行区别的,他们的语法是一样的,都是: 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) 除非通过访问器,否则无法访问字段,该字段是隐藏的后备字段,就是我们看不到他的意思
属性还有一个静态实例,就是静态的一个玩意儿,不说了,吃饭先!
四、构造函数:
构造函数用处:用于初始化实例的状态。(无返回值,与类同名)

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

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

六、readonly修饰符:
readonly修饰符是只读的意思,顾名思义这个值设定了之后就不能够在此改变了。而这个修饰符和const存在着根本上的差异。
Const是修饰常量的,必须在编译时决定值,是存储在静态数据区的,而readonly是修饰字段的,可以用构造函数进行初始化,是到运行时才进行初始化的。
七、This关键字:
This关键字作用是区分类的成员和本地变量或参数。指代的是当前实例。
八、索引器:
索引器是对类中成员属性和字段索引,索引的作用是帮助快速的进行检索,我还没有用过,尴尬~



运行结果是输出 “ sas ”
C#_02.14_基础五_.NET类的更多相关文章
- C#_02.15_基础六_.NET类
C#_02.15_基础六_.NET类 一.类继承是一个类在另一个类的基础上进行的扩展. 继承的子类拥有父类的全部成员.索引子类拥有本身的全部成员以及父类的全部成员. 可以对基类成员进行隐藏,如果必须的 ...
- C#_02.13_基础三_.NET类基础
C#_02.13_基础三_.NET类基础 一.类概述: 类是一个能存储数据和功能并执行代码的数据结构,包含数据成员和函数成员.(有什么和能够干什么) 运行中的程序是一组相互作用的对象的集合. 二.为类 ...
- C#_02.13_基础四_.NET方法
C#_02.13_基础四_.NET方法 一.方法概述: 方法是一块具有名称的代码.可以通过方法进行调用而在别的地方执行,也可以把数据传入方法并接受数据输出. 二.方法的结构: 方法头 AND 方法 ...
- C#_02.16_基础七_.NET表达式&运算符
C#_02.16_基础七_.NET表达式&运算符 一.字面量: 字面量和变量的关系来理解字面量会比较简单: 因此字面量是源代码中键入已知的(我们知道它是多少的)值.也可以理解是等号右边的非创建 ...
- C#_02.12_基础二_.NET类型存储和变量
C#_02.12_基础二_.NET类型存储和变量 一.核心一句:C#程序是一组类型声明(留待后面慢慢体会,现在不是很理解,不强说了) 二.数据类型: 1.预定义了16种数据类型: 其中13种简单数据类 ...
- C#_02.10_基础一_.NET框架
C#_02.10_基础一_.NET框架 一.概念: .NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境. 解读: 1..net框架是一个编程环境, 2.可以进行多语言的开发和 ...
- day 70 Django基础五之django模型层(二)多表操作
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 ORM ...
- day 56 Django基础五之django模型层(二)多表操作
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 ORM ...
- Bootstrap <基础五>表格
Bootstrap 提供了一个清晰的创建表格的布局.下表列出了 Bootstrap 支持的一些表格元素: 标签 描述 <table> 为表格添加基础样式. <thead> 表格 ...
随机推荐
- [转] jQuery的deferred对象详解
jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本. 每个版本都会引入一些新功能.今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象. ...
- 背包的一些idea
题解: 给出n个物品,每次能使用l-r之间的物品,问能不能表示出k,m次询问 k<=100,m,n=1e5 想了线段树分治 发现是k^2(n+m)logn claris告诉我可以直接分治 我们对 ...
- C语言之指针变量
菜单导航 1.指针变量 2.指针和数组 3.常量指针和指向常量的指针 4.指针和字符串的关系 5.数组越界造成的访问不属于自己的内存空间现象 6.引用数据类型和基本数据类型,形参和实参 7.字符串和字 ...
- ssh登录报错-bash fork retry Resource temporarily unavailable
- BZOJ1455 罗马游戏 左偏树 可并堆
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1455 题意概括 n个人,2种操作. 一种是合并两个人团,一种是杀死某一个人团的最弱的人. 题解 左 ...
- F. Shovels Shop 背包DP
题意: 商店里有n把铲子 每个铲子有其标价 一个人要买k吧 有m个优惠政策 每个优惠政策有两个元素x,y 表示 正好买x个铲子的时候 这x个铲子中最便宜的y个铲子免单 求用最少的前买到k个铲子 ...
- 20165235 实验一 Java开发环境的熟悉
20165235 实验一 Java开发环境的熟悉 课程:JAVA程序设计 姓名:祁瑛 学号:20165235 指导老师:娄嘉鹏 实验日期: 2018.4.2 实验内容:java开发环境的熟悉 一,实验 ...
- IntelliJ IDEA 插件 阿里巴巴Java开发手册(Alibaba Java Coding Guidelines)
以前看到过个:Java开发手册(阿里巴巴-公开版),这是个pdf文档,里面描述了一些Java开发的规约,里面确实有很多好用的规约,要是在学校就有机会看看的话,那么,在毕业之后,实际工作中就会少很多坑. ...
- JavaEE 之 WebService
1.WebService a.定义:WebService是一种跨编程语言和跨操作系统平台的远程调用技术 b.三大技术: XML+XSD,SOAP,WSDL c.SOAP协议 = HTTP协议 + XM ...
- 20172328《程序设计与数据结构》实验三 敏捷开发与XP实践报告
20172328<程序设计与数据结构>实验三 敏捷开发与XP实践报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 李馨雨 学号:20172328 实验教师:王志强 ...