面向对象
1、对象导论
- 万物皆为对象: 将对象视为奇特的变量,它可以存储数据,除此之外,你还可以要求它在自身上执行操作,理论上讲,你可以抽取待求解问题的任何概念化构件(狗,建筑物,服务等),将其表示为程序中的对象
- 程序是对象的集合,它们通过发送消息来告知彼此所要做的: 要想请求一个对象,就必须对该对象发送一条信息。更具体说,可以把消息想象为对某个特定对象的方法的调用请求。
- 每个对象都拥有其类型: 按照通用的说法,每个对象都是某个类(
class
)的一个实例(instance
),这里类
就是类型
的同义词。每个类最重要的区别在于其他类的特性就是"可以发送什么样的消息给它" - 某一特定类型的所有对象都可以接收同样的消息: 这是一句意味深长的表述,你在稍后便会看到,因为"圆形"类型的额对象同时也是"几何形"类型的对象,所以一个"圆形"对象必定能够接受发送给"几何形"对象的消息。这意味着可以编写与"几何形"交互并自动处理所有与几何形性质相关的事物的代码,这种可替代性是OOP中最强有力的概念之一
提示
对象具有状态、行为和标识。这意味着每一个对象抵都可以拥有内部数据(它们给出了该对象的状态)和方法(它们产生行为),并且每一个对象都可以唯一的与其他对象区分开来,具体来说就是每一个对象在内存中 都有一个唯一的地址
2、一切都是对象
对象如何创建?
new
关键字,String s = new String("abc");
创建后的对象存储在哪?
程序运行时,对象是怎么进行放置安排的,特别是内存是怎样分配的?
寄存器
最快的存储区,位于处理器内部,,寄存器数量极其有限,所以寄存器根据需求进行分配,不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象
堆栈
位于通用RAM(随机访问存储器)中,但通过堆栈指针可以从处理器那里获得直接支持,堆栈指针若向下移动,则分配新的内存,若向上移动,则释放那些内存,这是一种有效的快速存储方法,效率仅次于寄存器,创建程序时
堆
常量存储
非RAM存储
3、多态
4、接口
5、内部类
6、持有对象
Loading...