java思想复习<二>

欢迎访问: www.ptcms.cn

第一章
继承:复用接口
   @1将解决方案转化成问题术语的描述,避免了在问题术语和解决方案之间建立众多的中介模型.
   @2通过使用对象,类型层次成为了主要的模型
   @3通过继承而产生的类型等价(type equivalence)是理解面向对象程序设计方法的内涵的重要门槛.
   @4使基类和导出类产生差异:1:在基类中增加新的方法;2.orerriding 覆盖基类中的方法.
  |-是一个(is-a)与像是一个(is-like-a)的关系
    是一个:替代法则(substitution principle)
  |-伴随多态的可互换的对象(多态)
抽象基类和接口
abstract-->Interface
    在基类中的方法都是用来操作泛化对象的.
    @1非面向对象(non-OOP)编译器 前期绑定 连接器 绝对地址
      面向对象 后期绑定 类型检查 一小段特出的代码替代绝对地址的调用 向上转型
    example:
    package rk.test;

    public class Shape {

 public void draw(){
  System.out.println("fulei");
 }
 void doDuff(Shape s){
  
  s.draw() ;
 }
    }
/
    package rk.test;

    public class Circle extends Shape {

    public void draw(){
   System.out.println("画圆"); 
 }
    }

  package rk.test;

   public class Line extends Shape {

 
    public void draw(){
  System.out.println("画直线");
 }
   }
//
  package rk.test;

  public class Test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
     Circle c = new Circle() ;
     Line l = new Line() ;
     Shape s = new Shape() ;
     s.doDuff(c) ;
     s.doDuff(l);
 }

  }
///输出结果
  画圆
  画直线
//复习2///

对象的创建,使用和生命周期

OOP:涉及抽象数据类型,继承和多态
@1.C++:控制效率-->对象的存储空间和生命周期可以在编程时确定--》将他们置于堆栈或者静态存储区域内来实现.
这中方式将存储空间的分配和释放放在优先的闻之,但失去了灵活性。因为在编写程序时必须知道对象的数量,生命周期和类型.
   Java:在堆(heap)的内存池中动态的创建.(只有在运行的时候才能知道对象的数量,类型)
   结论:C++:必须编写程序来销毁对象(内存泄漏的问题)
        Java:垃圾回收器(garbage collector)
集合(Collection)与迭代器(Iterator)
   @1.  java1.0 和java1.1版本为所有容器类涉及的被称为Enumeratiron的标准迭代器
        Java 2 增加了一个完备得多的容器类库,其中包含一个被称为Iterator的比老师的Enumeratiron能做的更多的迭代器
    接口Collection:包含的接口{List:{ArrayList,LinkedList,Vector,Stack},Set{HashSet,LinkedHashSet,TreeSet},SortedSet{TreeSet},Queue}
    接口Map:{HashMap,Hashtable,LinkedHashMap,Properties,Provider,TreeMap}
单根继承结构:
    Object(11方法):单根继承带来的好处:
         @1:所有的对象都具有一个公用的接口,所以他们归根到底都时相同的基本类型;
         @2:保证所有的对象都具有某些基本的功能,在堆上创建所有的对象,极大的简化了参数的传递.
         @3:使垃圾回收器的实现变的简单多了,其向上转型的特点可以把消息发送给系统中的每一个对象。
         @4:由于所有的对象都保证在运行时刻具有类型信息,这对异常处理这样系统级别的操作变的尤其的重要.

回顾:java里有13个包:其中常用的lang,io,util,sql,beans,net,

向下转型(downcasting)与模板/泛型(template/generic)
      1.参数化类型(parameterized type)来取出特定的对象
垃圾回收器可以确保正确的清楚.(在对象复杂的情况下)
垃圾回收与效率和灵活性:
      1.C++采用在堆栈上创建对象:时对象分配和释放存储空间的最有效的途径,运行时刻的开销下,缺点不灵活;
       2.java:采用在堆上创建对象,代价比较高昂,而且总时从某个基类继承以及所有方法的调用都是多态的也需要不小的开销,有点灵活性好
       3.垃圾回收:你从来不知道它将何时启动并且持续多久,从而导致了java程序的执行速度会有前后不一置的情况.
异常处理:处理错误:java一开始就把异常处理程序内置了编程语言中,因为Java一开始就内置了异常处理.
      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值