静态成员或者方法都是在前面加上static 关键字。

静态方法与普通方法的不同:

     静态方法可以直接通过类名来调用;普通方法必须先对象实例化;可以理解为静态方法是类所有的。类的静态方法,静态变量是在类装载的时候装载的。但是要特别注意,类的静态变量是该类的对象所共有的,即是所有对象共享变量。所以建议尽量少用静态变量。尽量在静态方法中使用内部变量。

         使用非常频繁的方法都使用静态方法可以提高系统性能,但这样程序编译运行时就占用了系统资源。静态的属性和方法在程序启动的时候,就全部装入内存的,而不管这些方法、属性以后有没有用到。即使是没有人再访问程序,这部分内存仍然不会释放还有就是。

          所有访问者看到的静态属性的数据几乎都是一样的。这种特性,如果用在固定数据中,那不会有太大问题,比如连接字符串之类的  静态方法是属于类的,不是属于某一个对象的,因而调用它不需要实例化;静态方法和静态数据成员相当于共享变量。为该类的所有对象所共有,因而在需要共享数据时,定义这种类型时很好的选择。一但定义一个类后(不一定要实例化对象)该类的所有静态成员就载入内存(并不是程序启动,就装入内存,没有定义该类时它不会载入内存) 静态成员的作用域与它所属的类的作用域相同。



         静态数据成员和普通数据成员区别较大: 

 

     (2)因为类的静态数据成员的存在不依赖与于任何类对象的存在,类的静态数据成员应该在代码中被显示的初始化,一定要在类外进行。类定义只是在描述对象的蓝图,在其中指定初值是不允许。

(3)外部访问类的静态成员只能通过类名来访问。  

     (4)上面静态成员函数无法直接访问普通数据成员(可以通过类的指针等作为参数间接访问),而类的任何成员函数都可以访问类的静态数据成员。  

     (5)静态成员和类的普通成员一样,也具有public、protected、private3种访问级别,也可以具有返回值、const 修饰符等参数。


     全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区;


      而函数不是对象,它代表的是一段代码,位于代码段,静态函数也不例外。  而不是位于静态存储区!