国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Java基礎之static的用法

發(fā)布時(shí)間:2021-07-06 11:12 來(lái)源:腳本之家 閱讀:0 作者:qq_45671732 欄目: 開(kāi)發(fā)技術(shù)

目錄

      一、前言

      在java中static可以用來(lái)修飾以下內容:

      • 成員變量

      靜態(tài)變量,可以直接通過(guò)類(lèi)名去訪(fǎng)問(wèn)

      • 成員方法

      靜態(tài)方法,可以直接通過(guò)類(lèi)名去訪(fǎng)問(wèn)

      • 代碼塊

      靜態(tài)代碼塊,當java虛擬機加載類(lèi)時(shí),就會(huì )執行該代碼塊

      二、static修飾成員變量

      •  成員變量

      靜態(tài)變量,可以直接通過(guò)類(lèi)名去訪(fǎng)問(wèn)

      2.1 類(lèi)的成員變量

      類(lèi)的成員變量包括

      • 類(lèi)變量(靜態(tài)變量)

      被static修飾的變量
      在內存中只有一個(gè)拷貝
      類(lèi)內部,可以在任何方法內直接訪(fǎng)問(wèn)靜態(tài)變量
      其它類(lèi)中,可以直接通過(guò)類(lèi)名訪(fǎng)問(wèn)

      • 實(shí)例變量

      沒(méi)有被static修飾的變量
      沒(méi)創(chuàng )建一個(gè)實(shí)例,就為實(shí)例變量分配一次內存,實(shí)例變量可以在內存中有多個(gè)拷貝,互不影響

      package cn.zhz.Kind.dh;
      
      public class Person04 {
          //屬性 成員變量 全局變量 實(shí)例變量
          public int age;
          public String name;
          //靜態(tài)變量  調用時(shí)用類(lèi)名調用
          public static String email;
      }
      
      package cn.zhz.Case.dh;
      
      import cn.zhz.Kind.dh.Person04;
      
      public class Person04Test {
          public static void main(String[] args) {
              //調用類(lèi)的普通成員變量 (屬性) 創(chuàng  )建對象(實(shí)例) 通過(guò)對象去調用-->實(shí)例變量
              Person04 person04 = new Person04();
              person04.age = 18;
              person04.name = "張三";
              //靜態(tài)變量直接通過(guò)類(lèi)名去調用
              Person04.email = "zhansan@gmail.com";
          }
      }
      
      • static變量的作用:

      可以被類(lèi)的所有的實(shí)例共享,可以作為實(shí)例之間進(jìn)行交流的共享數據
      如果類(lèi)的所有實(shí)例都包含一個(gè)相同的常量屬性,可以把這個(gè)屬性定義為靜態(tài)常量屬性,從而節省內存空間。

      package cn.zhz.Case.dh;
      
      public class StaticTest {
          static int num;
          public static void main(String [] args){
              num++;
              StaticTest staticTest = new StaticTest();
              staticTest.num++;
              StaticTest staticTest1 = new StaticTest();
              staticTest1.num++;
              StaticTest.num++;
              System.out.println(num);
          }
      }
      

      編寫(xiě)程序模擬實(shí)現選民投票過(guò)程,一群選民進(jìn)行投票,每一個(gè)選民只允許進(jìn)行一次投票,并且當投票總數達到100時(shí),就停止投票

      package cn.zhz.Kind.dh;
      
      //模擬實(shí)現選民投票過(guò)程,一群選民進(jìn)行投票,每一個(gè)選民只允許進(jìn)行一次投票,并且當投票總數達到100時(shí),就停止投票
      public class Voter {
          //目前投票數 被所有的選民實(shí)例共享
          static int count;
          //投票的最大值
          static final int MAX_COUNT = 100;
          //選民名稱(chēng)
          private String name;
      
          public Voter() {
      
          }
      
          public Voter(String name) {
              this.name = name;
          }
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public void vote() {
              if (count == MAX_COUNT) {
                  System.out.println("投票總數達到100,無(wú)法繼續投票");
              } else {
                  count++;
                  System.out.println(this.name + "投票成功當前票數為" + count);
              }
          }
      }
      
      package cn.zhz.Case.dh;
      
      import cn.zhz.Kind.dh.Voter;
      
      public class VoterTest {
          public static void main(String[] args) {
              Voter voter1 = new Voter("張三");
              voter1.vote();
              Voter voter2 = new Voter("李四");
              voter2.vote();
              Voter voter3 = new Voter("王五");
              voter3.vote();
              Voter voter4 = new Voter("趙六");
              voter4.vote();
              for (int i = 1;i <= 97;i++){
                  Voter v = new Voter("v"+ i);
                  v.vote();
              }
              Voter voter = new Voter("小尾巴");
              voter.vote();
          }
      }
      

      三、static修飾方法

      • 成員方法

      靜態(tài)方法,可以直接通過(guò)類(lèi)名去訪(fǎng)問(wèn)
      靜態(tài)方法中不可以使用this和super
      不可以直接訪(fǎng)問(wèn)所屬類(lèi)的實(shí)例變量和實(shí)例方法
      可以直接訪(fǎng)問(wèn)類(lèi)的靜態(tài)變量和靜態(tài)方法

      • 實(shí)例方法:通過(guò)實(shí)例進(jìn)行訪(fǎng)問(wèn)

      可以直接訪(fǎng)問(wèn)所屬類(lèi)的靜態(tài)變量、靜態(tài)方法、實(shí)例變量和實(shí)例方法

      注意:靜態(tài)方法必須被實(shí)現

      package cn.zhz.Kind.dh;
      
      public class Person04 {
          //屬性 成員變量 全局變量 實(shí)例變量
          public int age;
          public String name;
          //靜態(tài)變量  調用時(shí)用類(lèi)名調用
          public static String email;
      
          public void m2() {
              System.out.println("實(shí)例方法m2");
          }
      
          //成員方法:實(shí)例方法->可以調用實(shí)例變量 實(shí)例方法 靜態(tài)變量 靜態(tài)方法
          public void m1() {
              System.out.println(this.age);
              System.out.println(email);
              m2();
              m3();
          }
      
          //靜態(tài)方法
          public static void m3() {
              //在靜態(tài)方法中不可以使用this
      //        System.out.println(this.age);
      //        m1();//在靜態(tài)方法中不可以調用實(shí)例方法
              //在靜態(tài)方法中不可以調用實(shí)例變量
      //        System.out.println(age);
              System.out.println("靜態(tài)方法m3");
              //在靜態(tài)方法中可以直接訪(fǎng)問(wèn)靜態(tài)變量
              System.out.println(email);
              m4();
          }
      
          public static void m4() {
              System.out.println("這是一個(gè)靜態(tài)方法");
          }
      }
      
      package cn.zhz.Case.dh;
      
      import cn.zhz.Kind.dh.Person04;
      
      import java.util.Arrays;
      
      public class Person04Test {
          public static void main(String[] args) {
              //調用類(lèi)的普通成員變量 (屬性) 創(chuàng  )建對象(實(shí)例) 通過(guò)對象去調用-->實(shí)例變量
              Person04 person04 = new Person04();
              person04.age = 18;
              person04.name = "張三";
              //靜態(tài)變量直接通過(guò)類(lèi)名去調用
              Person04.email = "zhansan@gmail.com";
              //通過(guò)實(shí)例調用實(shí)例方法
              person04.m1();
              //可以通過(guò)類(lèi)名調用靜態(tài)方法
              Person04.m3();
      //        Math.random();
      //        Arrays.sort();
      //        Arrays.binarySearch();
          }
      }
      

      其實(shí)java程序的入口main()方法就是最常用的靜態(tài)方法

      public static void main(String [] args){
      
      }

      四、static修飾代碼塊

      靜態(tài)代碼塊,當java虛擬機加載類(lèi)時(shí),就會(huì )執行該代碼塊

      當程序中有多個(gè)靜態(tài)代碼塊時(shí),程序會(huì )依次向下執行,按照順序加載,并且每一個(gè)靜態(tài)方法塊只可以執行一次

      package cn.zhz.Kind.dh;
      
      public class Static01 {
          static int num = 100;
      
          static {
              num += 100;
              System.out.println(num);
          }
      
          static {
              num += 100;
              System.out.println(num);
          }
      
          public static void main(String[] args) {
              Static01 static01 = new Static01();
              Static01 static02 = new Static01();
              System.out.println(Static01.num);
          }
      }
      

      到此這篇關(guān)于Java基礎之static的用法的文章就介紹到這了,更多相關(guān)Java static的用法內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

      免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

      亚洲综合精品香蕉久久网| 97无码免费人妻超级碰碰碰碰| BBBBBXXXXX精品农村野外| 四虎影视www在线播放| 熟女丝袜潮喷内裤视频网站| 亚洲日韩中文字幕在线播放|