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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wang29901 中级黑马   /  2013-12-25 19:27  /  1232 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 wang29901 于 2013-12-26 11:06 编辑

类与结构的区别

评分

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

查看全部评分

7 个回复

倒序浏览
类:
类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,都指向同一段实际对象分配的内存  类有构造和析构函数
类可以继承和被继承
结构:
结构是值类型在栈上分配(虽然栈的访问速度比较堆要快,但栈的资源有限放),结构的赋值将分配产生一个新的对象。
结构没有构造函数,但可以添加。结构没有析构函数
结构不可以继承自另一个结构或被继承,但和类一样可以继承自接口

评分

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

查看全部评分

回复 使用道具 举报
结构体 值类型
类    引用类型
回复 使用道具 举报
1. Class可以被实例化,属于引用类型,是分配在内存的堆上的。类是引用传递的;
2. Struct属于值类型,是分配在内存的栈上的。结构体是复制传递的。

评分

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

查看全部评分

回复 使用道具 举报
1. 一个是引用类型一个是值类型
2、Class支持继承,可以继承自类和接口,是完全可扩展的,除非声明sealed。否则类可以继承自其它的类的接口,自身也能被继承。

Struct没有继承性,不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确地用sealed声明,但是结构师隐式的sealed。Struct支持接口继承。

评分

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

查看全部评分

回复 使用道具 举报
结构类型和类的重要区别是,结构类型是值类型,类是引用类型。
*结构在内存的一个地方(栈)储存他们自己和他们的内容。
*类储存指向内存中其他某个位置(堆)的引用,而在另一个位置(栈)储存内容。

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 宋清飞 于 2013-12-26 09:49 编辑

       类是一种“引用类型”。创建类的对象时,对象赋值到的变量只保存对该内存的引用。将对象引用赋给新变量时,新变量引用的是原始对象。通过一个变量做出的更改将反映在另一个变量中,因为两者引用同一数据。          结构是一种值类型。创建结构时,结构赋值到的变量保存该结构的实际数据。将结构赋给新变量时,将复制该结构。因此,新变量和原始变量包含同一数据的两个不同的副本。对一个副本的更改不影响另一个副本。  
     类通常用于对较为复杂的行为建模,或对要在创建类对象后进行修改的数据建模。
     结构最适合一些小型数据结构,这些数据结构包含的数据以创建结构后不修改的数据为主。

评分

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

查看全部评分

回复 使用道具 举报
haxyek 金牌黑马 2013-12-26 11:07:01
8#
许庭洲 发表于 2013-12-25 20:23
1. Class可以被实例化,属于引用类型,是分配在内存的堆上的。类是引用传递的;
2. Struct属于值类型,是分 ...

老大,换头像了~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马