在熟悉的事物中循环
——24.2.7
一、static关键字
1.static关键字的介绍以及基本使用
1.概述:static是一个静态关键字
2.使用:
a.修饰一个成员变量:
static 数据类型 变量名
b.修饰一个方法:
修饰符 static 返回值类型 方法名(形参){
方法体
return 结果
}
3.调用静态成员
类名直接调用(不用new对象)
4.静态成员特点:
a.静态成员属于类成员,不属于对象成员(非静态的成员属于对象成员)
b.静态成员会随着类的加载而加载
c.静态成员优先于非静态成员存在在内存中
d.凡是根据静态成员所在的类创建出来的对象,都可以共享这个静态成员
2.static关键字的使用
public class Demo84S09ObjectOriented01Static {
public static void main(String[] args) {
//先给静态成员赋值
Demo85S09ObjectStudent.classRoom = "111";
Demo85S09ObjectStudent s1 = new Demo85S09ObjectStudent();
s1.name = "郭靖";
s1.age = 21;
//s1.classRoom = "308";
System.out.println(s1.name+","+s1.age+","+s1.classRoom);
Demo85S09ObjectStudent s2 = new Demo85S09ObjectStudent();
s2.name = "黄蓉";
s2.age = 26;
//s2.classRoom = "111";
System.out.println(s2.name+","+s2.age+","+s2.classRoom);
}
}
public class Demo85S09ObjectStudent {
String name;
int age;
static String classRoom;
}
3.static成员的内存说明
4.static成员的访问特点
1.在静态方法中能直接访问非静态成员吗?
无法访问 需要先new对象来调用
2.在非静态方法中能直接访问静态成员吗?
能直接访问,但是要观察是否在同一个类中
a.同类:
直接调用
类名调用
b.不同类:
类名调用
3.在静态方法中能直接访问静态成员吗?
a.同类:
直接调用
类名调用
b.不同类:
类名调用
4.在非静态方法中能直接访问非静态成员吗?
a.同类:
直接调用
new对象调用
b.不同类:
new对象调用
总结:
①不管在不在同一个类中,非静态成员都可以new对象调用
②不管在不在同一个类中,静态成员都可以类名调用