1、对象

对象:为解决问题而产生。一个对象的创建都是为了解决一个问题。对象有自己的特征和行为。

OOP:
1.所有东西都是对象。可从要解决的问题身上提出的概念性组件,都可在程序中表达为一个对象。保存数据,可对自身进行操作。
2.程序是一大堆对象的组合,通过消息传递。
3.每个对象都有自己的存储空间
4.每个对象都有一种类型。每个对象都是一个类的实例,类是类型的同义词。一个类的重要特征是“能发什么消息给他”。
5.同一类所有对象都能接收相同的消息。这一特性称为对象的“ 可替换性”。


1.接口
向对象发出请求是通过它的接口定义的,对象的类型定义了它的接口形式。

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

Ljght:类的名称,可向像Light对象发出请求on() off() brighten() dim()
Light lt 创建一个名为lt的Light对象句柄
new Light() 创建一个Light对象
=将Light对象赋值给句柄
lt.on() 句柄名+符号.()+消息名称  为对象发送请求调用消息。

为什么需要使用接口?
类创建者构建一个类,只向客户程序员开放有必要开放的东西(接口),其他细节隐藏。这样客户程序员不能接触和修改其他细节。

2.方案的隐藏:
private:私有的  类及其内部函数成员可以使用,其他对象拒绝访问。
protected:受保护的,类的衍生类可以访问。
friendly:友好的,同一个package包装/封装下可以访问
public:公开的。

3.方案的重复使用:
类的子类(衍生类)继承父类(基础类、超类)后拥有( 克隆)父类的方法。
改善子类:
衍生类添加新函数
衍生类重写父类的函数
4.继承 extends关键字 Upcasting 上溯造型技术
 例如:


void doStuff(Shape s){
     s.erase();
     s.draw();
}

Circle c=new Circle();
Square s=new Square();
c.doStuff();
s.doStuff();

doStuff函数内部并没有判断如果是Circle时如何处理,如果是Square时如何处理。
Shape可以接收的参数,Circle由于继承了Shape,所以也可以接收。
doStuff中请求调用Shape的erase函数,Ciecle也可以接收到。

5.多态:动态绑定技术
多形性:一条消息发送给对象,他并不知道具体的对象类型,但采取的行动正确。
多形性使用动态绑定技术实现。
动态绑定是这:在程序执行期间(非编译器)判断引用对象的实际类型,根据其实际类型调用其相应的方法。

6.抽象类:abstract 定义继承抽象类的子类必须实现的方法。抽象类不能被实例化
如果一个类中有一个方法是抽象方法,这个类必须是抽象类。
如果一个类是抽象类,这个类必须至少有一个抽象方法。

子类继承抽象类,必须实现父类的抽象方法。
抽象类不能与static final关键字一起使用。因为final和static关键字修饰的对象必须有一个实例,而抽象类是不允许有实例的。
public abstract class exercise02 {
    public abstract void  area() ;
}

public class execrise03  extends exercise02 {
    public void  area() {}
}
接口中定义的方法是public类型,实现类中也必须写public类型。
接口中没有明确定义方法的访问类型,实现类中默认是friendly友好类型,包可访问类型。
实现类必须全部实现接口中的方法。如果实现类中不想实现接口中的方法,可以将实现类添加abstract关键字声明为抽象类,由其子类去实现接口中的方法。



矢量:既有大小又有方向的量。
    new Vector()其实就是一个数组,其底层是数组数据结构。
    Vector是线程同步的,次容量为100%延长,比如初始默认是10,如果满了会变成20容量。
    Vector已经被ArrayList替代了,ArraList是线程不同步的,50%延长,其效率高。



6.垃圾回收器
  对象都继承接口Object
  对象都是用new关键字显式生成对象
  对象都是存储在内存堆上
  ---这一切都为垃圾回收器创造了条件。垃圾回收器知道对象什么时间需要被收回。

7.集合中存储的对象可上溯造型为Object类型,是用时可下溯造型使用。下溯造型存在风险,但是违例控制可以控制。


8.违例控制:解决错误
违例Exeption属于一个特殊的对象,会被从崔武的地方扔出来。随后这个违例会被设计的用于控制特定类型错误的违例控制器捕获。多个违例控制器可以并行捕获为例对象。

9、并发编程
多个线程同时并行运行。
并发编程的问题:共享资源。多个并行任务同时抢夺统一资源,面临的问题。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值