黑马程序员技术交流社区

标题: 面向对象能再具体点吗? [打印本页]

作者: Solomon    时间: 2014-5-15 16:59
标题: 面向对象能再具体点吗?
我看了视频,感觉还是有点懵,只了解一些概念!

作者: 流沙    时间: 2014-5-15 17:37
面向对象其实就是抽象的,慢慢学习下去你就会明白的!
作者: code2014    时间: 2014-5-15 17:42
多看几遍,就懂了,看着视频的时候,最好写笔记
作者: 郭帅帅    时间: 2014-5-15 23:02
http://bbs.itheima.com/thread-109342-1-1.html        我写的关于java思想方面的总结,可以看一下
作者: ZHAOWEI    时间: 2014-5-15 23:11
本帖最后由 ZHAOWEI 于 2014-5-15 23:17 编辑

打个比方,一块面就是一个实实在在的个体,个体就是对象,你可以把他做成拉面,也可以做成饺子皮,还可以做成疙瘩汤。把这块面做成什么的方法(函数)就是类中的方法,因为做成能用的东西不只需要方法,还需要别的东西,类就是和面用的盆。
你想做拉面  
class LaMian{//拉面专用的盆
int shui;//这个盆里能装水,水量、升
int mian//还能装小麦粉、kg//因为电脑2,只能定义好了才能用,所以没定义的不能装,只能装这俩。
public void fangFa(){//方法
System.out.println("您用了"+shui+"升水,"+mian+"kg面粉把拉面做出来了");
}
}
class Demo{
//这次拉面是5.13号做的拉面
LaMian lm513= new LaMian();//lm是这次做的拉面的名字,这句话就是说,我要开始做拉面了
lm513.shui = 2;//把这2升水倒到盆里
lm513.mian=5;//把这5kg面也倒到盆里
lm513.fangfa();//使用这个方法做成了拉面》》实体(对象)》》》做好了,返回结果。。。。。拉面做好了,因为电脑2,做好了就必须立刻吃,吃不了就给你扔了(自动回收)

//这次拉面是5.15号做的拉面
LaMian lm515= new LaMian();//lm是这次做的拉面的名字,这句话就是说,我要开始做拉面了
lm515.shui = 2;//把这2升水倒到盆里
lm515.mian=5;//把这5kg面也倒到盆里
lm515.fangfa();//使用这个方法做成了拉面》》实体(对象)》》》做好了,返回结果。。。。。拉面做好了,因为电脑2,做好了就必须立刻吃,吃不了就给你扔了(自动回收)
}
//事实不一定完全是这样,也可能不正确,但如果真的很迷糊,绝对可以这么理解,这已经很接近事实的真像了。。纯手打。。。求加分+++


作者: Solomon    时间: 2014-5-15 23:32
ZHAOWEI 发表于 2014-5-15 23:11
打个比方,一块面就是一个实实在在的个体,个体就是对象,你可以把他做成拉面,也可以做成饺子皮,还可以做 ...

看了更晕...........
作者: 我为你着迷    时间: 2014-5-16 02:28
其实很简单     其实就是生活中的  不要想的太复杂  简答化就OK了
作者: stream    时间: 2014-5-16 11:10
面向对象的概念。。。。我建议你看一下JAVAheadfirst这本,看起来很快很生动的,迅速掌握对象的概念。。。
作者: 路漫漫_求索    时间: 2014-5-16 12:06
面向对象,可以简单理解为我们使用的电脑就是一个对象,而电脑具有上网功能,看电视、编辑文件等各种功能,这些功能就是电脑所具备的各种方法,如果我们想上QQ,我们只要打开电脑的上网功能,就可以上网了,至于电脑是怎么实现上网的功能我们不用去管,我们只要调用它的方法即可。
作者: 黑马粉、峥    时间: 2014-5-16 22:29
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
作者: 格子、    时间: 2014-5-16 22:53
面对对象这个概念很好理解的啊,就像你搞对象一样。你的女朋友有姓名、年龄的属性,有自己特有的性格,有自己的行为,把这些描述出来就是一个类,大白话就是你喜欢的女孩的类型。以后找对象就找这个类型的。
面对对象就是这个情况,你想实现什么功能,就找一个能实现你这个功能的对象来给你搞定。如果没过,那么就自己搞一个对象呗,想要啥功能给他描述出来,然后直接把想办的事扔给这个对象,搞定!!!!
作者: ID1003    时间: 2014-5-17 00:53
本帖最后由 ID1003 于 2014-5-17 00:58 编辑

