- 除了 string 和 object 外, 所有的基本类型都是值类型. 另外数组是引用类型的. 所有的 class 都是引用类型.
- 来看一些基本的 OOP 技术:
- 所有的 class 都是继承自 Object 类型的.
- 可以利用如下的方式来判断一个类是不是某个类型的:
OOP 的一些基本概念:
- 类
- 对象
- 属性(Property)
- 域(Field)
- 对象状态: 由对象当前的所有数据构成了当前的对象状态.
- 访问控制
- 方法
- 静态成员: 在类的实例间共享功能或数据. 也可以从另外一个角度来理解, 就是在不实例化类的情况下使用类提供的数据和功能.
- 静态构造函数: 如果要在使用静态成员前对其进行初始化, 则需要在类中设置一个静态构造函数, 一个类只能拥有一个静态构造函数, 不含任何访问控制修饰, 不含任何参数, 不能手动调用. 它被调用的时机有如下两个:
- 包含静态构造函数的类即将被首次实例化前.
- 包含静态构造函数的类的静态成员即将被首次访问前.
- 静态类: 使用场景是"想要这个类只含有静态成员, 且不能被初始化", 这个场景的简洁实现就是使用静态类.
域和属性的用途都是存放数据, 但不同点是域提供了数据的直接访问, 属性则提供的是数据的间接访问.
通常的做法是将域私有, 而提供对应的公共属性供外界访问这些数据域. 也就是说在类内部使用数据域来操作数据, 而在类外部, 则使用属性才能访问域, 这样也可以控制暴露给外界的数据的读写权限等.
还有一种换位的理解就是将数据通过存储属性或计算属性来进行管理.
(待续)