为什么要使用static 关键字
Java中的static关键字,用于修饰类的成员,如成员变量、成员方法、及代码块等,被static修饰得成员变量、方法可以直接访问,而不需要预先构造类的实例化对象。
static修饰的成员变量叫静态成员变量、也叫静态域、类变量等 分为静态常量(被static final修饰)及静态变量.
在一个Java类中可以使用static关键字来修饰成员变量
静态成员变量被类的所有对象共享,可以使用“类名.变量名”的形式来访问
static(静态的) 如果你通过一个对象去修改了static修饰的成员变量、其他的对象里的这个成员变量的值也被修改了,不像非静态成员变量的值被一个对象调用修改后,在被其他对象调用是还是未被修改的值。
package chapter;
public class chapter {
private static int sum=1;
public static void main(String[] args) {
chapter cha=new chapter();
chapter cha1=new chapter();
System.out.println(cha.sum);
System.out.println(cha1.sum);
cha.sum=2;
System.out.println(cha.sum);
System.out.println(cha1.sum);
}
}
static关键字只能用于修饰成员变量,不能用于修饰局部变量,否则会报错
package chapter;
public class chapter {
private static int sum=1;
public void src() {
static int suim=1;//该行代码会报错
}
静态方法
被static修饰的方法称为静态方法
static public void src(){
int sum=1;
}
同静态成员变量一样,静态方法可以使用“类名.方法名”的方法来访问,也可以通过类的实例对象访问
在一个静态方法中只能访问static修饰的成员变量,原因是没有被static修饰的成员需要先创建对象才能访问,而静态方法被调用时可以不创建任何对象
使用规则:
可以调用其他静态方法;只能访问静态成员变量;不能使用super或this关键字;不能直接访问所属类的成员变量和成员方法(就是不带static的成员变量和成员方法)只能访问所属类的静态成员变量和静态方法。
静态代码块
在Java中使用一对大括号包围起来的若干代码被称为代码块
使用static修饰的代码块为静态代码块
class chapter
static {
system.out.println("这是一块静态代码块")
}
当类被加载时,静态代码块会被执行,并且只会被执行一次。
在程序中,经常使用静态代码块来对类的成员变量经行初始化