STATIC:
1.可以声明变量,加载时初始化变量,并赋值;
2.声明一个方法,加载时初始化该方法的引用;
3.声明一个类,加载时初始化该类中的变量和语句,此类中只能有变量和语句,不能有方法。
在Java中你要调用一个class某一个方法时
你必须 你显示列化它
或者你把它申明为 静态的(static)
SUN公司的一道测试题:
public class X{
public static void main(String[] args){
String s=new String("Hello");
modify(s);
System.out.println(s);
}
public static void modify(String s){
s+=" World";
}
}
what is the result?
分析一下:
1.执行main,定义了字符串s 并赋值hello
2.调用方法modify(变量S) 我们注意到 modify方法是静态的,即他在内存中地址是固定的。也就是说不管上面的方法引用modify时 传过来的变量S是多少,对于modify方法都不重要,因为他的作用是把自己的S变量改变。
而外面的 引用 不起任何的作用;
把这个题目改改就好理解了:
public class X{
public static void main(String[] args){
String s=new String("Hello");
modify(s);
System.out.println(s);
}
public static void modify(String s){
s+=" World";
System.out.println(s);
}
}
result: HelloWord
Hello
3.有一点需要注意的是,当传过来的变量S是个数组,前面定义了S[0],传的是S(起始地址)这种修改变的有意思了,也变得有意义了。modify才真正的有用