封裝D問題
package com.imooc;
public class Gouzao {
float screen;
float cpu;
float men;
public Gouzao(){
System.out.println("無參構(gòu)造方法執(zhí)行了");
}
? ? public Gouzao(float newScreen,float newCpu,float newMen){
? ? if(newScreen<3.5){
? ? System.out.println("您輸入的參數(shù)有誤,自動賦值為3.5");
? ? screen=3.5f;
? ?
? ? }else{
? ? screen=newScreen;
? ? }
? ? cpu=newCpu;
? ? men=newMen;
? ? System.out.println("有參的構(gòu)造方法執(zhí)行了"+screen+"\t"+cpu+"\t"+men);
? ?
? ? }
}
package com.imooc;
public class IntGouzao {
public static void main(String[] args) {
Gouzao phone=new Gouzao();
Gouzao phone1=new Gouzao(4.0f,4.0f,5.2f);
phone.cpu=3.6f;
phone1.screen=6.0f;
}
? ??
? ??
}
無參構(gòu)造方法執(zhí)行了
有參的構(gòu)造方法執(zhí)行了4.0 4.0 5.2
結(jié)果沒有變,為什么??
2017-06-14
你的變指的是什么?你這里代碼輸出的都是在初始化構(gòu)造方法的時候輸出的值。你后期賦值phone.cpu=3.6f;
phone1.screen=6.0f.這里變量的值已經(jīng)改變了,但是你并沒有在控制臺打印出來,所以控制臺顯示的都是你構(gòu)造方法中的值。
2017-06-14
主函數(shù)里有參的構(gòu)造函數(shù)執(zhí)行后,已經(jīng)打印輸出值,這時你再phone1.screen=6.0f改變值,雖然值是改變了,但是沒有顯示出來,你可以在后面加上System.out.println("修改后的值"+screen);應(yīng)該就可以顯示了