04 类
[TOC]
类的概述
声明类
类成员
创建变量和类的实例
为数据分配内存
实例成员和静态成员
访问修饰符
从类的内部访问成员
从类的外部访问成员
应用
Why?声明、使用、有哪些元素、
why?
为什么是类?
首先问问自己我们要的是什么?
- 一个组织代码的形式
- 可复用性
- 包括一些方法和属性,这些方法可以是公用的,也可以是隔离的
So,
CLASS
“在面向对象的分析和设计产生之前,程序员们仅把程序当作指令的序列。那时的焦点主要放
在指令的组合和优化上。随着面向对象的出现,焦点从优化指令转移到组织程序的数据和功能上
来。程序的数据和功能被组织为逻辑上相关的数据项和函数的封装集合,并被称为类。”
“类是逻辑相关的数据和函数的封装,通常代表真实世界中或概念上的事物。”
类的组成
属性是用来描述真实世界的特性;函数是用来模拟真实世界的功能和操作。
举例说明
狼人杀里有女巫的角色,女巫手里有一瓶毒药和一瓶解药,这个药就是女巫的特性。女巫可以用来 *人和救人,这个 *人/救人的操作,是真实世界里女巫的操作。所以我们如果要实现女巫这个类的话。应该这样去做。
1 | class Witch // 声明类 |
类的声明
如女巫这个类所示,通过 class 关键字用来声明一个类。类的组成成员会放在一对花括号**{** 里。
女巫的类里存在两个属性:一个是毒药一个是解药。
女巫的类里有两个方法:*人和救人。
可以看到,方法的声明需要加上 () {} ,这个是方法的特质,代表着接受和执行。
实例
类本身代表着模板,镜像之类的概念。一般要使用的话,使用的是类的实例。
1 | class Witch {...} |
分配内存
1 | class Witch {...} |
从图中可以看到,声明一个变量其实是在栈里存放了一个地址,这个地址是用来指向堆里的地址的。
实例成员和静态成员
class 里的成员是区分实例成员还是静态成员的。顾名而知,实例成员,是生成实例之后产生的。静态成员则不一致,是跟随在 声明的类 上。
可能有人有疑问了,如果不是实例成员是不是就没有隔离?答案是的。静态成员的原则就是不跟随实例,不用实例化也能使用这个类的成员。
访问修饰符
在声明类的成员时,会用诸如例如 public private 的字段。这个是控制了访问等级,决定了在什么情形下,能访问到什么成员。例如 private (私有成员),只能实例内部访问,而不能被外界访问到。
私有访问是默认的访问级别,所以,如果一个成员在声明时不带访问修饰符,那它就是
私有成员。
应用
1 | using System; |