久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      static關(guān)鍵字的三大作用

      static關(guān)鍵字的三大作用

      static關(guān)鍵字的三大作用:

      (推薦教程:java入門教程)

      static靜態(tài)成員變量

      static靜態(tài)成員方法

      static靜態(tài)代碼塊

      分析:

      1、static靜態(tài)成員變量

      說明:如果一個(gè)成員變量使用了static關(guān)鍵字,那么這個(gè)變量不再屬于對(duì)象自己,而是屬于所在類。多個(gè)對(duì)象共享同一份數(shù)據(jù)。

      代碼舉例說明:

      我們建一個(gè)Student學(xué)生類,設(shè)置room教室和idCounter兩個(gè)靜態(tài)成員變量。在main()方法中實(shí)例化兩個(gè)學(xué)生對(duì)象one和two,只給one對(duì)象的room賦值,打印輸出的時(shí)候會(huì)發(fā)現(xiàn)此時(shí)two.room的值和one.room的值一樣。

      可以看出,因?yàn)閞oom使用了static關(guān)鍵字,所以它屬于類,不再屬于對(duì)象自己,可以被多個(gè)對(duì)象所共享一。因?yàn)閕dCounter是一個(gè)靜態(tài)變量,只會(huì)初始化一次,所以,每創(chuàng)建一個(gè)對(duì)象id都會(huì)自增長(zhǎng)1。

      public class Demo01StaticField {     public static void main(String[] args) {         Student one=new Student("郭靖",19);         Student two=new Student("黃蓉",16);         one.room="101教室";         System.out.println("姓名:"+one.getName()+",年齡:"                 +one.getAge()+",教室:"+one.room                 +",學(xué)號(hào):"+one.getId());        //姓名:郭靖,年齡:19,教室:101教室,學(xué)號(hào):1         System.out.println("姓名:"+two.getName()                 +",年齡:"+two.getAge()+",教室:"+two.room                 +",學(xué)號(hào):"+two.getId());        //姓名:黃蓉,年齡:16,教室:101教室,學(xué)號(hào):2     } }   public class Student {       private int id;             //學(xué)號(hào)     private String name;        //姓名     private int age;            //年齡     static String room;         //所在教室     private static int idCounter=0;     //學(xué)號(hào)計(jì)數(shù)器,每當(dāng)new了一個(gè)新對(duì)象的時(shí)候,計(jì)數(shù)器++       public Student() {         this.id= ++idCounter;     }       public Student(String name, int age) {         this.name = name;         this.age = age;         this.id= ++idCounter;     }       public int getId() {         return id;     }       public void setId(int id) {         this.id = id;     }       //name和age的Getter,Setter方法同上id,省略 }

      2、static靜態(tài)成員方法

      說明:如果一個(gè)成員方法使用了static關(guān)鍵字,同樣,那么這就成為了靜態(tài)方法。靜態(tài)方法不屬于對(duì)象,而是屬于類的。

      static修飾成員方法的優(yōu)點(diǎn):避免了new對(duì)象的繁瑣和資源的消耗,可以直接通過【類名.方法名】來使用。

      代碼舉例說明:

      新建一個(gè)Myclass類,里面有一個(gè)成員變量,一個(gè)靜態(tài)成員變量,一個(gè)成員方法,一個(gè)靜態(tài)成員方法。我們可以看到,成員方法既可以訪問成員變量也可以訪問靜態(tài)變量。而靜態(tài)方法只能訪問靜態(tài)變量,不能訪問非靜態(tài),也不能使用this關(guān)鍵字。在使用該類的時(shí)候,有了static關(guān)鍵字,那么不需要?jiǎng)?chuàng)建對(duì)象,直接就能通過類名稱來使用它。對(duì)于本類當(dāng)中的靜態(tài)方法,可以省略類名稱。

      public class Demo02StaticMethod {     public static void main(String[] args) {           //非靜態(tài)方法使用:1.首先創(chuàng)建對(duì)象         MyClass obj=new MyClass();         //2.然后才能使用沒有static關(guān)鍵字的方法         obj.method();           //對(duì)于靜態(tài)方法來說,可以通過對(duì)象名進(jìn)行調(diào)用,也可以通過類名稱來調(diào)用。         obj.methodStatic();     //正確,不推薦,這種寫法也會(huì)被javac翻譯成“類名稱.靜態(tài)方法名”         MyClass.methodStatic(); //正確,推薦           //對(duì)于本類當(dāng)中的靜態(tài)方法,可以省略類名稱         myMethod();         Demo02StaticMethod.myMethod();      //完全等效       }     public static void myMethod(){         System.out.println("自己的方法!");     } } public class MyClass {       int num;        //成員變量     static int numStatic;       //靜態(tài)變量       //成員方法     public void method(){         System.out.println("這是一個(gè)普通的成員方法。");         //成員方法可以訪問成員變量         System.out.println(num);         //成員方法可以訪問靜態(tài)變量         System.out.println(numStatic);     }       //靜態(tài)方法     public static void methodStatic(){         System.out.println("這是一個(gè)普通的靜態(tài)方法。");         //靜態(tài)方法可以訪問靜態(tài)變量         System.out.println(numStatic);         //靜態(tài)不能直接訪問非靜態(tài)【重點(diǎn)】         //System.out.println(num);        //錯(cuò)誤寫法         //靜態(tài)方法中不能使用this關(guān)鍵字         //System.out.println(this);        //錯(cuò)誤寫法     } }

      (學(xué)習(xí)視頻推薦:java課程)

      3、static靜態(tài)代碼塊

      格式:

      public class 類名稱{        static{                              //靜態(tài)代碼塊的內(nèi)容                    } }

      特點(diǎn):當(dāng)?shù)谝淮斡玫奖绢悤r(shí),靜態(tài)代碼塊執(zhí)行唯一的一次,可以用來優(yōu)化程序性能。我們大多數(shù)情況下,會(huì)將一些只會(huì)執(zhí)行一次的初始化操作(初始化靜態(tài)資源)的代碼放在static代碼塊中,例如:加載配置文件等。注意:靜態(tài)內(nèi)容總是優(yōu)先于非靜態(tài),所以靜態(tài)代碼塊比構(gòu)造方法先執(zhí)行。

      public class Demo04StaticCode {     public static void main(String[] args) {         Person one=new Person();         System.out.println("************************");         //無論創(chuàng)建幾個(gè)Person對(duì)象,靜態(tài)代碼塊只執(zhí)行一次         Person two=new Person();     } } public class Person {       static{         System.out.println("靜態(tài)代碼塊執(zhí)行!");     }       public Person() {         System.out.println("構(gòu)造方法執(zhí)行!");     } }

      執(zhí)行結(jié)果:

      static關(guān)鍵字的三大作用

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)