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>();
- TIJ......(一)
- TIJ读书笔记(一)
- TIJ
- TIJ swot_JAVA的初学者(一)
- 看TIJ
- TIJ - 070110
- TIJ - 070111
- TIJ - 070119
- TIJ-注解
- TIJ-绪论
- TIJ......(二)
- TIJ......(三)
- TIJ读书笔记(二)
- tij学习笔记-1
- tij读书笔记2
- tij读书笔记3
- 继续看TIJ
- TIJ Note - Garbage collection
- asp.net identity(微软首推的身份验证)2.0分析-基于vs2015默认程序
- 逐步实现ListView嵌套ExpandableLayoutListView
- Java高级编程-JUC
- |BZOJ 2028|平衡树|[SHOI2009]会场预约
- 编译工具
- TIJ......(一)
- Zookeeper安装
- JVM的Perm区持续增长导致OOM问题记录
- gcc和g++
- 详解JavaScript操作URL的方法(单页应用常用)
- python之路第一站
- 1056. 组合数的和(15)
- request中参数(parameter)和属性(Attribute)的区别
- Java提高篇——JAVA三大特征之继承