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

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

假設(shè)當(dāng)setValue()方法顯示變量j時(shí),該變量的值是多少?

假設(shè)當(dāng)setValue()方法顯示變量j時(shí),該變量的值是多少?

C++
人到中年有點(diǎn)甜 2022-12-17 17:13:01
public class Test { int i = 40;int j;  public Test() { setValue(i++); }  void setValue(int inputValue) { int i = 20;j = i + 1;System.out.println("j = " + j); }}
查看完整描述

2 回答

?
夢里花落0921

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

答: 我們來分析一下值的獲得過程

首先看外部的friend公共變量:


int i = 40;int j; // j = null

這時(shí)i的值為40

再來看方法setValue內(nèi)的:


int i = 20;j = i + 1// j = 20 + 1

注意:新手都很容易混淆的是: 這里的 i + 1 并非 this.i + 1

所以 j 的值是 20 + 1

再仔細(xì)想想,setValue方法調(diào)用時(shí)的參數(shù)為 41 (40++) ,可是方法內(nèi)并沒有用到形參inputValue

所以輸出的值就是21 

祝你java學(xué)習(xí)的更好!

PS:

若方法內(nèi)和方法外的公共變量或常量有同名,就可如此處理,更要分清有this和沒有this的區(qū)別


public class Test {    int i = 40;    int j;    public Test()    {        printValue0();        printValue1();    }         public void printValue0()    {        int i = 20;  //定義變量i        System.out.println("printValue0: "+i); //沒有this,使用內(nèi)部的i    }         public void printValue1()    {        int i = 20;  //定義變量i        System.out.println("printValue1: "+this.i); //有this,使用外部公共變量    }}/*** Output:*  printValue0: 20*  printValue1: 40**/


查看完整回答
反對(duì) 回復(fù) 2022-12-21
?
慕碼人8056858

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

必然是21呀
這種東西跑一下不就知道了

查看完整回答
反對(duì) 回復(fù) 2022-12-21
  • 2 回答
  • 0 關(guān)注
  • 98 瀏覽

添加回答

舉報(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)