《Java编程思想读书笔记》--对象导论

来源:互联网 发布:单片机多路压力采集 编辑:程序博客网 时间:2024/05/25 23:26

静下心来把编程思想从头到尾再读一遍,并做读书笔记记录下知识点。这是条必须静下心来走完的路。。。。。。

Java是建立在C++的基础上的,而java之于C的优势是不需要在解决问题时要考虑计算机的结构,只需要基于所要解决的问题的结构做考虑。既OOP允许根据问题来描述问题,而不是根据解决方案的计算机来描述问题。

而OOP的程序设计方式是
1、万物皆为对象。对象就是特殊的变量,它可以存储数据,还可以在它自身上执行

2、程序是对象的集合,他们通过发送消息来告知彼此所要做的。就是要把消息想象为对某个特定对象的调用请求。

3、每个对象都有自己的由其他对象所构成的存储。就是创建包含现有对象的新对象。

4、每个对象都拥有其类型。既每个对象都是某个类的一个实例。类就是类型。而每个类和其它类的区别是:可以发送什么消息给它。这边要明白一个概念,既类其实也是一种接口,每个对象是类这种接口的具体实现。

5、某个特定类型的所有对象都可以接收同样的消息。既子类可以接收父类的消息,也就是多态,这是OOP最强大的地方。

对象具有状态、行为和标识。也就是说对象在内存中都有一个唯一的地址。

我们需要将对象看成服务提供者,这个非常重要,我们需要把这个对象应该能提供的哪些服务都封装进来,也就是实现高内聚。但又需要遵循接口隔离原则,不能将这个类不应该具有的功能都一股脑放到一个类中,会导致高耦合。具体的需要去研究设计模式,这边就不展开了。

访问控制是为了设定一个边界,设定哪些是客户端程序员能够访问的,可以防止客户端程序员随意篡改我们的程序。我们只提供public的接口给客户端程序员,他们只需知道参数和返回值调用即可,这样我们修改了内部实现也不会影响客户端程序。这些讲的就是迪米特法则,既接口隔离原则。具体还是去看设计模式。它和接口隔离原则的区别就是,接口隔离原则关注的是接口,它希望每个接口的粒度最小,不要搞混了。
然后在java中public是对任何人都可访问,private是只有类创建者和类内部方法才能访问,protected比private多个子类可以访问。但子类不能访问private。当然还有默认的包访问权限,在我们不写访问指定词时它发挥作用。

组合是has-a关系,组合和聚合的区别是,聚合是set进来的,而组合是new好了的。组合和聚合更具灵活性,Spring这种利用java的多态,通过xml来配置组合具体对象的方式就提供的很大的灵活性,而继承则是高耦合的。所以优先考虑组合,当然如果需要多态来对同一个消息相应不同的处理方式就应该优先考虑继承。

关于继承is-a不想写太多,因为设计模式里应用很多,最重要的一个概念就是,继承不仅包含了现有类型的所有成员,更重要的是它复制了基类的接口,也就是说,所有发送给基类的消息同时也可以发送给子类。这里就是里氏替换原则。还有需要注意的是如果在基类中添加新方法,就要考虑用组合或者装饰模式,因为直接添加新方法会对以后代码维护造成困难。

java是单根继承的,终极父类是Object,对于垃圾回收来说,这种机制保证所有内存都有其类型,不会应无法确定其类型而陷入僵局。

java对象的生命周期,及创建和销毁。创建一个对象用new 类名() 实现。java是在堆上给对象分配内存,而通过在栈上定义一个类的应用指向这片内存。java只有这一种创建对象的方式,再加上单根继承,使得垃圾回收就简单的多。

java的异常处理保证所有错误都被处理,这回在以后的章节详细描述,需要注意的是异常处理的概念比面向对象还要早。

关于并发和Internet就留给以后吧,有好多书可以研究。

原创粉丝点击