static 关键字

 

当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上 的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象, 其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少 对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个 国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中 都单独分配一个用于代表国家名称的变量。

属性:

属性是否使用static修饰 又分为静态属性和非静态属性(实例变量)    
        实例变量: 我们创建了类的多个对象,每个对象都独立拥有一套类
                 不会导致其他对象中相同的属性值的修改   
        静态变量: 我们创建了类的多个对象, 多个对象共享一个静态变
                 获取到的是修改后的值           
                                      

 

一个类的属性被static修饰之后  无论实例化多少个 对象那么 其中的一个对这个属性进行了操作 其他的对象获取的是这个被操作后的静态属性

 

public cl
ass StaticTest {
    public static void main(String[] args) {

        Chinese chineseOne = new Chinese();
        chineseOne.name = "隔壁老王";
        chineseOne.age = 32;


        Chinese chineseTwo = new Chinese();
        chineseTwo.name = "隔壁未婚姐姐";
        chineseTwo.age = 26;
        System.out.println(chineseTwo.nation); // null 现在未进行设置值
    }


}


class Chinese {
    String name;
    int age;
    static String nation;
}

 

如果类的一个属性加上了static就是静态属性 那么无论实例化多少对象都公用这一个属性 ,其中一个改变其他对象调用也随着改变

 

如上

  Chinese chineseOne = new Chinese();                                     
  chineseOne.name = "隔壁老王";                                               
  chineseOne.age = 32;                                                    
  chineseOne.nation = "CNN";                                              
                                                                          
                                                                          
  Chinese chineseTwo = new Chinese();                                     
  chineseTwo.name = "隔壁未婚姐姐";                                             
  chineseTwo.age = 26;                                                    
  System.out.println(chineseTwo.nation); // CNN  因为是static 的静态属性大家公用一个    

 

 

 

 

 

 

 

.

上一篇:pytest -- 中文文档


下一篇:C#简繁体转换方法(kernel32.dll)