static表示静态的,所有对象共用的(所有对象都看到一份,而且只要其中任何一个对象对其进行修改,其他所有对象都会看到这个变化),所有的静态内容都是跟随类存在,在对象还没有时就已经存在了。
static属性:static属性被所有对象共享;这个属性先于对象存在
static方法:static方法先于对象存在
静态成员变量(用static声明的成员变量):
①:它为该类的公用变量,隶属于类;被该类的所有实例(对象)共享,在类被载入时被显示初始化。
②:对于该类的所有实例(对象)来说,static成员变量只有一份。被该类的所有实例(对象)共享。
③:可以使用"对象.类属性"来调用。不过,一般都是用"类名.类属性"调用
代码示例:
public class Bojian{ public static void main(String args[]){ Hero hero1=new Hero("张三"); Hero hero2=new Hero("李四"); System.out.println(Hero.count); } } class Hero{ String name; static int count=0; public Hero(){ System.out.println("英雄出生"); count++; }; public Hero(String name) { this.name = name; System.out.println(name+"英雄出生"); count++; } }
内存分析:
静态方法(static声明的方法):
①:不需要对象,就可以调用(类名.方法名())
②:在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。也不可以出现this关键字(this永远指向当前对象)。
代码示例:
public class Bojian{ public static void main(String arg[]){ Hero.hello();//没有对象 } } class Hero { String name; public static void hello() { //不能在静态方法中引用非静态的成员变量 int number = 1; System.out.println(number +"向你问好!"); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)