TIJ......(一)

来源:互联网 发布:intent传递数据 编辑:程序博客网 时间:2024/05/18 10:25

第一章:对象导论

Car c=new Car();//c是对象的引用,new Car()新建一个对象

1.当正在试图开发或理解一个程序设计时,最好的方法之一就是将对象想象为“服务提供者”,程序本身将向用户提供服务,它将调用其它对象提供的服务来实现这一目的。你的目标就是去创建(或者最好是在现有代码库中寻找)能够提供理想的服务来解决问题的一系列对象。

2.向上转型(子类继承父类)


/** * 基类,父类,超类 * @author Administrator * */public class Shape {public void draw(){System.out.println("画什么图");}public void delPic(){System.out.println("删除什么图");}}
/** * 子类,圆 * @author Administrator * */public class Circle extends Shape{@Overridepublic void draw() {System.out.println("画圆");}@Overridepublic void delPic() {System.out.println("删除圆");}}
public class Line extends Shape {@Overridepublic void draw() {System.out.println("画一条线");}@Overridepublic void delPic() {System.out.println("删除一条线");}}
public class Test {public static void main(String[] args) {Circle circle=new Circle();Line line=new Line();new Test().doSomething(circle);//分析:由于Circle可以被doSomething()看做是Shape,也就是说doSomething()可以发送给Shape的任何消息,Circle都可以接收new Test().doSomething(line);/*输出:  删除圆画圆删除一条线画一条线*/}public void doSomething(Shape shape){shape.delPic();shape.draw();}}

1.9 容器

面向对象设计中,处理问题时,存储对象方式:

1.创建另一种对象模型,这种新的对象模型持有对其它对象的引用。

2.用在大多数语言中都有的数组来实现

这种称为容器(也称之为集合,不过java类库以不同的含义使用‘集合’这个术语)的新对象,在任何需要时都可以扩充自己容纳你置于其中的所有东西。开发人员不需要知道要把多少对象置入容器中,只需要创建一个容器对象就好。

好的OOP语言都有一组容器,它们作为开发包的一部分。在java中,具有满足不同需要的各种类型的容器,例如List(存储序列),Map(也被称为关联数组,用来建立对象之间的关联),Set(每种对象类型只持有一个),以及诸如队列,树,堆栈等更多的构件。

不同容器提供了不同类型的接口和行为。它们之中的某种容器提供的解决方案可能比其它容器要灵活的多。不同容器对于某些操作具有不同的效率。如ArrayList和linkList前者查询快,后者插入快。

List list=new ArrayList();开发的程序优化系统性能时改用LinkList那么接口List所带来的抽象,可以把在容器之间进行转换时对代码产生的影响降到最低。

1.9.1参数化类型

javaSE5重大变化之一就是添加了参数化类型,也就是java的范型,一对尖括号,中间包含类型信息。

     比如:List<Shape> list=new ArrayList<Shape>();










0 0
原创粉丝点击