Static引入
在我们生活当中 , 有些事物不属于某一个对象,而是属于整个事物的类型 比如:全世界人口的总数 人的毁灭行为:毁灭的行为应该属于人类, 不应该属于某一个人 状态和行为应该 有 对象和类之分 有的状态和行为,应该属于某个对象 有的状态和行为,应该属于类型
Static作用
通过 static 修饰符就能解决这个问题,它修饰的成员就不属于对象,它属于类本身
它可以修饰字段,方法,内部类
作用:确定修饰的内容是属于类还是属于对象
Static特点 1.static 修饰的内容,附着类的加载而加载 2.优先于对象的存在 3.static 修饰的成员被该类型的所有对象共享 4.可以直接使用当前类的类名访问 static 成员
总结
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 public class Person { static int totalNums = 0 ; static void destroy () { System.out.println("人类毁灭啦" ); } String name; int age; void die () { System.out.println(name+"死了" ); Person.totalNums--; } Person(String n,int a){ name = n; age = a; Person.totalNums++; } public static void main (String[] args) { System.out.println(Person.totalNums); Person per = new Person("zs" ,1 ); System.out.println(per.name); System.out.println(per.age); per.die(); System.out.println(Person.totalNums); Person per2 = new Person("ls" ,2 ); System.out.println(per2.name); System.out.println(per2.age); Person.destroy(); System.out.println(Person.totalNums); System.out.println(per2.totalNums); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 public class Person { static int totalNums = 0 ; String name; int age; void eat (String food) { System.out.println(name+"吃了" +food); } Person(String name,int age){ this .name = name; this .age =age; Person.totalNums++; } Person(int age){ this .age = age; Person.totalNums++; } void die () { System.out.println(name+"从地球上消失" ); Person.totalNums--; } static void destroy () { Person.totalNums = 0 ; } } class test { public static void main (String[] args) { Person person = new Person("张三" ,1 ); person.name = "张四" ; person.eat("奶粉" ); System.out.println(Person.totalNums); Person person1 = new Person(1 ); person1.name = "李四" ; person1.eat("奶粉" ); Person ww = new Person("王五" , 1 ); ww.eat("奶粉" ); person.die(); Person.destroy(); System.out.println("总人口:" +Person.totalNums); System.out.println(ww.totalNums); } }