结合自己理解和老师的教学编写https://blog.csdn.net/NCZ9_/article/details/83855838
一、属性
概念:
字段:又称为:“成员变量”,一般在类的内部做数据交互使用。
属性:是字段的一种自然扩展,是一个与类或对象相关联的命名。作用:保护字段,对字段取值与赋值进行限定。
语法格式:
1、代码示例:
public string Game
{
get;
set;
}
访问修饰符 数据类型 属性名
{
get; //读
set; //写
}
2、代码示例:
访问修饰符 数据类型 字段名;
访问修饰符 数据类型 属性名
{
get { return 字段名; } //读
set { 字段名 = value; } //写
}
private string _game; //字段
public string Game //属性(含有代码块)
{
get //get访问器
{
return _game; //读取(返回_name值)
}
set //set访问器
{
_game = value; //为_name赋值
}
}
二、静态与非静态
关键词:static
在类中可以定义为静态的成员有:字段,方法,属性,运算符,事件,构造函数等,不可以是索引器,析构函数。
静态成员与非静态成员/实例成员区别:
1、
静态成员属于类所有,为各个类的实例所公用。
非静态成员属于类的实例所有
2、
静态成员可以直接使用,不必创建对象,语法格式:类名.静态成员;
调用非静态成员,要先实例化类。
3、静态方法与非静态方法
静态方法只能访问类中的静态成员;
非静态方法可以访问类中的任何成员
4、
静态成员变量存储位于程序的全局变量存储区,其作用域限制为类内部,并且在整个程序运行期间只在内存中拥有一个存储位置,不会拷贝不会复制,只是一个;
非静态成员变量存储位于对象的变量存储区,多个对象拥有多个变量的存储,只隶属于自己的的对象。
5、
静态成员只要分配了空间则在整个程序运行期间,它都是存在的,只有程序关闭之后,它的内存才会被GC回收器收回;
类的非静态成员的生存周期跟随于隶属于对象的生存周期,对象消亡则非静态成员就会被回收。
静态类与非静态类区别:
1、
静态类仅包含静态成员。
2、
静态类不能使用 new 关键字创建静态类的实例。
3、
静态类不能包含实例构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。
4、
静态类是密封的,因此不可被继承。
5、
静态类不能使用abstract或sealed修饰符。
6、
静态类不能指定任何接口实现。
7、
静态类的成员不能有protected或protected internal访问保护修饰符。