修饰符-----static(静态)
static可以用来修饰方法 修饰属性 被sta修饰的属性可以成为 静态属性 静态变量 类变量
语法: 访问修饰符 static 数据类型 变量名;
***注意事项***访问修饰符 与static的位置 没有先后
被static修饰的属性 是所有对象共有的 是类的变量 跟创建多少对象没有关系 非静态变量每一个对象独有一份静态变量让每一个对象共享
调用语法:类名.属性名;引用名.静态属性名;
内存分析
案例
public class TestStudent{
public static void main(String[] args){
Student s=new Student();
s.a=6;
s.b=10;
System.out.println(s.a);
System.out.println(s.b);
Student s2=new Student();
System.out.println(s2.a);
System.out.println(s2.b);
}
}
class Student{
int b;
static int a=5;
}
static可以修饰成员方法 被static修饰的方法称为***静态方法***
语法:访问修饰符 static 返回值类型 方法名(形参列表){}
访问修饰符 与static没有位置先后
使用:类名.方法名(实参);
对象名.方法名(实参);
继承关系:父类中的静态方法可以被子类继承
用法:子类类名.父类静态方法名(实参);
注意:如果子类覆盖父类中的静态方法,则子类覆盖的方法也必须是静态的(静态方法只能被静态方法覆盖);以父类型的引用调用静态方法,直接访问父类中静态方法,没有体现多态的覆盖结果。
整理
静态方法不能直接访问本类的非静态成员(实例变量 非静态方法)
静态方法中可以直接访问本类的静态成员(静态变量+静态方法)
非静态方法可以直接访问本类的静态成员与费静态成员
静态方法中不能出现this super
应用
应用到工具类为了方便调用,通常将工具类中方法定义为静态方法。 例如 java.util.Arryas.sort(数组名);