運行結果怎么都是0.0呢???
public class three1 {
?? ?float LED;
?? ?float mem;
?? ?float CPU;
?? ?//public three1(){
?? ?//?? ?System.out.println("無參的構造方法執行了");
?? ?//};
?? ?public three1(float newLED,float newMem,float newCPU){
?? ??? ?if (LED < 3.5f){
?? ??? ??? ?newLED = 3.5f;
?? ??? ??? ?System.out.println("自動賦值為:3.5");
?? ??? ?}
?? ??? ?else{
?? ??? ??? ?newLED=LED;
?? ??? ?}
?? ??? ?newMem = mem;
?? ??? ?newCPU = CPU;
?? ??? ?System.out.println("有參的構造方法執行了"+"LED:"+newLED+"mem:"+newMem+"CPU:"+newCPU);
?? ??? ?
?? ?}
}
??? public static void main(String[] args) {
?? ??? ?// TODO Auto-generated method stub
?? ??? ?//three1 fun = new three1();
?? ??? ?three1 fun2 = new three1(4.0f,4.5f,6.4f);
?? ?}
自動賦值為:3.5
有參的構造方法執行了LED:3.5mem:0.0CPU:0.0
2018-07-29
要先賦值
2017-06-17
if (newLED < 3.5f){
? ? ? ? ? ? LED = 3.5f;
?? ??? ??? ?System.out.println("自動賦值為:3.5");
?? ??? ?}
?? ??? ?else{
? ? ? ? ? ? LED=newLED;
?? ??? ?}
? ? ? ? mem = newMem;
? ? ? ? CPU = newCPU;
?? ??? ?System.out.println("有參的構造方法執行了"+"LED:"+LED+"mem:"+mem+"CPU:"+CPU);
變量賦值寫反了
2017-06-16
這個吧就是你沒看清楚變量把。fun2 傳遞過去的參數分別給了? ??
newLED,newMem,newCPU這三個,他們三個都有值了也就是4.0f,4.5f,6.4f
? ? ? ? newMem = mem;這句話的意思 把上面定義的成員變量mem為默認值0賦給了newMem,
????其他的都是這個意思,所以是0
2017-05-25
因為你賦值4.0,4.5,6.4的時候是給newLED,newMem,newCPU賦的,但是比較的時候卻又是與LED比較的,所以系統會自動賦值0與3.5比較,其他兩個問題也是一樣的,都是把順序給弄反了,應該是:mem=newMem;?CPU=newCPU;不然的話都是把系統自動賦值0給了newMem和newCPU。
2017-05-25
構造函數寫錯了,這樣寫
?public three1(float newLED,float newMem,float newCPU){
?? ??? ?if (newLED< 3.5f){
?? ??? ??? ?LED= 3.5f;
?? ??? ??? ?System.out.println("自動賦值為:3.5");
?? ??? ?}
?? ??? ?else{
? ? ? ? ? ? LED=newLED;
?? ??? ?}
? ? ? ? mem=newMem;
? ? ? ? ?CPU=newCPU;
?? ??? ?System.out.println("有參的構造方法執行了"+"LED:"+LED+"mem:"+Mem+"CPU:"+CPU);
?? ??? ?
?? ?}
}