java类相对于C结构体的优势是什么?

wokaoyan1981 2017-10-06 12:49:00
大家好,我是java初学者,以前学过一些C。在《java经典入门》这本书第12章引言写到“面向对象编程的另一个有用的方面是能够创建可在不同程序中使用的对象。”对这句话有点疑惑。C语言虽然没有对象这个概念,但是它有结构体啊,一个文件调用另外一个文件的结构体好像也是可以实现的啊!java类相对于c的结构体到底有什么不一样的或者说有什么优势啊?请指教!谢谢!
...全文
567 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wokaoyan1981 2017-10-10
  • 打赏
  • 举报
回复
谢谢大神啊!醍醐灌顶了!
偏安zzcoder 2017-10-09
  • 打赏
  • 举报
回复 1
结构体跟类的概念确实有点像,尤其是跟C++中的类。 先说相同点: (1)结构体和类都可以实现对于数据的封装,比如将一辆车定义为由多个部分组成,如车身、车轮、车灯等。 (2)结构体和类都是可以嵌套的,比如

struct A{
struct B{
int a;
};
};

class A{
class B{
}
}
但是不同在于: (1)C语言中结构体中只可以定义成员变量,如果你说你在结构体中可以定义成员函数和构造函数,那应该是C++而不是C语言,C语言作为面向过程的语言是要将数据和算法进行分离的。Java的类除了可以封装成员变量,还可以封装成员函数,也就是对于成员变量的操作。 (2)结构体中的成员变量都是可以直接访问的,而类则可以通过声明public、protected、private或者不加权限修饰符来进行访问权限的控制。另外类是可以继承的,子类可以通过继承获得父类的一些属性或者方法,这是结构体所不具有的。 (3)结构体仅仅是封装数据用的,也可以说仅仅是自定义的一种变量类型;而java作为一种纯面向对象语言,将所有东西都封装在类中,包括程序执行入口的Main方法。 (4)要单纯说Java的类相对于C语言结构体的优势,倒不如宏观上看面向对象编程思想和面向过程编程思想的区别,这是两种不同的思维方式,楼主可以看一下比较经典的斐波那契数列的面向过程解题方法和面向对象解题方法。 关于兔子问题(斐波那契数)的Java实现--采用面向对象的方式 暂时就想到这么多,纯手打。菜鸟个人理解,如有纰漏,欢迎指正。

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