学习啦 > 生活课堂 > 生活小常识 > struct和class的区别

struct和class的区别

时间: 志峰887 分享

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变量是以按值方式传递的。

  看了“struct和class的区别”的人还看了:

1.类和结构的区别

2.c中class的用法

3.实施工程师面试题及参考答案

4.Linux find命令常见用法

1784286