TIJ......(一)

第一章:对象导论

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{
	@Override
	public void draw() {
		System.out.println("画圆");
	}
	@Override
	public void delPic() {
		System.out.println("删除圆");
	}
}
public class Line extends Shape {
	@Override
	public void draw() {
		System.out.println("画一条线");
	}
	
	@Override
	public 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值