当前位置: 代码迷 >> 综合 >> 【C#】面向对象(10)——常量与静态成员
  详细解决方案

【C#】面向对象(10)——常量与静态成员

热度:40   发布时间:2023-10-01 20:54:31.0

1、const常量。常量名要大写。一定不会变化的值才能声明为常量。

(定义)声明格式:const  常量类型  常量名=常量值;  如:

const  double  PI=3.14;

常量赋值以后就不能再改变它的值。如:

PI=2;  //错误的。因为上面已经赋值过了。

默认规则:常量名一般全部大写,如:PI、SAG、NAME等。

因为常量对于任何的对象的值都不变,所以不需要通过对象来调用,直接通过类名来引用。

每个变量都有自己的生存期,但常量没有生存期的说法,常量从声明的那一刻开始就会一直存在于自己所在的区域里。

PI其实不用自己定义,直接Math.PI;就可以使用了,如:

double  d=Math.PI;  //PI=3.14159

 

2、全局变量。static类变量。readonly。

3、不用new就能用的方法:static方法,static方法其实就是普通函数。static类,即静态类。静态类不需要对象,所以静态类中不能有普通的类成员。static成员,在整个程序中都可以调用静态成员,调用方法:类名.静态成员名。

4、在static成员中可以调用其他static成员,但是不能调用非static成员。在非static成员中可以调用static成员。string的static成员和非static成员。不需要记,分析是否有状态就行。

5、静态类,不能被new的类就是静态类。静态类一般用来实现一些函数库。***Helper,SqlHelper,PageHelper

6、sealed类,密闭类。sealed不能被继承。

 

7、static成员,静态成员,起到全局变量的作用。

引用静态成员的时候,直接“类名.成员名”即可。

调用非static成员必须通过对象(实例)

class  A
{static  public  void  M1()  //static和public的顺序可以互换,这个没有影响。{}
}

8、调用非static方法时,变量名.被调用的方法名,如①。

调用static方法时,类型名.被调用的方法名,如②、③。②和③中的被调用方法名,也可以是自己定义的static方法。

string  s=”aaa”;
s.Trim();  //①
string.Format();  //②
string.Join();  //③

9、static类,静态类,无法被new的类。静态类中不能声明非静态成员。Math是静态类。

静态类的声明格式:static  class  类名。如:

static  class  A
{
}

10、sealed类,密闭类。sealed密闭类不能被继承,主要基于安全考虑。密闭类可以继承别的类,但是不能被继承;即密闭类可以做子类,但是不能做父类。

面试题:不能创建一个从string类继承的类,因为string是sealed

sealed  class  B
{
}