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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我个人目前只理解到:
C中的结构体和数组一样是 构造类型,结构体 中可有不同类型的属性
而面向对象中的  简单的不含方法的类
其中也可以定义不同类型的属性【虽然也可以声明方法,但是简单的类一般不含方法】

那结构体体  与  简单的类的 本质区别又在哪儿呢?
求大神解惑

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

6 个回复

倒序浏览
结构体里面只定义了基本类型或者引用类型,类里面不仅可以定义基本类型或者引用类型,还可以申明和实现方法
回复 使用道具 举报
本帖最后由 一只小菜鸟 于 2014-4-9 13:37 编辑

类中除了数据类型外,面向对象默认都有一个构造方法的吧~
回复 使用道具 举报
结构体是由不同数据类型组织在一起而构成的一种数据类型,因而一个结构体有多个数据项,每个数据项的类型可不相同。结构体就像一种粘合剂,将事物之间的关系很好地组合在了一起。
而类是一组具有相同(特征)属性和行为(功能)的事物的集合(抽象)。对象就是类的具体实现。类其实就是一种数据类型,它的变量就是对象。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
结构没有无参构造函数
结构不能被继承
结构是值类型,而类是引用类型
结构在数据参数方面效率更高,简单数组的应用中成本很低
类在方法运算方面更有优势,在抽象多级别时最佳选择
语法区别:
结构体内成员的属性默认是 public 而 class 是默认为 private
应用区别:
结构体不能继承,派生,而 class 可以

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
要说本质区别:

1.结构体和int double一样,属于基本数据类

2.结构体是值类型类是引用类型
因为结构是值类型所以结构之间的赋值可以创建新的结构,
而类是引用类型,类之间的赋值只是复制引用,
通俗一点,class里可以有结构体,而结构体里面只能有数据


3.值类型在堆栈上分配地址引用类型在堆上分配地址
堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。
所以结构处理作为基类型对待的小对象,而类处理某个商业逻辑

回复 使用道具 举报
人家国外的书上就把类称为一种特别的结构体
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马