日期:2014-05-20  浏览次数:20734 次

关于“面向对象”的问题~~请高手们指教
小弟我学习java也有一段时间了,是一个在校的大学生,在学习java的时候其中的精华之一就是面向对象。我之前学过一点c语言,但只是最基础的东西,之后才下功夫学java,但是对“面向对象”这个概念还不是太清楚,不太明白这它的主要特点是什么,所以我想请各位高手给我指点一下~~ 谢谢~~

------解决方案--------------------
用程序来实现生活!

------解决方案--------------------
面向对象的三大特点:封装,继承,多态
简单的说,就是
封装,就是把具体的业务逻辑处理封装到一个类中,这样需要相同的业务处理时,只需要用这个类就可以达到代码重复使用的目的
继承,就是子类可以拥有父类的属性和方法,在父类的基础上可以根据需要进行扩展,这样可以达到父类代码的重复使用
多态,就是运行期的动态绑定,可以在主框架代码不变的情况下,把拥有相同接口的业务类实例替换掉旧的业务类,就能达到改变业务逻辑处理。

------解决方案--------------------
探讨
面向对象的三大特点:封装,继承,多态
简单的说,就是
封装,就是把具体的业务逻辑处理封装到一个类中,这样需要相同的业务处理时,只需要用这个类就可以达到代码重复使用的目的
继承,就是子类可以拥有父类的属性和方法,在父类的基础上可以根据需要进行扩展,这样可以达到父类代码的重复使用
多态,就是运行期的动态绑定,可以在主框架代码不变的情况下,把拥有相同接口的业务类实例替换掉旧的业务类,就能达到改变……

------解决方案--------------------
C学的是语法吧。。。

给你举个例子。最基本的面向对象。

一只狗,有毛的狗,会跑,会吼叫

Java code

Class dog
{ 
    private String flixColor;//狗毛的颜色(对象的属性)
    //构造函数,用来构造此对象 
    public Dog(String flixcolor)
   {
       flixColor = flixColor;
   }
   //狗的行动,跑路,你可以让狗跑,所以你能够调用这个方法
   public void run()
   {
       .....
       //狗跑路
   }
   //狗的行动,吼叫,你让狗吼叫(调用这个方法),狗发出声音(返回声音)
   public 声音 howl ()
   {
       .....
       //狗吼叫
        return 声音
   }
}

------解决方案--------------------
如果要构造一个黄色毛发的狗就如下:

Java code

Dog yellowflixDog = new Dog("yellowfix");

------解决方案--------------------
给你来个概括性的。。。万物皆是对象,世界由万物组成~你可以把世界看成一个对象~
也可以用无数个对象来构造它
------解决方案--------------------
面向对象编程要做的是去合理的划分这些对象~

用各种对象去协同工作

去构建一个程序
------解决方案--------------------
所有的物体都是对象 
具有相同行为和属性可以把它归并为一类
比如 人 可以一类 人都要吃饭睡觉 这是行为 人都有头发 性别 眼睛 鼻子 名字这就是属性
所以有java里面的类
用类可以创建不同对象 就好像人的名字 性别 不一样 我们可以对新建的对象赋不同的值 
对象就好比是一个实际物体 有确定行为和属性
------解决方案--------------------
面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。   
1)对象 对象是运行期的基本实体,它是一个封装了数据和操作这些数据的代码的逻辑实体。   
2)类 类是具有相同类型的对象的抽象。一个对象所包含的所有数据和代码可以通过类来构造。   
3)封装 封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。对象的某些数据和代码可以是私有的,不能被外界访问,以此实现对数据和代码不同级别的访问权限。   
4)继承 继承是让某个类型的对象获得另一个类型的对象的特征。通过继承可以实现代码的重用:从已存在的类派生出的一个新类将自动具有原来那个类的特性,同时,它还可以拥有自己的新特性。   
5)多态 多态是指不同事物具有不同表现形式的能力。多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减少代码的复杂度。   
6)动态绑定 绑定指的是将一个过程调用与相应代码链接起来的行为。动态绑定是指与给定的过程调用相关联的代码只有在运行期才可知的一种绑定,它是多态实现的具体形式。  
 7)消息传递 对象之间需要相互沟通,沟通的途径就是对象之间收发信息。消息内容包括接收消息的对象的标识,需要调用的函数的标识,以及必要的信息。消息传递的概念使得对现实世界的描述更容易。   
8)方法 方法(Method)是定义一个类可以做的,但不一定会去做的事。
------解决方案--------------------
首先,万物皆对象是错误的!

对象是什么?
对象有状态、行为、标识符。
对象封装了代码、数据。
每个对象可以被基它对象使用。
对象拥有自己要完成的责任。

面向对象? 
面向对象分析(OOA),面向对象设计(OOD),面向对象编程(OOP)
基本上面向对象分析的结果可以作为开始面向对象设计的模型,面向对象设计的结果可以作为蓝图,利用面向对象编程方法最终实现一个系统。


简单的告诉你:
什么是对象对象系统?

假如有一个Java系统,任何系统里都有小系统,任何系统都是更大系统的组成部分,能理解吗?就像人的肢体部分一样。从大系统分解成小系统,小系统再分....分解到组件....直到分解到....分到类与对象为止,类与对象是面向对象系统的最基本单位,就像动植物的细胞一样。
那么你如何开发出一个大系统呢?是不是要先开发一个小系统呀,如何开发小系统?小系统是怎么工作的?洗车是怎么跑的?飞机是怎么飞的?也许里面有很多组件,这些组件用什么做的?铁?金?代码(类)?小的组件完成了什么工作?
在系统中任何类都是有责任的,在一个运行的系统中,会有很多对象都背负着各自要完成的责任、功能,再与其它对象交互,共完完成组件的作用,那时它们一起就构成了一个小系统,如:用户登录系统。

我又不知道说哪去了,呵呵,总之一个系统里有很多很多很多的对象,它们共同完成某些责任,就是这样!!
你如何做出这些小的对象?类是什么、对象是什么就不多说了。

面象对象开发最难的就是:要开发一个系统,如何确定类和对象?哪些对象与哪些对象工作?怎么个工作法?