黑马程序员技术交流社区

标题: 结构和类的区别是什么 [打印本页]

作者: 董振海    时间: 2012-10-11 16:48
标题: 结构和类的区别是什么
如题, 结构和类的区别都有什么, 像数据库的实体,都是用类,如果用结构的话 可以么?

作者: 邓江红    时间: 2012-10-11 16:55
结构体是一种值类型,而类是引用类型
作者: 雷向阳    时间: 2012-10-11 17:31
类既包含数据成员,又包含函数成员。他是一种将数据结构和算法相结合的面向对象的概念。
而结构则不具备包含函数成员的能力,他只是一种面向过程的概念。
作者: 曾家伟    时间: 2012-10-12 10:39
区别:
1、类是引用类型,继承System.Object,数据存储在堆上;结构体值类型,继承System.ValueType,数据存储在堆栈上;
2、在一个类中,可以定义默认的、不带参数的构造函数,而在结构体中不能定义默认的、不带参数的构造函数。两者都可以定义带有参数的构造函数,通过这些参数给各自的字段赋值或初始化。
3、类在传递的时候,传递的内容是位于托管内存中的位置,结构体在传递的时候,传递的内容是位于程序堆栈区的内容。当类的传递对象修改时,将同时修改源对象,而结构体的传递对象修改时,不会对源对象产生影响。

作者: 管真    时间: 2012-10-17 18:29
类引用类型,结构值类型。某种意义来说结构也属于类,因为结构里面可以写方法~!
作者: 穆_升    时间: 2012-10-17 23:19
类:
类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,都指向同一段实际对象分配的内存
类有构造和析构函数
类可以继承和被继承
结构:
结构是值类型在栈上分配(虽然栈的访问速度比较堆要快,但栈的资源有限放),结构的赋值将分配产生一个新的对象。
结构没有构造函数,但可以添加。结构没有析构函数
结构不可以继承自另一个结构或被继承,但和类一样可以继承自接口
作者: 笔墨伺候    时间: 2012-10-17 23:50
从本质上来说,你的编程思想出问题了。即使结构能够实现,都要用类实现
作者: 汪书凯    时间: 2012-10-18 20:00
结构体是一种值类型,而类是引用类型。(值类型、引用类型是根据数据存储的角度来分的)
就是值类型用于存储数据的值,引用类型用于存储对实际数据的引用。那么结构体就是当成值来使用的,类则通过引用来对实际数据操作。
第二个问题:两者里面是不是都有构造函数?为什么结构体用得比较少?
    构造函数是为了初始化类的字段而存在的,而结构体并不需要初始化就能使用,因此,结构体中并不存在构造函数。
    不能以使用多少来衡量,只是看相应问题使用最适合的方法罢了。结构体的定义是:有些数据既是相互关联的,又共同描述一个完整事物,如:一个学生的整体信息,学号、姓名、性别等。而类则使用在需要比较有层次的数据上面。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2