有參的構(gòu)造方法執(zhí)行了?
按照這節(jié)演示來看,是不是phone2創(chuàng)建時有參構(gòu)造方法就執(zhí)行了,但是卻不能生效,就是并不能傳參。沒有傳參怎么能說執(zhí)行了呢?這中間的點在哪里?
如果是Telephone phone2=new Telephone(1.0f,1.8f,4.0f);程序還是會返回:
您輸入的參數(shù)有問題,自動賦值4.0f
帶參的構(gòu)造方法Telephone執(zhí)行了
就是說1.0f傳給了screen,但是卻不能輸出,會報錯說screen不能被訪問。這中間發(fā)生了什么?
而且1.0f應(yīng)該不能傳給screen啊
package com.imooc;
public class Telephone {
private float screen;//通過private修改屬性的可見性,目的是封裝
private float cpu;
private float mem;
public float getScreen(){
return screen;
}
public void setScreen(float newScreen){
if(newScreen<4.0f){
System.out.println("您輸入的參數(shù)有問題,自動賦值4.0f");
screen=4.0f;
}else{
screen=newScreen;
}
}
public Telephone(){
System.out.println("無參的構(gòu)造方法執(zhí)行了");
}
public Telephone(float newScreen,float newCpu,float newMem){
if(newScreen<4.0f){
System.out.println("您輸入的參數(shù)有問題,自動賦值4.0f");
screen=4.0f;
}else{
screen=newScreen;
}
cpu=newCpu;
mem=newMem;
System.out.println("帶參的構(gòu)造方法Telephone執(zhí)行了");
}
}
分界線========================================================
package com.imooc;
public class InitialTelephone {
public static void main(String[] args) {
// TODO Auto-generated method stub
//通過無參的構(gòu)造方法創(chuàng)建對象
Telephone phone=new Telephone();
//通過帶參的構(gòu)造方法創(chuàng)建對象 并給對象中的實例變量賦初值
Telephone phone2=new Telephone(1.0f,1.8f,4.0f);
/*phone2.screen=6.0f;
System.out.println(phone2.screen);封裝后不能直接訪問數(shù)據(jù),故失效,隱去*/
phone.setScreen(1.0f);
System.out.println("screen:"+phone.getScreen());
phone2.setScreen(6.0f);
System.out.println("screen:"+phone2.getScreen());
}
}
2016-06-30
是不是沒用到this,值傳到其他變量了,貼段代碼看看?