A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Bellriver 中级黑马   /  2016-4-27 23:39  /  11479 人查看  /  47 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
你是怎么理解面向对象,举个简单易懂的例子说明一下;面向对象三大特点的含义是什么。怎么才能把面向对象学好?

最佳答案

查看完整内容

首先,面向对象是一种编程思想. 通俗来说就是,我要完成某件事,但并不是我本身去亲自完成(区别于面向过程,面向过程的更注重于解决问题的步骤,且都需要本身去执行),而是不断去创建对象去完成,可能我们所创建的对象,还需要继续创建新的对象,所以是一层一层的关系,比如,我们要解决问题,而调用了一个方法,但是这个方法的内容确是又调用了三个方法,它本身解决不了问题,但是他能把决绝问题的方法组合,恰恰是这些组合的方法才是真正 ...

评分

参与人数 1黑马币 +5 收起 理由
LiuWei2015 + 5 万物皆对象

查看全部评分

47 个回复

倒序浏览
首先,面向对象是一种编程思想.
       通俗来说就是,我要完成某件事,但并不是我本身去亲自完成(区别于面向过程,面向过程的更注重于解决问题的步骤,且都需要本身去执行),而是不断去创建对象去完成,可能我们所创建的对象,还需要继续创建新的对象,所以是一层一层的关系,比如,我们要解决问题,而调用了一个方法,但是这个方法的内容确是又调用了三个方法,它本身解决不了问题,但是他能把决绝问题的方法组合,恰恰是这些组合的方法才是真正的执行者,面向对象解决问题的方式是一个类似于金字塔形状的结构,而面向过程则像是一根柱子结构,
      面向对象有三大特点:封装,继承,多态
                                     封装:通俗来讲就是选择性隔离,比如说一个类中,有一个方法,这个方法只在本类中使用,所以就得加private修饰,再说个例子:把自己,妻子,孩子,看做是一个家的类,存款就是这个家类的成员属性,那么,存款就只能被家里的人访问,这个就是私有,如果外人想要访问,那么我们需要对外提供一种公共的访问方式,比如说:借钱,只有当外面的人跟我们借钱时,我才能把钱给他,他们不可能不经过同意就可以拿到钱,这只是一个简单的例子,封装就是把不许要对外暴露的东西私有化,也或是将某些东西只给我们想让看到他们的人使用,不让使用的人,就把他们隔离开,在Java中封装除了一些修饰符外,还有包等等,包也可以起到一些效果,只不过,权限有大有小,
                    继承:也很好理解,这就跟自然界的结构关系是相通的,就是,父类没有私有的东西,子类中可以拿来用,父类中有的,但是子类中觉得不满足的东西,子类可以重新获得,所以子类越往下,拥有的东西越多,不仅有父类继承过来的,还有自己重新获得的,所以说在,Java中,想要看共性的东西,就在顶端的父类中寻找,想要特性的东西,就在底层的子类中寻找,
                    多态:就是一种事物,拥有的多种称呼,比如说猫,把猫看做一个类的话,它的父类就是动物类,再往上就是生物类,当然也可以有更细的划分,这种特点就是,从顶层到底层是一个由抽象到具体的过程,一级一级实现,不可能生物下来就是猫类,显然不符合自然规律,生物的特征可以在猫的身上找到,也可以说是猫继承了动物,动物又继承了生物,但是猫特有的东西,不一定符合顶层生物的特点,这又是顶层生物的定义,显然是符合整个生物类的
               例: 生物类  one   =  new   cat();   动物    one1 =  new  cat();这些句子都是从右往左读,猫是一只动物,猫是一个生物,这些都符合逻辑,所以猫既可以称呼为猫,也可以称呼为动物,亦或是生物,所以一种事物可以有不同的称呼,这就是多态,还需记住:多态有三个条件:必须有继承,必须有方法的重写,父类引用指向子类对象,
        以上只能给您一些帮您做一些简单的理解,希望对您有用,
回复 使用道具 举报
面向对像的三大特征:封装,继承,多态,
回复 使用道具 举报
这怎么说呢,我觉得面向对象跟我们日常息息相关,处处皆是对象。
回复 使用道具 举报
小小的馒头 发表于 2016-4-27 23:45
这怎么说呢,我觉得面向对象跟我们日常息息相关,处处皆是对象。

