第一章 对象导论

    对象具有状态、行为和标识。这意味着每一个对象都可以拥有内部数据和方法,并且每一个对象都可以唯一地与其他对象区分开来,具体来说,就是每一个对象在内存中都有一个唯一的地址。

每个对象都只能满足某些请求,这些请求由对象的接口(interface)所定义,决定接口的便是类型。接口确定了对某一特定对象所能发出的请求。但是,在程序中必须有满足这些请求的代码。这些代码与隐藏的数据一起构成了实现。向某个对象“发送消息”(产生请求),这个对象便知道此消息的目的,然后执行对应的程序代码。例如,类的名称是Light,特定的Light对象名称是It,可以向Light对象发出的请求是:打开它、关闭它、将它调暗、将它调亮。定义一个对象的引用(It),然后调用new方法来创建该类型的新对象。为了向对象发送消息,需要声明对象的名称,并以远点符号连接一个消息请求i。从预定义类的用户观点来看,这些差不多就是用对象来进行设计的全部。

当试图开发或理解一个程序设计时,最好的方法之一就是将对象思想想象为“目标提供者”。在良好的面向对象设计中,每个对象都可以很好地完成一项任务,但是它并不试图做更多的事。

Java用三个关键字在类的内部设定边界:public、private、protected。这些访问指定词(access specifier)决定了紧跟其后被定义的东西可以被谁使用。public表示紧随其后的元素对任何人都是有用的,private关键字表示除类型创建者和类型的内部方法之外的任何人都不能访问的元素。protected和private的差别在于继承的类可以访问protecte成员而不能访问private成员。默认访问权限通常被称为包访问权限,在这种权限下,类可以访问在同一个包中的其他类的成员,但是在包之外,这些成员如同制订了private一样。

使用现有的类合成新的类,这种概念被称为“组合”(composition),如果组合是动态发生的,那么它通常被称为聚合(aggregation)。组合经常被视为“has-a”(拥有)关系,就像我们常说的“汽车拥有引擎”一样。

继承使用基类型和导出类型的概念表示了这种类型之间的相似性。一个基类型包含其所有导出类型所共享的特性和行为。可以创建一个基类型来表示系统中某些对象的核心概念,从基类型中导出其他类型,来表示此核心可以被实现的各种不同方式。例如,基类是几何形,每一个几何形都具有尺寸、颜色、位置等,同时每一个几何形都可以被绘制、擦除、移动和着色等。在此基础上,可以导出(继承出)具体的几何形状--圆形、正方形、三角形等。使基类和导出类产生差异的两种方法是:直接在导出类中添加新方法;改变现有积累的方法的行为,这被称为覆盖(overriding)。

多态例子:

void doSomething(Shape shape) {
    shape.erase();
    shape.draw();
}

程序中用到doSomething()方法:

Circle circle = new Circle();
Triangle triangle = new Triangle();
Line line = new Line();
doSomething(circle);
doSomething(triangle);
doSomething(line);

由于多态,以上的程序可正确执行。


在Java中,所有的类都继承自单一的基类。这个终极基类的名字就是Object。


通常被称为容器的新对象,在任何需要时都可扩充自己以容纳你置于其中的所有东西。

向上转型是安全的,向下转型是危险的。


泛型:一对尖括号,中间包含类型信息,通过这些特征可以识别对泛型的使用。


Java提供了垃圾回收机制,可以自动发现对象何时不被使用,并继而销毁它。


异常处理将错误处理直接置于编程语言中,有时甚至置于操作系统中。异常是一种对象,它从出错地点被抛出,并被专门设计用来处理特定类型错误的相应的异常处理器捕获。


在程序中,彼此独立运行的部分称之为线程,上述概念被称为“并发”。并发最常见的例子就是用户界面,通过使用任务,用户可以在按下按钮后快速得到一个响应,而不用被迫等待到程序完成当前任务为止。


Java与Internet(WEB、客户端编程、插件、脚本语言、服务器端编程)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值