黑马程序员____基础____java的面向对象

来源:互联网 发布:ubuntu如何切换输入法 编辑:程序博客网 时间:2024/06/06 00:46

------ android培训、java培训、期待与您交流! ----------

  一:面向对象的学习。如果我看得更远些,那是因为我站在巨人的肩膀上-----牛顿

                1.面向对象其实是一种思考解决问题的思想,早期解决问题的思考思想是面向地址、面向过程的思想。

                2.面向过程强调的是功能行为,面向对象是将功能封装进对象,强调了功能的对象。面向对象是基于面向过程的(在面向对象中的对象中的各个子功能都是由面向过程的思想来体现和完成的)。

                3.比如说:把大象关进冰箱。

                        面向过程的思考方式的步骤是:把冰箱门打开、把大象赶进冰箱、把冰箱门关上这三个步骤,在这里注重的是过程的现实!!!(打开冰箱、储存大象、关闭冰箱)。这三个步骤都要自己来现实。

  面向对象的思考方式是:把冰箱的打开、储存、关闭这三个功能定义于冰箱上(因为这本来就是冰箱自己的事情),于是乎,我们看到的只是冰箱这个实体而完全可以不用我们自己来实现打开冰箱、储存大象、关上冰箱门这三个过程。我们要做的只是操作大象、冰箱这两个对象!有了冰箱这个对象于是就有了打开、储存、关闭这三个功能!!!!!于是我们想要使用这三个功能就只须要得到一个冰箱(实例化一个对象)即可!!!!!(冰箱.打开、冰箱.储存、冰箱.关闭)。呵呵。。。还是这样来得爽!!!!

也就是说一个对象有它自己的属性自己的功能(一般来说,一个对象也只有属性和功能),某些功能所属于哪些事物,于是就把这些功能定义在那些事物上,于是乎,要想得到某些功能就只须得到相应的对象即可,因为只要操作相应的对象就可以实现相应的功能。

所以嘛。。。。。面向对象的最终思想是将复杂的问题简单化。面向对象的思想是很符合人们的思考习惯的!!!!它将计算机的“思维习惯”和人们的思维习惯的变化缩短了!!!!!!!!

在面向过程的时候我们是“执行者”,而在面向对象的时候我们是“指挥者”。这是根本性的转变啊!!!

你所看到的和你所能想到的概念都可以称之为对象。啊弥陀佛。。。。。。。万物皆对象。。。。。。。。。。哈哈。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

二:面向对象举例。

              1,想深入一门语言,不但要求要有扎实的代码功底,更重要的是还要有这门语言的思想,更更重要的是要把这门语言的思想变成自己的“思维能力”和“思维习惯”。初学的时候不要想太多底层原理性的东西,而是更应该把时间花在为什么要这样实现、这样实现的好处等等思想性的东西,等自己有所了解之后再想想底层原理性的东西。

              2,比如:

                   陈志印老师他很懂电脑,因为我们不是很懂电脑,如果我们想要买电脑的话,我们可以请他去帮我们买。在这里,陈老师就是一个具备了“很懂电脑”这么一个功能的对象,我们让陈老师去帮我们买电脑这一举动实际上是我们间接的调用了陈老师的“很懂电脑”这一功能。我们不必去了解“很懂电脑”这一功能的实现细节,我们只要会使用(和陈老师有关系——师徒关系,二师兄。。。上路了。。。。)陈老师这一对象就完全可以买到一台性价比很高的电脑了,陈老师在去买电脑的时候我们甚至于还可以打打computer games !和小girls冒几个泡泡。。。。。。哈哈。。。。。。太爽歪歪了。。。。。。。。。。。。。。。。。。调用的机制为:陈老师.“很懂电脑”。嘿嘿。。。

              3,以后在开发的时候不要先去实现你所需要的功能,要先看看java中是否已经具备你所需要功能的这个类了!如果有这个类则利用这个类创建一个对象,然后再调用这个对象即可。如果没有,则自己定义一个相应的类。所以写程序的时候首选考虑的是对象,而不是过程!!!切记!!!这也就是面向对象的思考方式中的优势所在,因为已经有一大堆模板代码尽可能地满足你的需求!!

三:类与对象的关系。

             1,当要实现某功能时,要以人类大众最佳的思维方式确定该功能应该定义在哪个类里。比如:人开门 我们可以使用名词提炼法

{开门(门)//人具备开门这一动作,把具体的门这个对象的一个引用传进来。

.开();

}

}

{// 门的功能定义在门这个类中。 (  )

{

操作门轴等。

}

}

        下面是代码:

                       

public class Test {// 良好的面向对象的设计!public static void main(String[] args) {Person p = new Person("ZhaoTaiYun");Door d = new Door();p.openDoor(d);p = null;// 通知拉圾回收机制可以工作了!?}}class Door {public void open() {System.out.println(" open   Door !");}public void close() {System.out.println("close  Door !");}}class Person {String name;public Person(String name) {this.name = name;}public void openDoor(Door d) {// 门的打开是由门自己来完成的!speakName();d.open();}public void closeDoor(Door d) {// 门的关闭是由门自己来完成的!speakName();d.close();}public void speakName() {System.out.print(name + "  :");}}

------- android培训、java培训、期待与您交流! ----------

详情请查看:http://edu.csdn.net/heima

原创粉丝点击