一. 用法: 对于static的意义与用法,和C++一样,最重要的有以下几点:
1. 作变修饰符,可以用于修饰函数和变量;
2. 用于变量时,只定义一次;
3. 一个类的静态函数只可以引用这个类的静态数据成员,而不能引用这个类的非静态数据成员;
同样, 一个类的静态函数只可以引用这个类的静态成员函数,而不能引用这个类的非静态成员函数。
二. 例子:
class Example{
String str=new String("good");char[]ch={'a','b','c'};
static int i = 0;
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
System.out.print(ex.ch);
test1();
}
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
public void s(){
}
public static void t(){
}
public static void test1() {
// str = "a"; 错误: 无法从静态上下文中引用非静态 变量 str
//s(); 错误: 无法从静态上下文中引用非静态 方法 s()
t();
i++;
}
}
三. 测试结果与说明:
/*
一. test result:
good and gbc
二. 说明:
1. static的用法
2. 数组作为函数参数时,在函数内部的可以改变实参的值。
abc ==> gbc
*/