Static
- 如果一个成员变量使用了static关键字,那么这个对象不再属于对象自己,而是属于所在的类。多个对象共享同一份数据。多个对象共享同一份数据。
public class Static01 {
public static void main(String[] args) {
Student one = new Student("Jack",19);
one.room="102教室";
System.out.println("姓名:"+one.getName()+",年龄:"+one.getAge()+",教室:"+one.room+",学号:"+one.getId());
Student two = new Student("Mary",18);
one.room="102教室";
System.out.println("姓名:"+two.getName()+",年龄:"+two.getAge()+",教室:"+two.room+",学号:"+two.getId());
}
}
package demo08;
public class Student {
private String name;
private int age;
static String room;
private static int id;
public Student(){
}
public Student(String name, int age) {
this.name = name;
this.age = age;
this.id=++id;
}
public static int getId() {
return id;
}
public static void setId(int id) {
Student.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
- 一旦使用static修饰成员方法,那这就成为了静态方法。静态方法不属于对象,而是属于类。
- 如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用。
- 如果有static关键字,可以直接通过类名称调用。
- 无论是静态变量还是静态方法,都可以通过类名称进行调用:
静态变量:类名称.静态变量;
静态方法:类名称.静态方法();
public class Static03 {
public static void main(String[] args) {
Static02 one = new Static02();
one.Method01();
one.Method02();
Static02.Method02();
}
}
public class Static02 {
public void Method01(){
System.out.println("这是一个成员方法");
}
public static void Method02(){
System.out.println("这是一个静态方法");
}
}