问答详情
源自:7-1 什么是 Java 中的封装

封装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

结果没有变,为什么??

提问者:慕斯1379455 2017-06-14 22:05

个回答

  • starkpan
    2017-06-14 22:30:16

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

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

  • sanmua
    2017-06-14 22:23:46

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