C语⾔的结构体和java的类异同结构体跟类的概念确实有点像,尤其是跟C++中的类。
先说相同点:
(1)结构体和类都可以实现对于数据的封装,⽐如将⼀辆车定义为由多个部分组成,如车⾝、车轮、车灯等。
(2)结构体和类都是可以嵌套的,⽐如
C/C++ code
1 2 3 4 5struct
A{ struct
c语言斐波那契数列B{ int
a; }; };
Java code
1 2 3 4class
A{ class
B{ }
}
但是不同在于:
(1)C语⾔中结构体中只可以定义成员变量,如果你说你在结构体中可以定义成员函数和构造函数,那应该是C++⽽不是C语⾔,C语⾔作为⾯向过程的语⾔是要将数据和算法进⾏分离的。Java的类除了可以封装成员变量,还可以封装成员函数,也就是对于成员变量的操作。
(2)结构体中的成员变量都是可以直接访问的,⽽类则可以通过声明public、protected、private或者不加权限修饰符来进⾏访问权限的控制。另外类是可以继承的,⼦类可以通过继承获得⽗类的⼀些属性或者⽅法,这是结构体所不具有的。
(3)结构体仅仅是封装数据⽤的,也可以说仅仅是⾃定义的⼀种变量类型;⽽java作为⼀种纯⾯向对象语⾔,将所有东西都封装在类中,包括程序执⾏⼊⼝的Main⽅法。
(4)要单纯说Java的类相对于C语⾔结构体的优势,倒不如宏观上看⾯向对象编程思想和⾯向过程编
程思想的区别,这是两种不同的思维⽅式,楼主可以看⼀下⽐较经典的斐波那契数列的⾯向过程解题⽅法和⾯向对象解题⽅法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论