这只是一个笼统的说法
回复 使用道具 举报
面向对象   例子:把大象装进冰箱 1.冰箱打开。 2.冰箱存储。 3.冰箱关闭  对象是冰箱,将冰箱的打开,关闭,存储作为方法进行封装,并给提供调用.
回复 使用道具 举报
LoveGG 中级黑马 2016-4-28 00:32:31
7#
对象是指我们用于描述的就事物,例如你需要的描述电脑,电脑就是类,描述电脑属性有牌子,价格,尺寸,cpu.内存大小,硬盘大小等,还有一些方法,可以看电影,可以打游戏,浏览网页等,但是这个类的属性和方法肯定不可能包含所有电脑的功能和参数,只是对定义了电脑的一些共性.对于一些特殊的电脑,如超封级电脑,微型电脑,需要独立增加它自己特有的功能就有了继承的概念,
封装是保证定义的类的成员变量和方法不能被其他类随便的访问,隐藏成员变量,暴露出其他类能够用到的方法.
多态是指在继承的前提下,父类引用指向子类对象,有两种不情况,即多中状态
回复 使用道具 举报
面向对象理解:比方你想吃包子,你不必会做,你只要拿钱去老大妈那去买就好了,至于包子需要的配料,方法,老大妈掌握了这些技术;有了这些技术,你可以去她那买包子,其他人也可以去买包子;包子的制作就好比是一个类,而去买包子的人就好比是一个个对象。
继承:比方爸爸的财产一般都会留给儿子,而儿子在这个基础上还会有自己的财产,爸爸就属于父类,儿子就是子类,而爸爸必须也有爸爸,儿子只能有一个亲爸,这说明子类只能有一个父类,这叫单继承;
封装:还是买包子的例子,包子的配料和制作方法,老大妈不会告诉你,这就是封装,即为隐藏属性和方法,但你可以给钱来买到包子,这就是封装好会提供访问的方式,要不封装也没意义
多态:比方西游记里的唐僧,可以有很多妖怪变成他的样子,但是他们都会念经,但念经的方式会一样吗;唐僧是一个类的话,每种类型的妖怪就算是一个子类,每个类都可以对念经做出反应,只是反映不同,这就叫多态
回复 使用道具 举报
面向对象理解:比方你想吃包子,你不必会做,你只要拿钱去老大妈那去买就好了,至于包子需要的配料,方法,老大妈掌握了这些技术;有了这些技术,你可以去她那买包子,其他人也可以去买包子;包子的制作就好比是一个类,而去买包子的人就好比是一个个对象。
继承:比方爸爸的财产一般都会留给儿子,而儿子在这个基础上还会有自己的财产,爸爸就属于父类,儿子就是子类,而爸爸必须也有爸爸,儿子只能有一个亲爸,这说明子类只能有一个父类,这叫单继承;
封装:还是买包子的例子,包子的配料和制作方法,老大妈不会告诉你,这就是封装,即为隐藏属性和方法,但你可以给钱来买到包子,这就是封装好会提供访问的方式,要不封装也没意义
多态:比方西游记里的唐僧,可以有很多妖怪变成他的样子,但是他们都会念经,但念经的方式会一样吗;唐僧是一个类的话,每种类型的妖怪就算是一个子类,每个类都可以对念经做出反应,只是反映不同,这就叫多态
回复 使用道具 举报
面向对象的思想就是忽略过程,把问题划分为不同的对象,通过不断的创建对象,调用对象,指挥对象来解决问题。举例:就好老板对于一项工作并不需要了解并经历全过程,他只需要划分问题性能,并把问题分派到各个职能部门,他需要的只是各部门出的成果,并不需要亲自去完成工作及了解工作实现的细节
具有封装、继承和多态的特点。
学习面向对象首先要理解面向对象的思想,然后学习根据功能需求创建对象,并调用对象来实现结果,彻底理解这一解决问题过程的思想后,就需要不断练习,不断创新,通过案例来不断加深理解直到对对象的概念根深蒂固,到最后达到熟能生巧,举一反三
回复 使用道具 举报
面向对象的思想就是忽略过程,把问题划分为不同的对象,通过不断的创建对象,调用对象,指挥对象来解决问题。举例:就好老板对于一项工作并不需要了解并经历全过程,他只需要划分问题性能,并把问题分派到各个职能部门,他需要的只是各部门出的成果,并不需要亲自去完成工作及了解工作实现的细节
具有封装、继承和多态的特点。
学习面向对象首先要理解面向对象的思想,然后学习根据功能需求创建对象,并调用对象来实现结果,彻底理解这一解决问题过程的思想后,就需要不断练习,不断创新,通过案例来不断加深理解直到对对象的概念根深蒂固,到最后达到熟能生巧,举一反三
回复 使用道具 举报
面向对象理解:比方你想吃包子,你不必会做,你只要拿钱去老大妈那去买就好了,至于包子需要的配料,方法,老大妈掌握了这些技术;有了这些技术,你可以去她那买包子,其他人也可以去买包子;包子的制作就好比是一个类,而去买包子的人就好比是一个个对象。
继承:比方爸爸的财产一般都会留给儿子,而儿子在这个基础上还会有自己的财产,爸爸就属于父类,儿子就是子类,而爸爸必须也有爸爸,儿子只能有一个亲爸,这说明子类只能有一个父类,这叫单继承;
封装:还是买包子的例子,包子的配料和制作方法,老大妈不会告诉你,这就是封装,即为隐藏属性和方法,但你可以给钱来买到包子,这就是封装好会提供访问的方式,要不封装也没意义
多态:比方西游记里的唐僧,可以有很多妖怪变成他的样子,但是他们都会念经,但念经的方式会一样吗;唐僧是一个类的话,每种类型的妖怪就算是一个子类,每个类都可以对念经做出反应,只是反映不同,这就叫多态
回复 使用道具 举报
面向对象的思想就是忽略过程,把问题划分为不同的对象,通过不断的创建对象,调用对象,指挥对象来解决问题。举例:就好老板对于一项工作并不需要了解并经历全过程,他只需要划分问题性能,并把问题分派到各个职能部门,他需要的只是各部门出的成果,并不需要亲自去完成工作及了解工作实现的细节
具有封装、继承和多态的特点。
学习面向对象首先要理解面向对象的思想,然后学习根据功能需求创建对象,并调用对象来实现结果,彻底理解这一解决问题过程的思想后,就需要不断练习,不断创新,通过案例来不断加深理解直到对对象的概念根深蒂固,到最后达到熟能生巧,举一反三
回复 使用道具 举报
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 例如五子棋,面向过程的设计思路就是首先分析问题的步骤: 1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。 把上面每个步骤用分别的函数来实现,问题就解决了。  而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为: 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。 第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定
回复 使用道具 举报
如何大象装进冰箱?
面向过程:
为了把大象装进冰箱,需要3个过程。
1) 把冰箱门打开(得到打开门的冰箱)
2) 把大象装进去(打开门后,得到里面装着大象的冰箱)
3) 把冰箱门关上(打开门、装好大象后,获得关好门的冰箱)
每个过程有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱。
1:
冰箱开门(冰箱)
冰箱装进(冰箱, 大象)
冰箱关门(冰箱)
==换个写法
(冰箱开门 冰箱)
(冰箱装进 冰箱 大象)
(冰箱关门 冰箱)
2:
冰箱关门(冰箱装进(冰箱开门(冰箱), 大象))
==换个写法
(冰箱关门 (冰箱装进 (冰箱开门 冰箱) 大象))

