第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

靜態(tài)塊使用中的抽象類

靜態(tài)塊使用中的抽象類

BIG陽 2021-11-03 14:35:28
問題在于您的 OR (||) 條件。(charAtIndexTwo !='A') || (charAtIndexTwo !='E') 現(xiàn)在第一部分肯定是假的,它應(yīng)該跳轉(zhuǎn)到 else 但 OR (||) 條件使它檢查 (charAtIndexTwo !='E') 是真的。因此,它不會(huì)轉(zhuǎn)到 else,而是進(jìn)入 if 條件并打印 FALSE(這本身是正確的)你只需要調(diào)整你的 IF 條件邏輯 if((charAtIndexTwo=='A')||(charAtIndexTwo=='E')||(charAtIndexTwo=='I')||(charAtIndexTwo=='O')||(charAtIndexTwo=='U')||(charAtIndexTwo=='Y')){    System.out.println("Invalid");}else{    System.out.println((charAtIndexTwo != 'A'));    if ((totalOne % 2 == 0) && (totalTwo % 2 == 0) && (totalThree % 2 == 0) && (totalFour % 2 == 0)) {        System.out.println("Valid");    } else {        System.out.println("invalid");    }}
查看完整描述

1 回答

?
冉冉說

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

此功能沒有合理的用法。如果我在代碼審查中看到這一點(diǎn),我會(huì)強(qiáng)迫作者重構(gòu)它。


有時(shí),Java 規(guī)范允許您在理智的生產(chǎn)代碼中編寫不應(yīng)該做的事情,對(duì)我來說,這只是一個(gè)例子。


讓我們嘗試推導(dǎo)出利用此功能的代碼片段。


我們可以abstract在靜態(tài)初始化塊中使用關(guān)鍵字。這只能在定義類時(shí)通過聲明類本身abstract以及可選的一些方法來完成。


此類在初始化塊外部不可見,因此我們可以推斷我們將在內(nèi)部使用它。abstract都是關(guān)于創(chuàng)建實(shí)例或定義實(shí)例方法。因此,只有當(dāng)我們計(jì)劃創(chuàng)建抽象類的實(shí)例時(shí)它才有用。


現(xiàn)在,這個(gè)類是抽象的,所以為了能夠創(chuàng)建實(shí)例,我們至少需要一個(gè)子類。


如果我們只有一個(gè)子類,為什么要將其功能拆分為一個(gè)抽象父類和一個(gè)子類?那會(huì)不必要地復(fù)雜,所以我們可以假設(shè)我們有多個(gè)子類。


因此,要在abstract靜態(tài)初始化塊中對(duì)關(guān)鍵字進(jìn)行任何(至少是半理智的)使用,該塊必須定義一個(gè)抽象父類、多個(gè)子類,以及創(chuàng)建這些類的實(shí)例的代碼,例如以下最小示例:


static private int value;


static {

    abstract class Abstract {

        abstract int method1();

    }

    class Child1 extends Abstract {

        int method1() {

            return 1;

        }

    }

    class Child2 extends Abstract {

        int method1() {

            return 2;

        }

    }

    Abstract instance1 = new Child1();

    Abstract instance2 = new Child2();

    value = instance1.method1() + instance2.method1();

}

恕我直言,使用靜態(tài)初始化器應(yīng)該是個(gè)例外,這樣的怪物要求重構(gòu),例如將類從初始化塊中移出以成為普通的嵌套類,或者甚至更好,將它們移到自己的文件中。


這種抽象初始化器模式與重構(gòu)版本不同的唯一方面是類的可見性。您的可見性僅限于static { ... }塊內(nèi)。但是,如果您的課程如此復(fù)雜和冗長,以至于您擔(dān)心在您的static { ... }街區(qū)之外誤用,那么無論如何您都失敗了......


查看完整回答
反對(duì) 回復(fù) 2021-11-03
  • 1 回答
  • 0 關(guān)注
  • 140 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)