一、对象导论

1.1 抽象过程
     人们所能够解决问题的复杂性直接取决于抽象的类型和质量。

1.2 每个对象都有一个接口

1.3 每个对象都提供服务

1.4 被隐藏的具体实现

  • 访问控制的原因:

  1、让客户端成员无法触及他们不应该触及的部分。
  2、允许库设计这可以改变类内部的工作方式而不用担心会影响到客户端程序员。(接口和实现可以清晰的分离并加以保护)

  • Java的三个关键字在类内部的设定边界:

  1、public表示其后的元素对任何人都是可用的。
  2、private表示除类型创建者和类型的内部方法之外的任何人都不能访问的元素。
  3、protect与privite作用相当,差别仅在与继承的类可以访问protect成员,但是不能访问private成员。
  4、默认访问权限。类可以访问同一个package下的其他类的成员。

1.5 复用具体实现
  1、最简单的复用某个类的方式就是直接使用该类的一个对象。
  2、在现有的类合成新的类,这种该念被称为组合,如果组合是动态发生的,那么它通常被称为聚合,被视为拥有关系。
  3、在创建新类的时候,应该首先考虑组合,如果采用这种方式,设计会变的更加清晰,一旦有了一些经验之后,便能够
            看出使用继承的场合了。

1.6 继承
  1.基类型和导出类型之间具有相似性。
  2.基类型包含了其所有导出类型所共享的特性和行为。可以创建一个类型来表示系统中某些对象
  3.新的类型不光包含了现有类型的所有成员,更重要的是它复制了基类的接口,所有发送给基类的消息可以同时发送给导出对象。
  4.使基类型与导出类型产生不同的两种方法:
    1、直接才导出类中加添新的方法,这些方法并不是基类接口的一部分。
    2、改变现有基类的方法的行为,被称之为覆盖那个方法,此时,正在使用相同的接口方法,但是可以在新方法下做不同的事情。
        5.导出类型在对基类型的方法添加上产生两种效果,
    1、是覆盖了基类的方法,意味着导出类和基类是完全相同的类型,因为他们具有完全相同的接口,
    2、在对基类的方法上添加新的方法,扩展了接口,虽然这种代替不完美,因为基类型无法访问新添加的方法。

1.7 伴随多态的可交互对象
  1、面向对象程序设计语言使用了后期绑定的概念。当向对象发送消息时,被调用的代码直到运行时才能确定。也叫动态绑定。
  2、编译器确保被调用方法的存在,并对调用参数和返回值执行类型检查(Java是强类型的语言,无法提供此类保证的语言被称为是弱类型的),但是并不知道将被执行的确切代码。
  3、在某些语言中,必须明确地声明希望某个方法具备后期绑定属性所带来的灵活性(C++是使用virtual关键字来实现的)。在这些语言中,方法在默认情况下不是动态绑定的。而在Java中,动态绑定是默认行为(Java中除了static方法、final方法和private方法之外,其它所有方法都是动态绑定),不需要添加额外的关键字来实现多态。
  4、把将导出类看做是它的基类的过程称为向上转型(upcasting)

 1.8 单根继承结构
  在Java中(事实上还包括除C++以外的所有OOP语言),所有的类最终都继承自单一的基类,这个终极基类的名字就是Object。
  单根继承结构的好处:
  1、在单根继承结构中所有对象都具有一个共用接口,所以它们归根到底都是相同的基本类型。
  2、单根继承结构保证所有对象都具备某些功能。
  3、单根继承结构使垃圾回收器的实现变得容易得多,而垃圾回收器正是相对C++的重要改进之一。由于所有对象都保证具有其类型信息,因此不会因无法确定对象的类型而陷入僵尸。这对于系统级操作(如异常处理)显得尤其重要,并且给编程带来了更大的灵活性。

1.9 容器
  1、解决某个特定问题时,Java中提供了创建另一种对象类型,这种新的对象类型持有对其他对象的引用(也可以使用数组), 我们称之为“容器”的新对象。
  2、在许多语言中都有专门的容器来进行处理,有通用的一些容器,但是许多时候还是要容器有所选择
    1)不同容器提供了不用类型的外部接口和行为。(堆栈相比较于队列)(集合相比较于列表)                    
    2)不同的容器对于某些操作具有不同的效率。(Arraylist随机访问花费的时间是固定的,Linkedlist则是不同的)
  1.9.1参数化类型
    1.JAVA SE5出现之前,容器存储的对象都只是具有Java中的通用类型:object,单根继承结构意味着所有东西都是object类型,所以可以存储object的容器可以存储任何东西。这使得容器很容易被复用.
             2.参数化类型在Java中也称为范型):它知道自己所保存的类型机制,从而不需要向下转型,是一个编译器可以自动的定制作用于特定类型上的类。

1.10 对象的创建和生命期
1.11 异常处理:错误处理           
1.12 并发程序
              1、程序中,彼此独立 运行的部分被称为线程。
              2、并发:在同一时刻处理多个任务的思想。
              3、在共享资源上,Java也提供了资源锁。

1.13 Java与Internet               

 

 

 

 

 

         

 

posted @ 2018-06-26 21:22  铭川  阅读(137)  评论(0编辑  收藏  举报