Static修饰的数据成员
用static修饰符修饰的数据成员是不属于任何一个类的具体对象,而是属于类的静态数据成员
它被保存在类的内存区的公共存储单元中,而不是保存在某对象的内存区中。因此一个类的任何对象访问它时,存取到的都是相同的数值
访问方式常用类名访问
静态数据成员仅在类加载时进行初始化,并且只进行一次初始化。
static修饰的类方法:
static方法是类方法,但可以被所有对象访问,static方法内部的代码,只能访问类中static属性或方法,不能直接访问类中的非static属性或方法(因为那是对象方法),但非static方法(对象方法)可以访问static数据成员。
main方法是特殊的静态方法,是Application程序入口点,必须写成public static void main(String[] args)的形式
当某一个方法或属性属于所有对象共有或不属于某一个对象时可以使用static修饰符
class IntClass{
public int value;
private static int total;
public static int getTotal() {
//this.value=10;//Cannot make a static reference to the non-static field value
return total;
}
public IntClass(int val) {
this.value=val;
total++;
}
}
public class test {
public static void main(String[] args) {
System.out.println(IntClass.getTotal());//0
IntClass a=new IntClass(5);
System.out.println(IntClass.getTotal());//1
IntClass b=new IntClass(6);
System.out.println(IntClass.getTotal());//2
//只能间接访问total但不能直接访问修改
}
}