码迷,mamicode.com
首页 > 编程语言 > 详细

thinking in java ----reading note (1)

时间:2016-02-12 23:22:07      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:

# thinking in java 4th
# reading note
# victor
# 2016.02.10

chapter 1 对象入门

1.1 抽象的进步
    (1) 所有东西都是对象。
    (2) 程序是一大堆对象的组合,对象间通过消息联系。
    (3) 通过封装现有对象,可制作出新型对象。
    (4) 每个对象都有一种类型(某个类的实例)。
    (5) 同一类的所有对象都能接受相同的消息。
    
1.2 对象的接口 & 1.3 实现方法的隐藏
    接口规定了可对一个特定的对象发出哪些请求(访问权限)。
    public:    任何人均可访问。
    private:   只有自己可访问。
    protected: 本包内均可访问,除自己所在包之外只有继承的类可访问。
    default:   所在package范围内使用。

1.4 方案的重复使用
    在现有类的基础上组织一个新类(将现有类的对象置入一个新类),有时组织也被称作"包含"关系,比如一辆车包含了一个发动机.
    对象的组织具有很大的灵活性,新类的成员对象通常设为私有(private),这样可以在不干扰客户代码的前提下,从容地修改.

1.5 继承:重新使用接口
    使用继承相当于创建了一个新类,新类不仅包含了现有类的成员,同时,复制了基础类的接口。
    若只是继承一个类,而不作其他事情,那么来自基础类的接口就会直接照搬到派生类。这意味着派生类和基础类之间存在一种"等价"关系。完全可以将派生类的对象换成基础类的对象。
    有两种方法将派生类和基础类区分开:
    (1) 为派生类添加新函数。
    (2) 改善基础类的函数,即为派生类的函数建立一个新定义(重写)。
    很多时候,我们必须为衍生类加入新的接口元素,所以不仅扩展了接口,也创建了一种新的类型。这种新类型仍可以替换成基础类型,但这是"类似"的关系(父类不能调用子类的新方法)。

1.6 多形对象的互换使用
    base class shape(method: draw();erase();move();...)
    sub class: Circle;Square;Triangle;
    对于这一系列类,我们要将派生类的对象当作基础类的一个对象对待。如果增加一个子类:三角形,也能很好适用,这样程序有了扩展性。
    void dostuff(Shape s){
        s.erase();
        s.draw();
    }    
    Circle c = new Circle();
    dostuff(c);
    dostuff(c)将派生类Circle当作基类shape处理,这一过程叫作"upcasting"(上溯造型)。

1.6.1 动态绑定
    将一条消息发给对象时,如果并不知道对象的具体类型是什么(Cricle or Square ...),但是采取的行动是正确的,这种情况就叫作"多形性",面向对象语言实现多形性的方法叫作"动态绑定"。

1.6.2 抽象的基础类和接口
    抽象类和抽象方法

1.7 对象的创建和存在时间    

1.8 解决错误
    exception 控制 : try catch throw

1.9 多线程
    线程与锁:同一时间只有一个线程使用特定的内存空间。程序员创建一个对象,代表一把锁,所有线程访问资源时都必须检查这把锁。

1.10 永久性
    程序结束后,对象的生存期也结束。如果将对象声明成"永久性",即程序停止运行后,对象也能继续存在。

1.11 java & web

1.12 分析与设计

thinking in java ----reading note (1)

标签:

原文地址:http://www.cnblogs.com/ct-blog/p/5187338.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!