1.static的介绍以及基本使用
1.概述:static是一个静态关键字
2.使用:
a.修饰一个成员变量
static 数据类型 变量名
b.修饰一个方法
修饰符 static 返回值类型 方法名(形参){
方法体
return 结果
}
3.特点:
a.静态成员属于类的成员,非静态成员属于对象的成员
b.静态成员会随着类的加载而加载
c.静态成员会优先于对象成员产生
d.凡是根据static成员所在的类创建出来的对象,都可以共享这个静态成员
4.静态成员访问:
类名直接调用
public class Student {
String name;
int age;
static int ban;
}
public class Test {
public static void main(String[] args) {
Student.ban=4033;
Student s1 = new Student();
s1.name="战鹰";
s1.age=3;
System.out.println("姓名:"+s1.name+" 年龄:"+s1.age+" 班级:"+s1.ban);
Student s2 = new Student();
s2.name="张三";
s2.age=15;
System.out.println("姓名:"+s2.name+" 年龄:"+s2.age+" 班级:"+s2.ban);
}
}
static关键字修饰的成员一次赋值,所有根据这个类创建的对象共享这个成员
2.static修饰成员的访问特点
1.在静态方法中能不能直接访问静态成员? 能
a.同一个类中:直接调用
b.不同类中:类名调用
2.在静态方法中能不能直接访问非静态成员?不能
new对象调用
3.在非静态方法中能不能直接访问静态成员? 能
a.同一个类中:直接调用
b.不同类中:类名调用
4.在非静态方法中能不能直接访问非静态成员? 能
a.同一个类中:直接调用
b.不同类中:new对象调用
注意
访问静态成员:能直接调用就直接调用,不能直接调用就类名调用
访问非静态成员:能直接调用就直接调用,不能直接调用就new对象调用
如果某个类中的很多成员都是静态的,所有的静态成员都会随着类的加载而产生,包括没用上的成员
那么所有静态成员包括有用的,没用的都进内存,很占用内存资源,浪费内存资源
一般情况下,只有抽取工具类的时候,我们会将抽取出来的共用的成员定义成静态的,其他的都不是静态的.工具类就是一个类,里面抽取的都是常用的,共用的一些方法