package com.imooc;
public class Gouzao {
float screen;
float cpu;
float men;
public Gouzao(){
System.out.println("无参构造方法执行了");
}
public Gouzao(float newScreen,float newCpu,float newMen){
if(newScreen<3.5){
System.out.println("您输入的参数有误,自动赋值为3.5");
screen=3.5f;
}else{
screen=newScreen;
}
cpu=newCpu;
men=newMen;
System.out.println("有参的构造方法执行了"+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;
}
}
无参构造方法执行了
有参的构造方法执行了4.0 4.0 5.2
结果没有变,为什么??
你的变指的是什么?你这里代码输出的都是在初始化构造方法的时候输出的值。你后期赋值phone.cpu=3.6f;
phone1.screen=6.0f.这里变量的值已经改变了,但是你并没有在控制台打印出来,所以控制台显示的都是你构造方法中的值。
主函数里有参的构造函数执行后,已经打印输出值,这时你再phone1.screen=6.0f改变值,虽然值是改变了,但是没有显示出来,你可以在后面加上System.out.println("修改后的值"+screen);应该就可以显示了