为了账号安全,请及时绑定邮箱和手机立即绑定

封装D问题

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

结果没有变,为什么??

正在回答

2 回答

你的变指的是什么?你这里代码输出的都是在初始化构造方法的时候输出的值。你后期赋值phone.cpu=3.6f;

phone1.screen=6.0f.这里变量的值已经改变了,但是你并没有在控制台打印出来,所以控制台显示的都是你构造方法中的值。

0 回复 有任何疑惑可以回复我~

主函数里有参的构造函数执行后,已经打印输出值,这时你再phone1.screen=6.0f改变值,虽然值是改变了,但是没有显示出来,你可以在后面加上System.out.println("修改后的值"+screen);应该就可以显示了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530632    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

封装D问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信