学习java过程中,不得不说一下static关键字.
1.修饰变量(静态变量)
1.1)与final一起使用
static final String path = "这是一个常量";
代表一个不可改变的常量
1.2)单独使用
public class Teacher{
static String name = "我是老师";
public static void main(String[] args){
System.out.println(name); //我是老师
}
}
public class Student{
static private String name;//类变量
private String age;
....
}
可以通过类名.变量名调用
Student.name
代表一个静态变量,也叫做类变量,只有一份,随着类的加载而加载到内存里的方法区,各个方法共享.
2.修饰方法(静态方法)
public class Animal{
private String dog;
private String sex;
public static void eat(){
System.out.println("这是一个静态方法");
}
}
Animal.eat();//这是一个静态方法
通过类名调用,一般用来做工具类;例如java.lang包中Arrays具体类…
备注:
1.在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。
2.在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的
3.修改代码块(静态块)
public class Phone{
static{
private String brand = "xiaomi";//品牌
private String color = "gloden";//颜色
private String width = "200";//宽度
private String height = "700";//高度
}
......
}
修改静态代码块,用来初始化一下通用数据,每个只有一份