欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java類的非靜態(tài)代碼塊,java中static代碼塊

那里出錯了Java

你可以將

創(chuàng)新互聯(lián)公司是由多位在大型網(wǎng)絡公司、廣告設計公司的優(yōu)秀設計人員和策劃人員組成的一個具有豐富經(jīng)驗的團隊,其中包括網(wǎng)站策劃、網(wǎng)頁美工、網(wǎng)站程序員、網(wǎng)頁設計師、平面廣告設計師、網(wǎng)絡營銷人員及形象策劃。承接:網(wǎng)站建設、成都網(wǎng)站設計、網(wǎng)站改版、網(wǎng)頁設計制作、網(wǎng)站建設與維護、網(wǎng)絡推廣、數(shù)據(jù)庫開發(fā),以高性價比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺等全方位的服務。

{

Point?p=new?Point();

p.x=4;

System.out.println(p.x);

p.y=5;

System.out.println(p.y);

}

代碼塊,做為非靜態(tài)代碼塊,放到Rectangle類或者Main類或者Point類中,編譯就能通過了,但是依據(jù)題意,還是應該放到Rectangle類或者Main類中為好,因為可以調用它,放到Point類中,沒有類調用它這段代碼了。完整的Java程序如下

public?class?Main?{

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

Rectangle?rect=new?Rectangle();

rect.width=100;

System.out.println(rect.width);

rect.height=200;

System.out.println(rect.height);

Rectangle?rect2=new?Rectangle();

rect2.width=10;

System.out.println(rect2.width);

rect2.height=20;

System.out.println(rect2.height);

}

}

class?Rectangle

{

int?width;

int?height;

{

Point?p=new?Point();

p.x=4;

System.out.println(p.x);

p.y=5;

System.out.println(p.y);

}

}

class?Point

{

int?x;

int?y;

}

運行結果

4

5

100

200

4

5

10

20

因為是非靜態(tài)代碼塊在Rectangle類中,所以每建一個Rectangle對象,都會執(zhí)行一次非靜態(tài)代碼塊,所以Point類的打印被執(zhí)行了兩次。

在java中,什么叫靜態(tài),什么叫非靜態(tài)

由static

關鍵修飾的內(nèi)容

為靜態(tài)

;

反之

,為非靜態(tài)

靜態(tài)變量

屬于

,為所有對象共有

分靜態(tài)變量

屬于

對象

,

每個對象都可以有且屬性值可以各異

靜態(tài)變量優(yōu)于非靜態(tài)變量加載,故

靜態(tài)代碼塊中不能引用非靜態(tài)成員,會報錯

java 中靜態(tài)代碼和非靜態(tài)代碼塊的區(qū)別!

相同點:都是在JVM加載類時且在構造方法執(zhí)行之前執(zhí)行,在類中都可以定義多個,

一般在代碼塊中對一些static變量進行賦值。

不同點:靜態(tài)代碼塊在非靜態(tài)代碼塊之前執(zhí)行(靜態(tài)代碼塊—非靜態(tài)代碼塊—構造方法)。

靜態(tài)代碼塊只在第一次new執(zhí)行一次,之后不再執(zhí)行,而非靜態(tài)代碼塊在每new

一次就執(zhí)行一次。非靜態(tài)代碼塊可在普通方法中定義(不過作用不大);而靜態(tài)代碼塊不行。

例:

//普通類

public class PuTong {

public PuTong(){

System.out.print("默認構造方法!--");

}

//非靜態(tài)代碼塊

{

System.out.print("非靜態(tài)代碼塊!--");

}

//靜態(tài)代碼塊

static{

System.out.print("靜態(tài)代碼塊!--");

}

public static void test(){

{

System.out.println("普通方法中的代碼塊!");

}

}

}

//測試類

public class TestClass {

/**

* 區(qū)別兩次new靜態(tài)與非靜態(tài)代碼塊執(zhí)行情況

*/

public static void main(String[] args) {

PuTong c1 = new PuTong();

c1.test();

PuTong c2 = new PuTong();

c2.test();

}

}

/*

運行輸出結果是:

靜態(tài)代碼塊!--非靜態(tài)代碼塊!--默認構造方法!--普通方法中的代碼塊!

非靜態(tài)代碼塊!--默認構造方法!--普通方法中的代碼塊!

*/

Java的靜態(tài)塊和初始化塊分別何時執(zhí)行?有什么區(qū)別?

靜態(tài)初始化塊:當類第一次加載時執(zhí)行。

非靜態(tài)初始化塊:非靜態(tài)初始化塊會在構造函數(shù)執(zhí)行時,且在構造函數(shù)主體代碼執(zhí)行之前被執(zhí)行。

區(qū)別如下:

1、執(zhí)行次數(shù)不同

靜態(tài)塊只執(zhí)行一次,初始化塊可以執(zhí)行多次。

2、作用不同

靜態(tài)初始化塊僅能初始化類變量,即static修飾的數(shù)據(jù)成員。

非靜態(tài)初始化塊可以初始化類的實例變量。

擴展資料:

使用Java靜態(tài)代碼塊注意事項:

1、它是隨著類的加載而執(zhí)行,只執(zhí)行一次,并優(yōu)先于主函數(shù)。具體說,靜態(tài)代碼塊是由類調用的。類調用時,先執(zhí)行靜態(tài)代碼塊,然后才執(zhí)行主函數(shù)的。

2、靜態(tài)代碼塊其實就是給類初始化的,而構造代碼塊是給對象初始化的。

3、靜態(tài)代碼塊中的變量是局部變量,與普通函數(shù)中的局部變量性質沒有區(qū)別。

4、一個類中可以有多個靜態(tài)代碼塊。

5、對于靜態(tài)變量、靜態(tài)初始化塊、變量、初始化塊、構造器,它們的初始化順序依次是(靜態(tài)變量、靜態(tài)初始化塊)(變量、初始化塊)構造器。

JAVA 靜態(tài)代碼塊和非靜態(tài)代碼塊 作用?

靜態(tài)代碼塊是在類加載進jvm時類實例化之前運行的,比如業(yè)務場景有這種類初始化時需要加載許多資源,在運行實例化類的時候會影響程序響應時間,所以就在項目啟動的時候加載類的時候就初始化了.非靜態(tài)代碼塊是在類實例化的時候才會運行,所以靜態(tài)代碼塊的執(zhí)行一定在非靜態(tài)代碼塊執(zhí)行之前執(zhí)行.至于你上面的第一個問題要看具體業(yè)務場景和需求,賦值都可以實現(xiàn).第二個問題,可能是寫那句代碼的人要看程序加載后有沒有執(zhí)行那部分代碼而加上的,知道了靜態(tài)代碼塊和非靜態(tài)代碼塊的本質區(qū)別,為什么那么做和目的你就應該知道了.

本文題目:java類的非靜態(tài)代碼塊,java中static代碼塊
當前地址:http://chinadenli.net/article10/hddggo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、關鍵詞優(yōu)化、網(wǎng)站設計公司、動態(tài)網(wǎng)站、品牌網(wǎng)站建設、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管