浅谈面向对象--《Thinking in Java》读书笔记(一)

        最近大概读了一遍《Java编程思想》这本书,发现只是看的话,有许多东西理解得不是很深,便萌生了写个关于这本书的读书笔记,来进行一个总结和概括。一来可以提升学习能力,二来也锻炼了写作能力。接触Java大概也有两年多了,有些地方写得不好或有误的地方,还请大家多多指正。
        以下内容参考《Thinking in Java》第一章对象导论和第二章一切皆是对象。

面向对象程序设计(Object-origeted Programming oop),即使用对象来进行程序设计。

1,抽象过程
    在我们生活中,我们习惯把东西分类,比如说衣服类、上衣类等等,一般的,把具有相同特点和行为的事物分为一类,或者说类型,这个类型就是要抽象的东西,而归类的过程就是抽象过程。一般认为:人们所能解决的问题的复杂性直接取决于抽象的类型和质量。

2,对象 object
      抽象过程中的“具有相同特点和行为的事物” ,这个事物就是对象,类型是一个泛指,而对象是一个具体的东西,每个类型可以有很多的对象。
对象的五大基本特征:
    1),万物皆为对象。对象是一种奇特的变量,它可以存储数据,还可以在自身上执行操作。对象不仅仅是一般的有形的事物,可以抽取待解问题的任何概念,将其表示为程序中的一个对象
    2),程序是对象的集合,他们通过发送消息来告知彼此所要做的。消息就是对某个对象的方法的调用。
    3),每个对象都有自己的由其他对象所构成的存储。
    4),每个对象都有自己的类型。即:每个对象都是某个类(class)的一个实例(instance)。
    5),某一特定类型的所有对象都可以接受同样的消息。比如说,因为“圆形”类型的对象同样也是“几何形”类型的对象,所以一个“圆形”类型的对象一定能够接受所有发送给“几何形”类型对象的消息。

    对象具有状态、行为和标识。每一个对象都拥有内部数据和方法,同时每一个对象在内存中都有一个唯一的地址。

3,面向对象设计
    程序设计可以理解为给用户提供服务,实现用户需求的功能,在面向对象程序设计中,提供服务的是对象,即对象是“服务提供者”,程序通过调用对象提供的服务来向用户提供服务。

4,对象的创建和存储
    比如创建一个名字叫做“miao”年龄为一岁的猫:
            Cat xiaohua = new Cat("miao", 1);
    关键字new表示“给我一个新对象”,这个对象的名字叫做 “xiaohua”,这是类型为Cat的一个变量,或者说是一个引用。
    在执行这个语句的时候,会在堆内存中开辟一段空间来存储这个对象,要注意的是,存的不是它的引用“xiaohua”,而是这个对象所有的属性和方法,比如猫的名字、猫的年龄、猫怎么叫等等。

        笔记的观点大都是来之Bruce Eckel的《Thinking in Java》,陈昊鹏翻译。小部分是书中原句,大部分是自己理解着写得。 笔记大概是一周两到三篇,都会分享到博客中。。。希望大家喜欢。




猜你喜欢

转载自blog.csdn.net/Yexiaofen/article/details/78019050