曾经我一度以为面向对象编程,就是程序员面对着自己的女朋友编程,因为这样会更加有动力有兴趣去写代码,不会脱发,秃顶。 事实证明,我完全就是想多了,因为……很多程序员压根就没有女朋友。 那么问题来了,既然都没有女朋友,怎么面向对象编程? 一、面向对象编程 何为对象? 在现实里面,自然是指男/女朋友的意思。 在程序里面,对象泛指一切事物,对,你没有听错!也就是在程序里面,一切事物都可以是你的对象。
仔细读上面的话:这部手机,这台电脑,这个人,琢磨出一点意味来没有,这些都是具体的某个事物。 对象是指一类事物的具体体现。
都是天上地下独此一个的,而不是某类。 那么问题又来了,什么又叫类? 什么类?人类的类,猫类的类,在程序里面,类的意思和现实里的其实是差不多的。 类是一组相关属性和行为(功能)的集合。 只不过说在现实里这就是一个常识性的概念;在程序里面,更加的规范化,还记得前几天一直都有接触到的class么?它的意思就是类,在程序里面,这是一个非常常用且重要的概念。 小结:
面向对象编程是一种程序设计思想,它区别于面向过程编程。 比如同样是收割稻谷:
面向对象思想是一种更符合我们思考习惯的思想,说白了,面向过程是需要我们自己亲力亲为一步一步去做的,相当于是一个执行者;面向对象更像是一个指挥者,我们指挥好我们在使用的对象就好了。 说到这,不禁让我想起了孟子的一句话:“劳心者治人,劳力者治于人”; 面向过程,更像是一个劳力者;而面向对象,更像是一个劳心者;当然他们之间肯定是有着一定的区别的,不过我暂时还不清楚,至少我现在就是这么理解面向对象思想的。 二、Java中类与对象1.Java中类的定义 举一个手机的例子,手机就是一个类 手机有哪些属性?尺寸,颜色,内存等 手机有哪些功能?打电话,发短信,看新闻等 这些属性和功能在Java里面是如何体现的? 画图分析: 从中我们可以知道:
附:类中成员变量的默认值
2.Java中的对象及使用 知道了Java中的类(包含成员变量,成员方法) 那Java中的对象又是怎么回事呢? 对象的命名格式: 类名 对象名=new l类名 3.对象内存图 先复习下几个概念:
这几个概念弄明白后,再画内存图: 运行流程: ①main方法从方法区中入栈(程序运行的入口) ②声明一个对象phone ③在堆中new出一个对象 ④给对象的成员变量赋值(成员变量在方法区中取) ⑤调用成员方法 ⑥方法区中的成员方法入栈 ⑦成员方法运行完后,方法退栈 ⑧main方法退栈,程序运行结束 小结及注意事项:
三、封装面向对象三大特性:封装、继承和多态。 什么叫封装?逐字分析就是,封闭了将其装起来。 成员变量和成员方法在类中,为了防止它被其他类随意访问到,就需要使用到封装,这样更加的安全。 如何封装?这就需要使用到private这个关键字了。 1.private关键字
那其他类要访问怎么办? 其他类要访问这个类的成员变量属性,就需要调用这个类的方法才行。
2.this关键字 this,翻译成中文就是:这个。 它代表的就是当前对象的引用,也就是说方法被哪个对象调用了,这个this就是代表哪个对象。 3.构造方法 Phone phone=new Phone(); 这是创建对象的格式,其中Phone()就是一个构造方法。 当一个对象被创建的时候,构造方法是用来初始化该对象的,赋予对象的成员变量初始值。 什么是构造方法? 创建对象的时候,给成员变量初始值的方法。 分为有参构造和无参构造,上面举的例子就是无参构造,这样的话,等于没有给成员变量赋值,值为默认值。 注意:
4.标准类——JavaBean JavaBean是Java语言编写类的一种标准方式,如下图 这就是一个标准的类:
总结: |
|
来自: 刘小爱v > 《Java学习笔记》