8yue18
结构体
结构体是一种值类型,用来封装小型相关变量组,不可以继承,所以不可以写 protected
结构体是一种自定义的数据类型,相当于一个复合容器,可以存储多种类型。
结构体由结构体成员构成,结构体成员包含字段,属性与方法。
结构体构造函数声明 关键字strcct
(int float bool 是值类型,本身也是结构体)
结构体与类的区别
相同:
都可以用于数据存储,都包括字段、属性、方法等成员
不同:
1.在结构体中可以声明字段,但是声明字段的时候是不能给初始值的
2.关于构造函数:
a、结构体中,默认构造函数一直存在,而类中如果添加了自定义构造函数必须手动写出默认构造
b、在结构体的构造函数中,必须要为结构体的所有字段赋值.类中不需要
3、创建结构体对象可以不使用 new 关键字.直接声明 1 个变量就可以.但是这样的话,结构体对象中的字段是没有初始值的,所以在使用字段之前必须要为这个字段赋值.
4、结构体是值类型 类是引用类型.
5、结构体不能继承,类可以继承
6、内存存储位置不一样
值类型直接存储其值,引用类型存储对值的引用,值类型存在堆栈上,引用类型存储在托管堆上,值类型转为引用类型叫做装箱,引用类型转为值类型叫拆箱。
格式:sturct 结构体名{结构成员}
获取结构体中成员的值使用点语法
默认初始化一个结构体类型的变量
//new 初始化并分配空间
Vector3 position = new Vector3();
//对结构体变量的成员进行赋值
position.x = 1.34f;
position.y = 20;
position.z = 30;
float a =position.x;
Console.WriteLine (position.x+","+ position.y + ","+position.z+"," );
自定义构造方法
Vector3 localPosition = new Vector3(10,20,30);
Console.WriteLine ("x = {0}",localPosition.x);
结构体 构造函数
pubilc 结构体名(参数列表)
1、在结构体的自定义构造函数当中要为所有的字段进行初始化;
2、不管有没自定义,默认构造函数一直都在
3、不能声明默认的构造函数否则会报错,但是可以声明多个不同的带参数构造函数;
this.当前结构体变量
值类型 和 引用类型的区别
值类型赋值 相当于复制 原来的数不变
引用类型 赋值过后改变都会改变,类似于人和影子的关系
访 问 修 饰 符
访问修饰符的作用:设置了成员的可访问限制,提高代码的安全性。
public 公有访问级别最低 范围最广
private 私有访问级别最高 只有同一类或结构中的代码可以访问,不写的时候默认是protected,
protected 保护访问 只有同一类或结构或者此类的派生类中的代码才可以访问的类型或成员
internal 内部访问:同一程序集中的任何代码都可以访问该类型或成员,但其他程序集中的代码不可以
protecred internal 内部保护访问 访问限制在当前程序集或从包含派生的类型的类别
栈区 :存放函数参数的值,局部变量的值 ,编译器自动分配和释放的空间。内存分配是连续的。
堆区 :程序员分配和释放,若程序员不释放,会在程序结束时自动收回
全局区/静态区:用来存储全局变量或者静态变量,程序结束后由系统释放
文字常量区:常量字符串存放的区域,程序结束后由系统释放
程序代码区:用于存放二进制代码;