标签:code system 有一个 stat 学生 com font += bsp
类变量(static)
类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。
1 public class C { 2 public static void main(String[] args){ 3 4 Child ch1 = new Child(12,"小小"); 5 ch1.joinGame(); 6 Child ch2 = new Child(13,"小红"); 7 ch2.joinGame(); 8 //调用类变量 9 System.out.println("一共有" + Child.total+ "小朋友"); 10 } 11 } 12 13 class Child{ 14 public int age; 15 public String name; 16 17 //total是静态变量,因此他可以被任何类调用 18 public static int total = 0; 19 20 public Child(int age, String name) 21 { 22 this.age = age; 23 this.name = name; 24 } 25 26 public void joinGame() 27 { 28 total++; 29 System.out.println("有一个小朋友加进来!"); 30 } 31 }
运行结果
静态区块
只要程序启动就会被执行一次,也仅执行一次
1 public class C { 2 3 static int i = 1; 4 static 5 { 6 System.out.println("静态区域块被执行一次"); 7 //该静态区域块,只被执行一次,也不会因创建对象而触发 8 i++; 9 } 10 public C() 11 { 12 System.out.println("构造函数域块被执行一次"); 13 i++; 14 } 15 16 public static void main(String[] args){ 17 18 C t1 = new C(); 19 System.out.println("输出第一个i的值为:" + C.i); 20 C t2 = new C(); 21 System.out.println("输出第二个i的值为:" + C.i); 22 } 23 }
运行结果
类方法
类方法中不能访问非静态变量
1 public class C { 2 public static void main(String[] args){ 3 Student stu1 = new Student(18,"小红",580); 4 Student stu2 = new Student(18,"小黑",620); 5 System.out.println("有" + Student.p_total + "个学生"); 6 System.out.println("学费总收入:" + Student.get_total_fee()); 7 } 8 } 9 10 //定义一个学生类 11 class Student{ 12 public int age; 13 public String name; 14 public double fee; //学费 15 public static int p_total = 0; 16 public static double total_fee; //总学费 17 18 public Student(int age, String name, double fee) 19 { 20 p_total++; 21 this.age = age; 22 this.name = name; 23 this.total_fee += fee; 24 } 25 26 //静态方法 27 //Java中规则:类变量原则上用类方法去访问 28 public static double get_total_fee() 29 { 30 return total_fee; 31 } 32 }
运行结果
标签:code system 有一个 stat 学生 com font += bsp
原文地址:https://www.cnblogs.com/beekc/p/12319681.html