java入门–static
静态变量
静态变量与类同时加载,不能通过类访问非静态变量,静态变量在类的内存中有一个,可以被类的所有实例共享。
静态变量可以使用类或者对象访问,非静态方法只能用实例化对象访问
静态方法
与静态变量相似,静态方法可以在类中直接调用,非静态方法必须实例化对象调用,非静态方法可以直接访问类中的静态方法
package com.li.oop.demo01;
public class Student {
private static int age;//静态变量
private double score;//非静态变量
public void run(){
go();//非静态方法可以直接访问类中的静态方法
}
public static void go(){
}
public static void main(String[] args) {
Student s1 = new Student();
s1.run();
s1.go();
// run();//非静态方法不可以在类中直接调用,会报错
//Non-static method 'run()' cannot be referenced from a static context
go();//静态方法可以在类中直接调用
}
}
静态代码块
package com.li.oop.demo01;
public class Person {
{//匿名代码块创建对象时自动执行,在构造方法前执行
System.out.println("匿名代码块");
}
static {//静态代码块永久只执行一次,最先执行
System.out.println("静态代码块");
}
public Person() {
System.out.println("构造方法");
}
public static void main(String[] args) {
Person p1 = new Person();
System.out.println("*******************");
Person p2 = new Person();
}
}
/* 运行结果
静态代码块
匿名代码块
构造方法
*******************
匿名代码块
构造方法
*/