在类中,类的方法也可以分为实例方法和类方法。方法类型前面不加关键字static关键字修饰的是实例方法,加static关键字修饰的是类方法(静态方法)。
如:Class A {
Int a;
Float max(float x,float y) {
…//实例方法
}
Static float jerry(){
…//类方法
}}
类中实例方法和类方法的区别:
1) 类方法因为是在创建对象之前就已经生效了,这时候实例变量还没有被分配内存空间,只有类变量被分配了内存空间,所以类方法只能调用被分配内存空间的变量即类变量;
2) 实例方法是在创建对象之后才开始生效的,这是无论是类变量还是实例变量都已经被分配了内存空间,所以实例方法生效后可以调用类变量和实例变量.
3)实例方法只能被对象调用,实例方法可以操纵实例变量和类变量。
4)类方法只能操纵类变量,即使没有创建任何对象,该种类型的方法也可用类名调用,因为它是属于类的。
一句话:类方法和实例方法就是在其占用的空间时间的长短,类方法长,实例短。Static函数在内存中只有一份,实例方法在每一个被调用中维持一份复制品。
Static全局变量与普通全局变量的区别是: static全局变量只初始化一次,防止在其他文件单元中被引用。比如,一个工程中有多个源文件,而其中一个源文件中定义了一个static的全局变量,那么它只在该源文件中有效,在该工程中的其它源文件中调用它就是无效的,它的作用域只在被定义的源文件中才有效。
Static局部变量和普通局部变量的区别是:static局部变量只被初始化一次,下一次依据上一次结果值。如:void lia(){ static int i=0; i=i+1;} 如果该函数被调用了三次,那么主函数输出显示i=3;如果没有static修饰i,lia()被调用三次后,i的值一样是1.
1. 程序代码:
2.
参考文献:
凯丽8568:http://blog.163.com/qiaojingxuan@126/blog/static/99912032009112241017127/
Java程序设计,张跃平,P66.
Handbook For C/C++ Software Engineering Interview.