我们通常需要在类外的某段代码 访问 一个类的变量
通常第一种方法:
更改访问权限为:public
虽然够用了,但是有更好的方法
第二种是使用属性【prop】【也称之为字段】
属性可以当成变量,可以封装成员变量。
通过这种封装,可以更好控制字段的访问时间和访问方式。
例如
experience 字段,在player类中。
想在类外访问它,需要创建一个属性:
属性的工作原理如下:
1 指定访问修饰符 public
2 指定类型,后跟属性名称【最好同字段名,大写开头】 int Experience
3 加上大括号,类似函数写法,括号内输入属性的访问器 { }
4 一个属性有两个访问器【引用属性 以及 分配属性】 get{} set{}
5 【两个关键字】 get 内返回封装的字段,set 内使用value关键字分配给字段
——————————————————————————————————
以上是实现属性所需要的操作
字段的优势:
get 是只读,移除set访问器
set 是只写,移除get访问器
两者均有是可读写,访问器均存在
访问器内可以写入限制或者其他函数
属性的快捷操作:
vs中快速创建属性,打出prop双击tab键即可快速创建属性
public class Player
{
//成员变量可以称为字段
private int experience;
//Experience 是一个基本属性
public int Experience
{
get
{ //其他一些代码
return experience;
}
set
{ //其他一些代码
experience = value;
}
}
//Level 是一个将经验值自动转换为
//玩家等级的属性
Public int Level
{
get
{
return ecperience/1000;
}
set
{
experience = value * 1000;
}
}
//这是一个自动实现的属性的
//示例
public int Health{get;set;}
}
public class Game : MonoBehaviour
{
void Start ()
{
Player myPlayer = new Player();
//属性可以像变量一样使用
myPlayer.Experience = 5;
int x = myPlayer.Experience;
}
}