Java学习——1——面向对象

Alan Kay 总结:
1.万物皆为对象
抽取待求问题的任何概念化构件,表示为程序中的对象
2.程序是对象的集合, 他们通过发送消息来告知彼此所要做的
消息,对某个特定对象的方法的调用请求
3.每个对象都有自己的由其他对象所构成的存储
可以创建包含现有对象的包来创建新类型对象
4.每个对象都拥有其类型
每个对象都是每个class的instance
5.某一特定类型的所有对象都可以接收同样的消息
“圆形”类型的对象也是“几何形”类型的对象,所以一个“圆形”对象可以编写与“几何形”交互并自动处理所有与几何形性质相关的事物的代码。

Booch:对象具有状态,行为,标识。
每个对象都有内部数据(给出该对象的状态)和方法(对象产生的行为),并且每一个对象在内存中都有唯一一个地址。

一、Interface
第一个面向对象的编程语言——Simula

接口确定了对某一特定对象所能发出的请求,on(),off(),便是接口

定义一个Light类,
创建一个新对象lt

Light lt = new light();
lt.on();

二、访问控制
访问指定词:public、private(与客户端程序员的一堵墙,继承的类不能访问)、protected(继承的类可以访问)

三、复用
复用某类:
1.使用该类的一个对象;
2.创建一个成员对象(使用现有类合成新的类:Composition;“汽车”拥有“引擎”:);

四、继承

当继承现有类型时,也就创造了新的类型。这个新类型不仅包括现有类型的所有成员(尽管private成员被隐藏起来了且不可访问),更重要的是它复制了基类的接口。即,所有发送给基类对象的请求消息也可发送给继承类的对象。继承类与基类有相同的类型

使继承类与基类有所不同:
1.直接添加新方法(扩展接口,基类无法访问新添加方法)
2.overriding(直接在继承类中创建想要覆盖的方法的新定义即可)

五、多态
OOP使用后期绑定:当向对象发送调用请求时,被调用代码直到运行时才能确定其地址。
把继承类看作它的基类:Upcasting

六、单根继承:Java所有的类最终都继承自单一的基类(c++除外)
所有对象都具有一个共用接口

七、对象的生命周期
静态创建对象:将对象置于堆栈或静态存储区域,必须在编写程序时知道对象确切的数量、生命周期和类型;(不灵活,追求最大执行速度,对象的存储空间和生命周期可在编写程序时确定;创建存储空间方便快捷(栈顶指针上下移))

动态创建对象:在被称为堆的内存池中动态创建对象(直到相关代码被执行时才知道需要多少对象,生命周期如何,具体类型是什么;存储空间 在运行时被 动态管理(用大量时间分配存储空间,创建堆存储空间的时间取决于存储机制设计 )

Java采用动态内存分配(new),采用”垃圾回收机制“(”知道”对象何时不再会被使用,自动释放其占用内存(Why????);优点:防止内存泄漏),Java对象存储于堆,内存池中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值