A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谭显锋 黑马帝   /  2011-12-9 15:31  /  2406 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我只知道类是引用类型,结构是值类型。都可以包括方法和属性。

评分

参与人数 1技术分 +1 收起 理由
陈涛 + 1

查看全部评分

5 个回复

倒序浏览
结构存放在栈中并按值传递 与类对象相比具有性能优势
因为值类型的分配快于引用类型 而且存放在栈中的值离开作用域即被收回 不用等待垃圾收集器
但作为方法参数的时候 使用结构需要复制完整的副本 性能开销比较大 而类对象则仅传递引用即可
因此结构应该只用来表示小的数据结构

评分

参与人数 1技术分 +1 收起 理由
李荣壮 + 1

查看全部评分

回复 使用道具 举报
内部结构:
结构
1. 没有默认的构造函数,但是可以添加构造函数 2. 没有析构函数 3.没有 abstract 和 sealed(因为不能继承  4.不能有 protected 修饰符  5.可以不使用 new 初始化
在结构中初始化实例字段是错误的

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

评分

参与人数 1技术分 +1 收起 理由
李荣壮 + 1

查看全部评分

回复 使用道具 举报
继承性:
结构:
不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用 sealed 声明,可是结构是隐式的 sealed。
类:
完全可扩展的,除非显示的声明 sealed,否则类可以继承其他类和接口,自身也能被继承。

评分

参与人数 1技术分 +1 收起 理由
朱勋 + 1

查看全部评分

回复 使用道具 举报
如何选择使用结构还是类:

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

评分

参与人数 1技术分 +1 收起 理由
朱勋 + 1

查看全部评分

回复 使用道具 举报
陆亚 黑马帝 2011-12-14 10:34:39
地板
类具有面向对象的思想。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马