關于封裝修改屬性的問題
package com.immoc;
import com.immoc.Telphone;
public class Telphone{
private float screen;//屏幕大小
private float cpu;
private float mem;//內存大小
?public Telphone(float newScreen,float newCpu,float newMem){
??screen=newScreen;
??cpu=newCpu;
??mem=newMem;
?}
public static void main(String[] args) {
??Telphone phone2=new Telphone(5.0f,1.4f,2.0f);
??phone2.cpu=6.0f;
??System.out.println("screen:"+phone2.screen);
???? System.out.println("cpu:"+phone2.cpu);
??System.out.println("mem:"+phone2.mem);
?}
}
請問一下 如果我對三個成員變量用以private修飾,為何我在main函數中修改cpu指為6.0f,為何屬性直接修改了,難道我封裝操作的不對嗎????? 求哥哥姐姐解答我的困惑ioioioio~~
2018-06-10
public?class?Telphone{ ????private?float?screen;//屏幕大小 ????private?float?cpu; ????private?float?mem;//內存大小 ????public?Telphone(float?newScreen,float?newCpu,float?newMem){ ????????screen=newScreen; ????????cpu=newCpu; ????????mem=newMem; ????} ????public?static?void?main(String[]?args)?{ ????????Telphone?phone2=new?Telphone(5.0f,1.4f,2.0f);//按照參數創建了一個對象,賦初值 ????????phone2.cpu=6.0f; //修改cpu參數屬性,此時cpu=6.0,screen=5.0,mem=2.0 ????????System.out.println("screen:"+phone2.screen); ????????System.out.println("cpu:"+phone2.cpu); ????????System.out.println("mem:"+phone2.mem); ?????} }運行結果:
screen:5.0
cpu:6.0
mem:2.0
2018-06-10
phone2.cpu=6.0f;?如果你想這句代碼不能被執行,也就是手機new出來后不能修改cpu型號,cpu應該是final常量