zoukankan      html  css  js  c++  java
  • 结构与类的区别

    传说中的结构与类

    在高级语言编程里面我们都知道数据存储结构有多种,比如单个的简单数据类型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来的)

  • 相关阅读:
    Docker
    docker
    Go
    Docker4Windows -- 从外部(非本机host)访问 由docker container运行的程序
    Unable to resolve target 'android-9'
    win7中VS2010中安装CSS3.0问题解决方法
    修改vs2005,vs2008,vs2010调试默认浏览器
    Android SDK Content loader has encountered a problem” “parseSdkContent Failed ”
    解决parseSdkContent failed java.lang.NullPointerException错误
    50个Android开发人员必备UI效果源码[转载]
  • 原文地址:https://www.cnblogs.com/vchenpeng/p/3174588.html
Copyright © 2011-2022 走看看