修饰符

1.static修饰符

1.static变量

在类中,使用static修饰的成员变量,就是静态变量,反之为非静态变量。

静态变量和非静态变量的区别

静态变量属于类的,“可以”使用类名来访问。

非静态变量属于对象,“必须”使用对象来访问

 1 public class Student {
 2     private static int age;
 3     private double score;
 4 
 5     public static void main(String[] args) {
 6         //对象
 7         Student s = new Student();
 8         //静态变量可以使用类名
 9         System.out.println(Student.age);
10         System.out.println(s.age);
11         //非静态变量使用对象来访问
12         System.out.println(s.score);
13     }
14 }

静态变量对于类而言在内存中只有一个,能被类的所有实例所共享。

实例变量对于类的每一个实例都有一份,它们之间互不影响

 1 public class Student2 {
 2     private static int count;
 3     private int num;
 4     public Student2(){
 5         count++;
 6         num++;
 7     }
 8 
 9     public static void main(String[] args) {
10         Student2 s1 = new Student2();
11         Student2 s2 = new Student2();
12         Student2 s3 = new Student2();
13         Student2 s4 = new Student2();
14         //因为还是在类中,所以可以直接访问私有属性
15         System.out.println(s1.num);
16         System.out.println(s2.num);
17         System.out.println(s3.num);
18         System.out.println(s4.num);
19      //全部输出的值为1
20         System.out.println(Student2.count);
21         System.out.println(s1.count);
22         System.out.println(s2.count);
23         System.out.println(s3.count);
24         System.out.println(s4.count);
25         //全部输出的值为8
26     }
27 }

 

在加载类的过程中为静态变量分配内存,实例变量在创建对象时分配内存,所以静态变量可以使用类名来直接访问,而不需要使用对象来访问.

 2121

posted @ 2020-09-15 22:57  罗晓峥  阅读(187)  评论(0编辑  收藏  举报