static是什么?
static 关键字是静态的意思,是java中的一个修饰符,可以修饰成员方法,成员变量。
static有什么特点?
1、staic所修饰的成员被类的所有对象共享
是我们判断是否使用静态关键字的条件,某个数据你在一个对象中修改,其他对象也能获取到变化。
public class Student {
public String name = "小美";
public static String describe = "非常漂亮!";
public void eat() {
System.out.println("我喜欢吃大饼!");
}
public static void learn() {
System.out.println("我喜欢学习java!");
}
}
public static void staticMethod() {
System.out.println("----------------------未对变量修改前-----------------------------------");
//新建对象1
Student stu1 = new Student();
System.out.println("我是对象1中的静态变量:"+stu1.describe);
System.out.println("我是对象1中的非静态变量:"+stu1.name);
//新建对象2
Student stu2 = new Student();
System.out.println("我是对象2中的静态变量:"+stu2.describe);
System.out.println("我是对象2中的非静态变量:"+stu2.name);
//修改对象1中的成员变量
stu1.describe+="对象1给我添加描述为《非常苗条》";
stu1.name+="对象1给我改名为《小美美!》";
System.out.println("-----------------对象1修改了name和describe--------------------------");
System.out.println("我是对象1中的静态变量:"+stu1.describe);
System.out.println("我是对象1中的非静态变量:"+stu1.name);
System.out.println("我是对象2中的静态变量:"+stu2.describe);
System.out.println("我是对象2中的非静态变量:"+stu2.name);
}
2、随着类的加载而加载,优先于对象存在
对象需要类被加载后,才能创建
3、可以通过类名和对象名对其修饰的成员进行调用
使用static的时候需要注意什么?
1、静态方法只能访问静态的成员
2、非静态方法可以访问静态的成员,也可以访问非静态的成员
3、静态方法中是没有this关键字