static关键字可以用来修饰类的成员,例如:成员变量,方法,代码块。
静态变量在一个java类中可以使用static关键字修饰成员变量,该变量被称为静态变量。静态变量是被所用示列共享的,可以通过"类名.变量名"来访问。
实例:
public class Student { static String schoolName;//静态变量 String name;//成员变量 public void print(){ System.out.println("我的名字叫:" + name + ",学校是" + schoolName); } public static void main(String[] args) { //实例化student1,student2两个对象 Student student1 = new Student(); Student student2 = new Student(); student1.name = "张小明"; student2.name = "张小张"; //通过类名.变量名赋值静态变量 Student.schoolName = "北京大学"; student1.print(); student2.print(); } }运行结果: 从结果可以看出来静态变量只赋值一次被两个实例对象共享该变量。这是因为静态变量在内存中有切只有一份。注意:static关键字只能修饰成员变量不能修饰局部变量。
public class Student { static String schoolName;//静态变量 String name;//成员变量 public void print(){ static int age = 10;//编译会报错 System.out.println("我的名字叫:" + name + ",学校是" + schoolName); } 静态方法我们在类中定义方法时,在方法前面使用static关键字修饰,我们称这种方法为静态方法。静态方法的调用是不需要对象的,调用方式是"类名.方法名"。
实例:
public class Example01 { public static void main(String[] args) { Person.print();//通过类名.方法名调用静态方法 } } class Person{ //定义一个静态方法 public static void print(){ System.out.println("我是静态方法....."); } }注意:在一个静态方法中只能访问被static修饰的成员,原因是没有被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建任何对象。
静态代码块在java中被大括号围起来的代码就是被称作为代码块。用static关键字修饰的代码块称为静态代码块。当类在加载的时候,静态代码块就会执行,由于类只加载一次,因此静态代码块只会执行一次。
实例:
public class Example02 { public static void main(String[] args) { //创建person1,person2两个对象 Person2 person1 = new Person2(); Person2 person2 = new Person2(); } //静态代码块 static { System.out.println("测试静态代码块执行了......"); } } class Person2{ static String name; //静态代码块 static { name = "张小张"; System.out.println("Person类中的代码块执行了......"); } }运行结果: 加油吧!!!