成员方法之间可以互相访问 静态方法只能访问静态方法 成员方法能访问静态方法 和jvm类与对象的加载顺序有关系 类是先创建的 成员方法需要对象 静态方法先出
static
private 其他地方不能被访问
静态方法
所有的静态变量用 类名调用 不用对象名调用
工具类的特征
工具类的作用
- 与对象无关,为了方便使用,类中只有静态方法
- 以Util(s)结尾
- 构造器私有化
- 工具类
public class FruitUtil {
private FruitUtil(){
}
public static void weight(double weight,double price){
System.out.println(weight*price);
}
}
- 测试类
public class Test {
public static void main(String[] args) {
FruitUtil.weight(12.3,12);
}
}
javabean
- 通过面向对象封装 设置getset方法 形成一类标准的类
静态变量
- 内存图
- 注意:警告
- javabean类
public class Room {
/**

private String roomKey;
private String owner;
//8.所以现在我们把publicKey用static修饰
//9.public String publicKey="123345";
public static String publicKey="123456";
public String getPublicKey() {
return publicKey;
}
public String getRoomKey() {
return roomKey;
}
public void setRoomKey(String roomKey) {
this.roomKey = roomKey;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
}
- 测试类
public class Test {
public static void main(String[] args) {
Room room1=new Room("123456","包小姐");
Room room2=new Room("111111","李小姐");
//10.这边的警告是为了让我们不要用对象访问static变量
//11.我们最好用类来访问静态成员变量
//12.room1.publicKey="111111";
Room.publicKey="1234";
//13.这里我们改了static修饰的变量
//14.因为他是共享的所以打印 room2.publicKey是一样的
//1.我在room1修改publicKey
//2.但是我打印了room2的publicKey
//3.没有发生改变
//4.因为此时publicKey还没有被static修饰
//5.所以导致他不是类共享的
//6.我们要求他是类共享的
//7.所以需要加上static修饰符
//15.这里我们把room2.publicKey改成Room.publicKey
System.out.println(Room.publicKey);
}
}