结构体

结构体:一种自定义数据类型
1.定义结构体的关键字是:struct
2.结构体可以写到命名空间外部
3.结构体定义在类内部和外部的情况都可以:
  A.字段定义为静态时,在main()方法中用结构体名.变量名
  B.字段定义为非静态时,在main()方法中,先实例化结构体,再用实例化对象.变量名
  C.结构体也可以有构造函数,但是结构体中不能包含显式定义的无参构造函数
  D.在结构体中使用构造函数时,必须为所有的字段赋值,否则会报错。但是类中不需要。
  E.结构属于值类型,不需要实例化
  F.结构不能被继承和不能是抽象的
  G.结构中的有参构造函数必须初始化它的所有字段
  结构一般用在:不同系统之间的数据传递的载体或者用在效率要求极高的软件中,比如游戏程序。(因为值类型直接分配内存且效率比引用类型要高)

结构和类的区别:
1.类型不同。结构是值类型,类是引用类型
2.存储位置不同。结构在堆栈中,类在堆中(值类型定义后就会分配内存,而引用类型是动态分配内存的)
3.无参构造函数有差异。在结构中不管你是否声明了有参构造函数,它会自动创建无参构造函数(结构中无参构造函数不能显式定义,而是系统自动生成)。但是类中当你定义了有参或无参构造函数后,系统不会再为你生成无参构造函数。

你可能感兴趣的:(职场,结构体,休闲)