static关键字的作用
1. 静态成员变量的语法特点
2. 静态函数的语法特点
3. 静态代码块的语法特点
1. 静态成员变量的语法特点
<1>静态成员变量可直接通过类名调用
<2> VS
静态成员变量值共用一个
Person.java
public class Person{
static int i;
}
Test.java
public class Test{
public static void main(String args []){
Person p1 = new Person();
Person p2 = new Person();
Person.i = 10 ;
System.out.println("p1的i的值是"+ p1.i );
System.out.println("p2的i的值是"+ p2.i );
System.out.println("Person类的静态成员函数值是"+ Person.i ); //<1>静态成员变量可直接通过类名调用, 也可以用对象名调用
}
}
2. 静态函数的语法特点
<1>静态函数可直接通过类名调用
<2>静态函数中不能引用非静态成员变量
静态函数中不能使用 this
Person.java
public class Person{
static int i;
static void talk(){
System.out.println("my age is" + i );
}
}
Test.java
public class Test{
public static void main(String args []){
Person.talk();
}
}
Tips: 在int i 之前加上 static 即可
3. 静态代码块的语法特点
主要是为了静态成员变量赋初值
Person.java
class Person{
static{
System.out.println("我是静态代码块");
}
static int i ;
static void talk(){
System.out.println("my age is " + i);
}
}
Test.java //跟上面不变
static 静态块在类加载到虚拟机中就执行了, 在Test的main函数之前执行