结构与类的区别
2013-07-05 22:49 昨日书 阅读(334) 评论(1) 编辑 收藏 举报传说中的结构与类
在高级语言编程里面我们都知道数据存储结构有多种,比如单个的简单数据类型int、string、char,或则是使用数组存储多个具有相同数据类型和语义的数据信息。但是在实际操作中我们操作的数据类型有很多,用以上两种很多难于解决,于是就引出了今天要讲的传说中的结构。说到结构我们脑海中是不是有一个“类”的概念在飘,没错结构和类十分的相似,结构和类一样可以包含数据和方法的定义,可以包含构造函数、常量、变量、方法、属性等等。但是它们也存在这些许不同,包括用法、定义以及数据类型各个方面。
结构与类的不同
1.结构的定义
1 [修饰符] struct [结构名] [ : 接口名] 2 { 3 //结构成员 4 }
2.结构的构造函数
1 public struct Test 2 { 3 public Test() 4 { 5 //此方法编译不会通过,提示错误消息“结构不能包含显示的无参数构造函数” 6 } 7 }
3.结构的成员变量赋值
1 struct Test 2 { 3 static int x = 1; 4 static int y = x + 5; 5 //以下两句编译错误,在结构中可以给结构的静态变量赋初值,但不允许给结构的一个实例变量赋初值 6 int m = 2; 7 int n = m + 2; 8 }
3.创建对象的方法
- 使用new运算符来创建结构对象
- 直接用结构类型的变量来创建结构对象
4.继承
- 不允许结构从另外一个结构或类继承
总结
- 结构是一种值数据类型,而类是一种引用类型
- 在结构中不允许定义无参数的构造函数(编译不会通过)
- 在结构中可以给结构的静态变量赋初值,但不能给结构的一个实例变量赋初值
- 创建结构对象可以不使用new关键字,直接用结构类型的变量来创建
- 不允许继承(可以将结构看成是密封的类)
PS:在实际的应用中,如果数据成员占用的内存不超过16个字节,使用结构;否则考虑使用其它,包括类。(这句是我在百度copy来的)