亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

java關鍵字static學習心得

2024-07-13 10:17:01
字體:
來源:轉載
供稿:網友

static是java中又一重要的關鍵字,在一定環境下使用,可以提高程序的運行性能,優化程序的結構。其主要應用有以下幾方面:

1.static修飾的成員變量,稱為類變量/靜態變量,以實現所有對象對該成員的共享。

2.static修飾的成員方法,稱為類方法/靜態方法,可直接通過類名調用,無需創建對象。

3.形成靜態代碼塊,優化程序性能。

4.靜態導包,一般將類的方法直接導入到當前類中,從而直接使用方法名即可調用類方法,更加方便。

5.修飾內部類,無需實例化外部類就可以調用內部類。

下面一附代碼說明:

public class Student {    String name;    static int age;    public String toString() {      return "Name:" + name + ", Age:" + age;    }    public static void main(String[] args) {     Student s1 = new Student();      s1.name="張三";      s1.age=20;      Student s2 = new Student();      s2.name="李四";      s2.age=10;      System.out.println(s1);      System.out.println(s2);    }}/**輸出結果Name:張三, Age:10Name:李四, Age:10*/

如上述代碼,s1和s2兩個對象分別存儲在內存中堆區域的不同地址中,所以他們之間相互不會干擾。然而static關鍵字修飾了成員變量age,讓其變成類的所屬,而不是對象的所屬,任何該類實例的對象都可以共享使用它。所以,輸出的age均是最終賦給的10。如果去掉static,顯然對象之間互不影響,輸出如下:

Name:張三, Age:20Name:李四, Age:10

java,static

如上述代碼,out1調用out2時出錯。由此代碼可得,靜態方法不能調用非靜態的成員變量和成員方法。非靜態方法可以調用靜態的成員變量和成員方法。注意,static不影響成員的訪問權限,Java中能夠影響到訪問權限的關鍵詞是private、public、protected,default。

public class Test extends Base{  static{    System.out.println("static靜態塊1");  }  public Test(){    System.out.println("test構造器");  }    public static void main(String[] args) {    new Test();  }} class Base{  static{    System.out.println("static靜態塊2");  }  public Base(){    System.out.println("base構造器");  }}

如上述代碼,記住兩句話,static代碼塊隨類的加載一起加載。static修飾的變量方法比其他變量方法優先加載,且只加載一次。加載子類時,會首先加載父類。由此可以分析:在執行開始,先要尋找到main方法,因為main方法是程序的入口,但是在執行main方法之前,必須先加載Test類,而在加載Test類的時候發現Test類繼承自Base類,因此會轉去先加載Base類,在加載Base類的時候,發現有static塊,便執行了static塊。在Base類加載完成之后,便繼續加載Test類,然后發現Test類中也有static塊,便執行static塊。在加載完所需的類之后,便開始執行main方法。在main方法中執行new Test()的時候會先調用父類的構造器,然后再調用自身的構造器。因此,運行結果如下:

static靜態塊2static靜態塊1base構造器test構造器
/* A.java文件 */package com.dogo.test;public class A {  public static void outWord(Object o){    System.out.println(o);  }}/* B.java文件 */import static com.dogo.test.A.*;public class B{  public static void main( String[] args )  {    outWord("Hello World!");  }  /**輸出   * Hello World!   */}

如上述代碼,A.java中包含一個簡單的靜態方法,在B.java中我們用static關鍵字將A類導入,由此,便無需使用“類名.方法名”的方法去調用類方法了,直接可以采用"方法名"去調用類方法,就好像是該類自己的方法一樣。

/*Outer.java*/public class Outer {  static {    System.out.println("Outer靜態塊");  }  public Outer(){    System.out.println("Outer構造器");  }  static class Inner{    static{      System.out.println("Inner靜態塊");    }        public Inner(){      System.out.println("Inner構造器");    }  }}/*Test.java*/public class Test{  public static void main(String[] args) {    new Outer.Inner();  }}

如上述代碼,記住,用static修飾內部類,外部類可以直接調用內部類,因為static修飾的的內部類是在加載外部類的同時加載的,所以,并不要實例化外部類就能直接調用靜態內部類。例子中,在進入Test的main方法之前,加載Test類,然后執行new Outer.Inner();這里需要注意:因為Inner是靜態的,所以這里并不需要加載外部類和實例化外部類,可以直接加載Inner并實例化。運行結果如下:

Inner靜態塊Inner構造器

大喬注:static另一個很重要的應用就是實現單例設計模式。單利模式的特點是該類只能有一個實例,為了實現這一功能,必須隱藏類的構造函數,即把構造函數聲明為private,并提供一個創建對象的方法,由于構造對象被聲明為private,外界無法直接創建這個類型的對象,只能通過該類提供的方法來獲取類的對象,于是只能把創建對象的方法聲明為static,程序實例如下:

