struct和class的区别
相关话题
对于学java的同学,struct和class经常会混淆,它们之间有什么区别呢?下面是小编为大家准备的struct和class的区别,希望大家喜欢!
class类是什么
Class类(在java.lang包中,Instances of the class Classrepresent classes and interfaces in a running Javaapplication):
在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。
struct类是什么
struct,C语言结构体。通俗讲就是打包封装,把一些有共同特征(比如同属于某一类事物的属性)的变量封装在内部,通过一定方法访问修改内部变量。在实际问题中,一组数据往往具有不同的数据类型。例如在学生登记表中,姓名应为字符型;学号可为整型或字符型;年龄应为整型;性别应为字符型;成绩可为整型或实型,因为数组中各元素的类型和长度都必须一致,以便于编译系统处理,所以不能用一个数组来存放这一组数据,为了解决这个问题,C语言中就给出了这种构造数据的类型“结构”,它相当于其它高级语言中的记录。
struct和class的区别
class是引用类型,struct是值类型;
class可以继承类、接口和被继承,struct只能继承接口,不能被继承;
class有默认的无参构造函数,有析构函数,struct没有默认的无参构造函数,且只能声明有参的构造函数,没有析构函数;
class可以使用abstract和sealed,有protected修饰符,struct不可以用abstract和sealed,没有protected修饰符;
class必须使用new初始化,结构可以不用new初始化;
class实例由垃圾回收机制来保证内存的回收处理,而struct变量使用完后立即自动解除内存分配;
从职能观点来看,class表现为行为,而struct常用于存储数据;
作为参数传递时,class变量以按址方式传递,而struct变量是以按值方式传递的。