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

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

訪問繼承的類成員時(shí)出錯(cuò)

訪問繼承的類成員時(shí)出錯(cuò)

絕地?zé)o雙 2023-06-04 16:59:11
我是java的初學(xué)者。我想使用基類和派生類的對象訪問基類中的擴(kuò)展(繼承類的數(shù)據(jù)成員)。但是我遇到了這個(gè)錯(cuò)誤:令牌“bonus”上的語法錯(cuò)誤,嘗試訪問成員時(shí)此令牌后應(yīng)為 VariableDeclaratorId使用基類和派生類的對象的獎(jiǎng)勵(lì)如果我將對象創(chuàng)建和訪問的代碼放在 public static void main 方法中,這個(gè)錯(cuò)誤就會(huì)消失。我想了解這是什么原因?public class DerivedClass{    public int bonus = 100;    public static void main(String[] args) {    // TODO Auto-generated method stub    }}class BaseClass extends DerivedClass {    BaseClass b = new BaseClass();    DerivedClass d = new DerivedClass();    b.bonus = 200; //error here    d.bonus = 400; //error here    System.out.println("bonus this year is:"+" "+ s.bonus);}錯(cuò)誤信息:令牌“bonus”的語法錯(cuò)誤,此令牌后應(yīng)為 VariableDeclaratorId
查看完整描述

3 回答

?
大話西游666

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

將它包裝在一個(gè)方法中,您將看到兩者都有效。不允許直接在類主體中編寫代碼塊。


class BaseClass extends DerivedClass {    

    public static void main(String[] args) {

        BaseClass b = new BaseClass();

        DerivedClass d = new DerivedClass();

        b.bonus = 200;

        d.bonus = 400;

    }

}

有初始化器,盡管它們也必須在{}.


{

    BaseClass b = new BaseClass();

    DerivedClass d = new DerivedClass();

    b.bonus = 200;

    d.bonus = 400;

}

類主體具有明確定義的結(jié)構(gòu)(字段聲明、方法聲明、塊聲明)。您只需遵循該結(jié)構(gòu)即可。


8.1.6. 類主體和成員聲明

類主體可以包含類成員的聲明,即字段 (§8.3)、方法 (§8.4)、類 (§8.5) 和接口 (§8.5)。


類主體還可以包含類的實(shí)例初始值設(shè)定項(xiàng) (§8.6)、靜態(tài)初始值設(shè)定項(xiàng) (§8.7) 和構(gòu)造函數(shù)聲明 (§8.8)。


ClassBody:

  { {ClassBodyDeclaration} }


ClassBodyDeclaration:

  ClassMemberDeclaration 

  InstanceInitializer 

  StaticInitializer 

  ConstructorDeclaration


ClassMemberDeclaration:

  FieldDeclaration 

  MethodDeclaration 

  ClassDeclaration 

  InterfaceDeclaration 

  ;


查看完整回答
反對 回復(fù) 2023-06-04
?
婷婷同學(xué)_

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

  • 您應(yīng)該閱讀“Head First Java”一書。

  • 在您的代碼中,您試圖更改對象的狀態(tài),這就是您收到錯(cuò)誤的原因。你可以在方法或塊中做這樣的事情。

  • DerivedClass 應(yīng)該調(diào)用 BaseClass,而 BaseClass 應(yīng)該調(diào)用 DerivedClass(這基于 extends 關(guān)鍵字。)

  • 糟糕的代碼(具有主要方法的超類。);我剛剛刪除了編譯錯(cuò)誤,請參見下面的代碼。

希望對你有幫助。

public class DerivedClass {

    public int bonus = 100;

    public static void main(String[] args) {

    // TODO Auto-generated method stub


    }


}


class BaseClass extends DerivedClass {

    BaseClass b = new BaseClass();

    DerivedClass d = new DerivedClass();

    // code in block

    {

        b.bonus = 200; // no here

        d.bonus = 400; // no here

        System.out.println("bonus this year is:" + " " + d.bonus); // fixed typo

    }

}


查看完整回答
反對 回復(fù) 2023-06-04
?
烙印99

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

不允許直接在類主體中編寫語句。你需要把它們放在一個(gè)方法中。

不允許聲明意味著不允許以下任何內(nèi)容:

Assignment expressions (aValue = 23.45;) Any use of ++ or -- (aValue++;) Method invocations (System.out.println("Hello World!");) Object creation expressions (Car mycar = new Car();)


查看完整回答
反對 回復(fù) 2023-06-04
  • 3 回答
  • 0 關(guān)注
  • 185 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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