代码改变世界

结构与类的区别

2013-07-05 22:49  昨日书  阅读(333)  评论(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来的)