面向对象知识点
整张图通过从上往下罗列的方式,将面向对象中所涉及到的知识点做了针对性的总结,为自学的同学们提供了良好地框架。[qq]2214978000[/qq]

面向对象.png (125.93 KB, 下载次数: 11)

面向对象.png

作者: 编程学徙    时间: 2014-5-17 04:39
面向对象这个概念,我的理解是这样的。。。
要了解对象,先要了解类,而类这个概念,可以从生活中的类去理解,比如鸟类,车类,老师类等。每个类都是由它的实例组成,以车类为例,都有颜色,车牌等属性,都有运行的方法。而每个实例的属性方法略有不同。
我们从街上走过,说看到一辆车,实际上就是看到了车这个类中的一个实例。也是就对象。我们要让大家了解这一辆车的属性,就要通过一定的语言来进行描述,要让车运行,就要调用它的方法。
作者: qfch    时间: 2014-5-17 08:39
这个面试常问到
作者: 小小6456    时间: 2014-5-17 09:54
anything is Object(万物皆对象)

抽象,从对具体的对象中抽取有用信息。
对象有其固有属性,对象的方法,即对象的行为(对象能做什么)
对象本身是简单的(功能简单),多个对象可以组成复杂的系统(对象之间彼此调用对方的方法)

对象应当是各司其职(功能简单),各尽所能(把自己的功能作到最好)。(弱耦合性实现了前面所述的对象的特点)

对象的耦合性,是对象之间的联系,对象和系统之间的联系。对象的耦合性要尽量的弱,也就是对象之间的联系尽可能的弱,对象和系统之间的联系尽可能的弱。
系统的可插入性,是在系统中加入新的对象之后的系统稳定性。
对象的可替换性,是在系统中替换原有的对象之后的系统的稳定性。
复用性,即对象可否被重复使用,对象的功能越简单,复用性就越好。(对象的耦合性弱,复用性就比较强)

面向过程是先有算法,后又数据结构(怎么解决问题)
面向对象是先有对象(数据结构),后有算法。(用什么做)

类是某些有着相同属性的集合的抽象。
类是一个类对象的模板,对象是类的具体化。
类是一个新的数据类型,类的对象。

注意:局部变量的作用范围是在定义他的代码块以内,局部变量要先赋值后使用,在以一个重合的作用于范围内不允许两个局部变量命名冲突。局部变量局部优先,且在于实例变量同名时会副该局部变量。

变量 包括简单变量(原始数据类型),对象变量。

方法的定义:
1,方法的修饰符(多个修饰符出现的顺序无关) |
2,方法的返回值类型                                   |顺
3,方法名                                                 |序
4,方法的参数表                                         |向
5,方法中允许抛出的异常                              |下

java中不能够在返回语句后写任何代码。JVM+解释器=JRE,JRE+类库=JDK

java中方法的重载(overload)方法名相同,参数表不同,返回值类型可以不同。调用时要给出明确参数并确定调用某一方法。在编译时,编译器会根据参数选择适当的方法,所以重载也叫编译时多态。

就近向上匹配原则
如果方法的参数表中的数据类型和调用时给出的参数类型不尽相同时会根据向上匹配的就近原则。(类型就近向上转化匹配)
注意:调用时要给出明确参数并确定调用某一方法,否则编译会出错。

对象使用者(调用其他对象的方法)对象(对象中的方法被调用时根据参数进行自己进行选择)
一类方法,但跟据不同的参数会有差异,对象回根据参数判断,对对象调用者透明。

创建对象的过程:1,分配空间 2,初始化属性 3,调用构造方法(有前提,不考虑继承关系)

构造方法的写法:没有返回值类型,构造方法的方法命名必须和类名相同。如果在类中不写构造方法,系统会提供一个无参的构造方法。

注意:最好在写类时提供一个无参的构造方法。

获得对象的方式
通过new(在堆空间中申请分配空间),new 类名(),可以通过这种形式或的一个对象。例如 :Car c=new Car();
有参的构造方法在被调用时,在用new关键字或的对象时初始化,例如:Car c=new Car("yellow")

对象变量中存放的是对象的引用(地址的封装形式)

this关键字
表示当前对象(哪个对象调用了方法,哪个对象就是当前对象),可以用来区分实例变量和局部变量。this(),他表示掉用本类其他的构造方法,注,只能写在构造方法的第一行。

java中的参数传递,简单类型的变量传递的是数值,对象变量的传递则传递的一个引用(地址)

作者: 肥洋洋    时间: 2014-5-17 21:26
比如说你要写一个软件,你自己一条条代码慢慢敲,你这就是面向过程。你找个可以写出这个代码的程序员帮你,这个程序员就是对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2