亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

調用方法輸出問題

public class Phone {

//屬性

float screen;

float cpu;

float mem;

public Phone(){

System.out.println("無參構造器執行!");

}

public Phone(float newScreen,float newCpu,float newMem){

if (newScreen<3.5f) {

System.out.println("輸入有誤,自動賦值3.5");

screen = 3.5f;

} else {

screen = newScreen;

}

screen = newScreen;

cpu = newCpu;

mem = newMem;

System.out.println("尺寸:"+screen+"cpu:"+cpu+"mem"+mem+"有參構造器執行了");

}

}

尺寸:1.0cpu:2.0mem2.0有參構造器執行了


輸出結果為什么不對了 ??幫忙給解釋一下

正在回答

2 回答

你的代碼是沒有問題的,但是你給的這個代碼是沒有main函數的。在main函數中調用構造方法時,要依據調用方法的參數而定.

譬如你的第一個無參數方法就是new Phone();

第二個就要給它參數 new Phone(1.0f,2.0f,3.0f)。

然后你在代碼中有一個判斷:

if (newScreen<3.5f) {

System.out.println("輸入有誤,自動賦值3.5");

screen = 3.5f;

} else {

screen = newScreen;

}

如果你輸入1.0f,2.0f,3.0f,它執行判斷之后會把screen從你賦值的1.0f 重新賦值為3.5f,然后else那一句會跳過不執行,這個是沒毛病的。

但是你在后面有一句

screen = newScreen,這個是把你輸入的1.0f再次賦給screen,所以你輸出之后還會是1.0f, 2.0f, 3.0f。

下面的是我改的代碼:

public class Phone {
?//屬性
?float screen;
?float cpu;
?float mem;
?public Phone(){
?System.out.println("無參構造器執行!");
?}
?public Phone(float newScreen,float newCpu,float newMem){
?if (newScreen<3.5f) {
?System.out.println("輸入有誤,自動賦值3.5");
?screen = 3.5f;
?} else {
?screen = newScreen;
?}
?//screen = newScreen;//把這一行去掉,試一下效果
?cpu = newCpu;
?mem = newMem;
?System.out.println("尺寸:"+screen+"cpu:"+cpu+"mem"+mem+"有參構造器執行了");
?}
?public static void main(String[] args) {
??new Phone();
??new Phone(1.0f,6.0f,8.1f);//直接傳參數,也可以是變量賦值傳參數
?}
?}

希望對你有幫助!^-^

0 回復 有任何疑惑可以回復我~

screen = newScreen;這句話多輸入了一次

1 回復 有任何疑惑可以回復我~
#1

承諾太虛偽 提問者

我知道 所輸了一次 ,可是else 里面已經給screen重新賦值了,下來再運行一遍 怎么會不對呢?
2017-05-06 回復 有任何疑惑可以回復我~
#2

qq_噴泉_0 回復 承諾太虛偽 提問者

在if...else...語句中已經重新對screen賦值了,若在if...else...語句外重新使用screen = newScreen;表示又一次將傳入的值賦給screen,覆蓋了前面的判斷,也就是判斷無效了,最后輸出依然是傳入的值
2017-05-16 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531142    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

調用方法輸出問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號