1.静态static关键字修饰成员变量
如果一个成员变量使用了static关键字,那么这个变量将不属于对象自己,而是属于所在的类。多个对象共享同一份数据。
例如:
定义了一个类 Student,用static修饰了年龄,那么在调用Student这个类的时候,只需要进行一次赋值,以后使用可直接调用.
public class Student {
String name;
static int age;
public Student(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Static {
public static void main(String[] args) {
Student s1 = new Student("张三");
s1.age=23;
System.out.println("我是"+s1.getName()+"今年"+ s1.age+"岁");
Student s2 = new Student("李四");
System.out.println("我是"+s1.getName()+"今年"+ s2.age+"岁");
}
}
2.静态static关键字修饰成员方法
一旦使用static修饰方法,那么这就成为了静态方法,静态方法不属于对象,而属于类。
如果没有static关键字修饰,那么必须首先创建对象,然后通过对象才能使用它。
如果有static关键字修饰,那么不需要创建对象,可直接通过类名称来直接调用。
无论是成员变量,还是成员方法。如果有了static关键字修饰,都推荐使用类名称进行调用。
静态变量:类名称.静态变量;
静态方法:类名称.静态方法();
public class Myclass {
public void method(){
System.out.println("这是一个普通成员方法");
}
public static void methodstatic(){
System.out.println("这是一个静态修饰方法");
}
}
public class MyclassStatic {
public static void main(String[] args) {
Myclass myclass = new Myclass(); //先创建对象才能使用没有static修饰的内容及方法
myclass.method();
//静态方法可以使用对象名调用,也可以直接通过类名称来调用
Myclass.methodstatic();//推荐
myclass.methodstatic();//不推荐 这种写法在编译后也会编译成 类名称.静态方法名
}
}
注意事项:
1.静态只能访问静态,不能访问非静态。(在内存中先加载静态内容,后加载费静态内容)非静态可以访问静态。
2.静态方法不能使用this(this代表当前对象,通过是调用的方法,谁就是当前对象)