黑马程序员技术交流社区

标题: 类和结构的区别,什么时候使用结构? [打印本页]

作者: 谭显锋    时间: 2011-12-9 15:31
标题: 类和结构的区别,什么时候使用结构?
我只知道类是引用类型,结构是值类型。都可以包括方法和属性。
作者: 付炯    时间: 2011-12-9 16:26
结构存放在栈中并按值传递 与类对象相比具有性能优势
因为值类型的分配快于引用类型 而且存放在栈中的值离开作用域即被收回 不用等待垃圾收集器
但作为方法参数的时候 使用结构需要复制完整的副本 性能开销比较大 而类对象则仅传递引用即可
因此结构应该只用来表示小的数据结构
作者: 黑马——兰雷明    时间: 2011-12-14 05:50
内部结构:
结构
1. 没有默认的构造函数,但是可以添加构造函数 2. 没有析构函数 3.没有 abstract 和 sealed(因为不能继承  4.不能有 protected 修饰符  5.可以不使用 new 初始化
在结构中初始化实例字段是错误的

1.有默认的构造函数 2.有析构函数 3.可以使用 abstract 和 sealed
有 protected 修饰符
必须使用 new 初始化

作者: 黑马——兰雷明    时间: 2011-12-14 05:51
继承性:
结构:
不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用 sealed 声明,可是结构是隐式的 sealed。
类:
完全可扩展的,除非显示的声明 sealed,否则类可以继承其他类和接口,自身也能被继承。


作者: liuyinggzu    时间: 2011-12-14 09:37
如何选择使用结构还是类:

1.堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些
2.结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。
3.在表现抽象和多级别的对象层次时,类是最好的选择
4.大多数情况下该类型只是一些数据时,结构时最佳的选择
作者: 陆亚    时间: 2011-12-14 10:34
类具有面向对象的思想。




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