class SingleDemo{     private static SingleDemo ins=null;     private SingleDemo(){}     public static SingleDemo getIns(){       if(ins==null){         ins=new SingleDemo();       }       return ins;     }   }


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品videos另类日本| 亚洲大胆人体av| 九九九热精品免费视频观看网站| 国产高清在线不卡| 日韩av色在线| 日韩视频亚洲视频| 一区二区三区亚洲| 国产精品白嫩美女在线观看| 91精品在线看| 国精产品一区一区三区有限在线| 亚洲网在线观看| 亚洲第一视频网| 日韩中文字幕国产精品| 国产亚洲精品美女久久久久| 国产精品午夜一区二区欲梦| 欧美一级视频一区二区| 亚洲精品一区久久久久久| 中文字幕在线观看亚洲| 日韩美女视频免费看| 久久夜色精品国产| 91po在线观看91精品国产性色| 亚洲毛片在线观看.| 欧美午夜片欧美片在线观看| 色综合亚洲精品激情狠狠| 亚洲人精品午夜在线观看| 国内精品伊人久久| 2020久久国产精品| 亚洲欧洲免费视频| 亚洲春色另类小说| 国外日韩电影在线观看| 亚洲欧美中文日韩在线v日本| 国产欧美在线看| 欧美大胆在线视频| 狠狠躁天天躁日日躁欧美| 国产自摸综合网| 欧美日韩国产专区| 国产精品亚洲网站| 午夜免费在线观看精品视频| 热99精品里视频精品| 国产精品一二三在线| 国产精品毛片a∨一区二区三区|国| 国模叶桐国产精品一区| 亚洲国产精品视频在线观看| www.久久久久| 国模私拍一区二区三区| 日本一本a高清免费不卡| 欧美激情videoshd| 日本中文字幕不卡免费| 日韩精品免费在线视频观看| 国产精品情侣自拍| 2021久久精品国产99国产精品| 国产日韩亚洲欧美| 日韩天堂在线视频| 日韩电影免费在线观看| 69影院欧美专区视频| 国产一区二区三区在线观看网站| 欧美理论电影网| 亚洲视频国产视频| 国产精品久久久av久久久| 欧美制服第一页| 欧美亚洲国产视频| 国产精品v片在线观看不卡| 97超碰国产精品女人人人爽| 超碰97人人做人人爱少妇| 欧美日韩中文在线| 2019亚洲男人天堂| 欧美精品久久久久久久久久| 精品偷拍一区二区三区在线看| 日韩av免费在线| 国内精品久久久久伊人av| 日本三级韩国三级久久| 国语自产精品视频在线看一大j8| 中文字幕亚洲一区在线观看| 色播久久人人爽人人爽人人片视av| 成人黄色中文字幕| 欧美性20hd另类| 亚洲品质视频自拍网| 在线日韩欧美视频| 色婷婷亚洲mv天堂mv在影片| 国产精品99久久久久久www| 亚洲欧洲激情在线| 欧美一区二粉嫩精品国产一线天| 中文字幕亚洲在线| 亚洲免费视频网站| 日韩国产在线看| 欧美一级淫片丝袜脚交| 欧美电影在线观看高清| 国产一区二区久久精品| 国产视频精品一区二区三区| 91性高湖久久久久久久久_久久99| 一个人www欧美| 91精品久久久久久久久久久| 国产一区二中文字幕在线看| 日韩亚洲欧美中文在线| 日本欧美国产在线| 亚洲精品国产精品乱码不99按摩| 国产一区私人高清影院| 91精品免费视频| 久久亚洲精品成人| 国产精品青草久久久久福利99| 国产91网红主播在线观看| 国产一区二区动漫| 欧美亚洲国产视频| 国产一区在线播放| 色先锋资源久久综合5566| 国产主播精品在线| 日韩视频在线免费观看| 中文字幕亚洲欧美在线| 91大神福利视频在线| 中文字幕日韩欧美在线| 亚洲精品mp4| 色偷偷偷亚洲综合网另类| 国产热re99久久6国产精品| 欧美日韩在线一区| 亚洲自拍中文字幕| 色综合视频一区中文字幕| 久久天天躁狠狠躁夜夜av| 亚洲成色777777女色窝| 国产视频自拍一区| 国产在线视频一区| 亚洲国产成人av在线| 久久久999成人| 色综合久久天天综线观看| 日韩中文字幕在线观看| 亚洲视频网站在线观看| 亚洲国产欧美一区二区三区同亚洲| 国产精品男人爽免费视频1| 91在线直播亚洲| 最近2019中文字幕在线高清| 欧美性69xxxx肥| 美女扒开尿口让男人操亚洲视频网站| www.亚洲男人天堂| 国产精品美女主播在线观看纯欲| 成人免费视频网| 日韩欧美第一页| 久久精品成人一区二区三区| 精品国产电影一区| 日韩成人在线电影网| 欧美黑人性视频| 国产精品视频导航| 亚洲国产精品视频在线观看| 亚洲精品国产免费| 精品久久久久久国产| 国产成人亚洲综合91精品| 国产精品亚洲综合天堂夜夜| 国产日韩在线看片| 亚洲加勒比久久88色综合| 亚洲大胆美女视频| 538国产精品一区二区在线| 日韩精品欧美国产精品忘忧草| 亚洲精品福利免费在线观看| 国产成人精品久久亚洲高清不卡| 中文字幕日韩在线视频| 久久伊人免费视频| 亚洲电影免费观看高清完整版| 精品欧美国产一区二区三区| 亚洲免费影视第一页| 最新中文字幕亚洲| 亚洲精品www| 色一情一乱一区二区| 亚洲国产成人在线播放| 亚洲一区二区久久久| 日韩精品高清在线| 狠狠躁天天躁日日躁欧美|