1、凡是有static关键字修饰的变量或方法,它是不属于对象的,,而是属于本类的,可以通过【类名.变量名 】或 【类名.方法名】使用
//无论是成员变量,还是成员方法。如果有了static,都推荐使用类名称进行调用。
静态变量:类名称.静态变量
静态方法:类名称.静态方法()
//创建一个学生类
public class Student {
private String name;
private int age;
//创建静态变量room
static String room;
}
//创建对象
Student one=new Student();
//也可以对象调用static变量对其赋值,但是不推荐使用
one.room="101教室";
//一般通过本类来调用,或对其赋值
Student.room
2、静态方法可以调用可以使用static变量,但是不能使用非静态变量
private int age;
static String room;
public static void max(){
System.out.println(room);//正确
//出错,静态方法不能调用非静态变量
System.out.println(age);
}
3、非静态方法可以使用静态变量,也可使用非静态变量
//原因:因为在内存当中是【先】有的静态内容,【后】有的非静态内容。
//“先人不知道后人,但是后人知道先人。”
private int age;
static String room;
public static void max(){
System.out.println(room);//正确
System.out.println(age);//正确
}
4、静态方法中不可使用this关键字
public static void max(){
System.out.println(this);//会报错
}
//原因:
this代表当前对象,通过谁调用的方法,谁就是当前对象
如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它。
如果有了static关键字,那么不需要创建对象,直接就能通过类名称来使用它。