目录
1用于属性的时候,它能帮组我们做数据的共享(当你这个类下面的所有对象都需要用到这个属性时,都可以调用这个静态的属性)
static
一旦使用了static关键字,那么这样的内容不再属于对象自己,而是属于类的,所以凡是本类的对象,共享相同的内容。
static的作用:用来做内存管理
1用于属性的时候,它能帮组我们做数据的共享(当你这个类下面的所有对象都需要用到这个属性时,都可以调用这个静态的属性)
static String name;//静态属性name
例如,小豆班的小朋友们可以写成以下学生类和学生对象:
学生类:姓名、性别、年龄、学号、所在教室
学生对象:
姓名 | 性别 | 学号 | 班级 | 班主任 |
胡图图 | 男 | 1 | 小豆班 | 健康哥哥 |
小美 | 女 | 2 | 小豆班 | 健康哥哥 |
刷子 | 女 | 3 | 小豆班 | 健康哥哥 |
对于姓名、年龄、学号来说,每个对象都要自己独立的数据。但是对于所在班级和班主任来说,这应该是多个对象共享同一份数据才对。
因此,只在类当中保存唯一一份,那所有本类对象共享同一份。
在这个数据共享中,当小豆班升班时可以直接修改班级小豆班,不需要一个个学生对象中去修改。
2、用于方法的时候,可以帮组我们更好地封装
意义:保证数据的安全
//被static修饰的方法称为静态方法
public static void fangfa(){
}
Fruit.java中代码如下:
public class Fruit {
private String name;
private double price;
private int store;
private Fruit() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getStore() {
return store;
}
public void setStore(int store) {
this.store = store;
}
public static void show(){
System.out.println("我是静态的show方法");
}
}
FruitTest.java
public class FruitTest {
public static void main(String[] args) {
// Fruit fruit = new Fruit();
// fruit.setName("苹果");
Fruit.show();
}
}
3、注意事项:
1、被static修饰的方法建议由类名直接调用
2、static里面不能用this
3、被static修饰的属性或方法是随着类加载而存在(类加载的时候,对象未必已经有了)