面向对象:
每个动作有一个执行者,它就是对象。
1) 冰箱,你给我把门打开
2) 冰箱,你给我把大象装进去(或者说,大象,你给我钻到冰箱里去)
3) 冰箱,你给我把门关上
依次做这些动作,就能把大象装进冰箱。
1:
冰箱.开门()
冰箱.装进(大象)
冰箱.关门()

2:
冰箱.开门().装进(大象).关门()
  楼主觉得我这个理解怎么样
回复 使用道具 举报
题目好长哦。都要看晕了
回复 使用道具 举报
nannanziyu 发表于 2016-4-28 01:34
面向对象理解:比方你想吃包子,你不必会做,你只要拿钱去老大妈那去买就好了,至于包子需要的配料,方法, ...

买包子的人是对象?而不是做包子的人是一个对象?
应该是做包子的师傅归为一个类,而老大妈是这个类的实例,所以说老大妈才是这个对象
回复 使用道具 举报
最直白的说吧,  你要学习编程技术 ,    你查各种资料书,  又去论坛来问,  自己想问题 ,等等这是面向过程!!   但是你来黑马就不一样了  ,黑马里就会提供教你编程技术(同时直接提供给你资料和问题的讲解,不需要你辛苦的去找),而你通过黑马这个对象直接获取编程知识.      黑马里讲师的讲课方式,  资料,  怎么备课都是你不知道的,  (这就是封装)   而你仅通过学习(继承)获得了编程知识    出去后你找着工作了  别人问你是哪的   你说你是黑马的学员(多态),     (父类引用指向子类对象)
求币!!!!QAQ!!!
回复 使用道具 举报
面向对象就是更符合人的思考方式  比如说上班坐地铁  你面向的是地铁  至于地铁是怎么运输的你不用考虑 那是地铁的事情 对象就是一时实例 它有自己的方法  它内部是怎么运作的你不需要了解 只需要知道它的用法和具备的功能即可;  内部是如何工作的  就是在面向过程
三大特点:封装 把对象的属性和方法封闭起来 只对外提供公共接口 至于内部是如何操作的你不需要去理解 只知道使用它可以有结果  注重结果

继承:相当于儿子从父亲那里继承了他的财富 能力和经验  具备父亲的各种能力  其实就是具备父类的属性和方法

多态:父类引用指向子类对象 比如
回复 使用道具 举报
万物皆对象:你今天要去上课;若是你选择自己走路去的话就是面向过程;而你选择打的去的话的士就是你的对象。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马