JAVA类变量、类方法

类变量(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 }

运行结果

猜你喜欢

转载自www.cnblogs.com/beekc/p/12319681.html