静态成员的基本概念
static 关键字 用static修饰的成员变量 方法 属性等 称为静态成员
直接用类名点出使用
自定义静态成员及使用
自定义静态成员
class Test
{
public const float G=9.8f;
public static float PI = 3.1415926f;
public float a;
public static float CalcCricle(float r)//static
{
Test t = new Test();
Console.WriteLine(t.a);
return PI * r * r;
}
public float Test6()
{
Console.WriteLine(PI);
return PI;
}
使用
Console.WriteLine(Test.CalcCricle(3));
Console.WriteLine(Test.PI);
Test t = new Test();
Console.WriteLine(t.PI);错误 静态成员不能用类对象点出使用
为什么可以直接点出来使用
程序中是不能无中生有的
我们要使用的对象 变量 函数 都是要在内存中分配内存空间的
之所以要实例化对象,目的是分配内存空间 ,在程序中产生一个抽象的对象
静态成员的特点
程序开始运行时,就会分配空间 ,所以能直接使用
静态成员和程序同生共死
只要使用了它,直到程序结束时内存空间才会被释放
所以一个静态成员就会有自己唯一的一个"内存小空间"
这让静态成员就有了唯一性
任何地方使用都是用的小房间里的内容,改变了他就是改变了小房间里的内容
静态函数中不能使用非静态成员
成员变量只能将对象实例化处理后,才能点出来使用,不能无中生有
不能直接使用非静态成员 否则会报错
非静态函数可以使用静态成员
public float Test6()
{
Console.WriteLine(PI);
return PI;
}
静态成员对于我们的作用
1常用唯一变量的声明
2方便别人获取的对象声明
静态方法
常用的唯一方法声明
常量和静态变量
const可以理解为特殊的static
相同点
他们都可以通过类名点出使用
不同点
1const必须初始化 不能修改 static没有这个规则
2 const只能修饰变量 static可以修饰很多
3 const一定是写在访问修饰符后面的,static没有这个要求