我学了c语言和java都做了课设,开始的时候没怎么想过这个问题,觉得慢慢就会明白,可是到现在为止,也没弄清,特想知道.面向对象会从对象的角度想属性之类的,非面向对象也会做一些处理.
比如一列火车,有车次,时刻,生产厂,所有者...如果用java可以设类,如果用c可以设结构,都可以表示清楚,都可以用函数,方法,进行编辑,我还是没觉得有区别.....能帮我好好解释一下么,不明白好难受=_=

解决方案 »

  1.   

    .........c是过程语言,java是面向对象语言,找本基础书好好看看吧。有很多不一样的。
      

  2.   

    去看看<thinking in java>
      

  3.   

    实际编写一下就知道了
    完全面向对象的语言,基础就是对象
    例如JAVA的所有对象都派生自OBJECT类
    所以,他们都有一些默认的方法,比如toString()面向过程的语言,基础直接是方法代码
    例如C的话,你可以不写一个类,直接写一个全局函数
    事实上,C里大多东西都是直接拿函数来做的
    这样的问题就是封装性很差,代码也很难读,很难了解这个函数是干什么的举个例子
    如果要连接TCP的话
    C需要先调用2个初始化函数,然后调用send()方法去发送数据
    如果没有说明文档的话,根本无从入手,鬼才知道要调用那个函数JAVA的话,只需要知道类socket,然后直接调用socket的方法就能完成一个TCP连接说到底,我觉得最大的区别就是封装性
      

  4.   

    这么说吧,面向对象设计有三大特点:
    1.封装
    2.继承
    3.多态。以此将C 和 C++/Java 做个比较吧
    1.封装:
    C中可以通过struct创造出结构体,结构体确实也是对象表示的一种方式,可是struct里的成员隐式的都是public的
    Java中的class是可以设定可见域的,比如public,private,缺省包作用域等2.继承:
    这是最大的特点,C的struct 无法被继承,这就是为什么要弄一个C++出来的原因啦
    c++和Java中的class是可以被继承的3.多态:
    由于C没有继承,所以它也不会有多个子类,函数覆盖等情况,当然也就不会有动态绑定,也就无法体现出多态性
    C++和java的父类允许有并且允许有多个子类,所以C++中会有子类指针传给父类,调用子类函数产生多态;Java中也有父类调用子类的方法等等。希望对lz有些帮助
      

  5.   

    对于一个复杂的体系,你如何用C去表达这个体系的各个特征?
    一列火车,有车次,时刻,生产厂,所有者,这只是简单的case。如果是一个火车生产工厂以及一个铁路局之间的沟通,你如何维系?各种型号的火车,有车头,车厢,各种零部件。铁路局的火车坏了,需要找火车生产工厂进行维修,你需要知道是什么时候出厂的火车,什么零部件,以前是否出现过同类问题,等等。碰到这种种类特征复杂的问题,你就能够通过面向对象更好的解决问题,并且通过设计模式来处理系统结构。