国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

靜態(tài)和實(shí)例初始化塊的使用說明

2019-11-18 14:53:56
字體:
供稿:網(wǎng)友

    對象通常是有狀態(tài)的,比如一個(gè)員工有姓名、年齡等字段。我們一般使用構(gòu)造器對對象進(jìn)行狀態(tài)設(shè)置,本文將介紹使用靜態(tài)和實(shí)例初始化塊來對對象進(jìn)行狀態(tài)初始化的工作。

    首先我們來看一個(gè)簡單的例子,代碼如下:
public class SmallSquares
{

    PRivate static final int LIMIT = 10;

    private static final int[] square = new int[LIMIT];

    public SmallSquares()
    {
        for (int i = 0; i < LIMIT; i++)
        {
            square[i] = i * i;
        }
    }

    public static int getSquare(int i)
    {
        if (i < 0 i > LIMIT)
        {
            System.out.println("Error:the i should between 0 to 10");
            return -1;
        }
        return square[i];
    }

    public static void main(String[] args)
    {
        new SmallSquares();
        System.out.println("3 squared is " + getSquare(3));
    }
}
這個(gè)小程序用來計(jì)算0-10的平方,這個(gè)程序是在構(gòu)造器中對數(shù)組進(jìn)行初始化的。其實(shí)這個(gè)構(gòu)造器的唯一目的就是來初始化這個(gè)數(shù)組的。可是我們仔細(xì)考慮一下,這個(gè)類的功能比較簡單,內(nèi)部的狀態(tài)也不復(fù)雜。但是假如要依靠構(gòu)造器來初始化狀態(tài)的話,顯然不合適。我們每次必須要首先調(diào)用SmallSquares()才可以讓程序工作,不然會出現(xiàn)NullPointerException。考慮用static初始化塊來完成這個(gè)功能,使用它的話我們就可以不用構(gòu)造器了,由于是static的,因此只會被執(zhí)行一次。下面給出優(yōu)化過的代碼,注重綠色部分。
public class SmallSquares
{

    private static final int LIMIT = 10;

    private static final int[] square = new int[LIMIT];

    static
    {
        for (int i = 0; i < LIMIT; i++)
        {
            square[i] = i * i;
        }
    }


    public static int getSquare(int i)
    {
        if (i < 0 i > LIMIT)
        {
            System.out.println("Error:the i should between 0 to 10");
            return -1;
        }
        return square[i];
    }

    public static void main(String[] args)
    {
        new SmallSquares();
        System.out.println("3 squared is " + getSquare(3));
    }
}



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴马| 台东市| 民勤县| 井研县| 神农架林区| 始兴县| 依安县| 灌阳县| 晋城| 枣庄市| 乐东| 云安县| 金乡县| 赤壁市| 宝山区| 丰宁| 天长市| 陇西县| 上杭县| 新营市| 德江县| 泊头市| 金乡县| 广安市| 衡阳县| 连城县| 望都县| 平定县| 葫芦岛市| 鄂尔多斯市| 姚安县| 晋江市| 广平县| 平罗县| 长岛县| 田阳县| 铜陵市| 南乐县| 大连市| 红桥区| 白银市|