运行结果怎么都是0.0呢???

来源:8-6 Java 中的构造方法

qq_天涯咫尺_6

2017-05-25 10:21

public class three1 {
    float LED;
    float mem;
    float CPU;
    //public three1(){
    //    System.out.println("无参的构造方法执行了");
    //};
    public three1(float newLED,float newMem,float newCPU){
        if (LED < 3.5f){
            newLED = 3.5f;
            System.out.println("自动赋值为:3.5");
        }
        else{
            newLED=LED;
        }
        newMem = mem;
        newCPU = CPU;
        System.out.println("有参的构造方法执行了"+"LED:"+newLED+"mem:"+newMem+"CPU:"+newCPU);
        
    }
}

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //three1 fun = new three1();
        three1 fun2 = new three1(4.0f,4.5f,6.4f);
    }

自动赋值为:3.5
有参的构造方法执行了LED:3.5mem:0.0CPU:0.0

写回答 关注

5回答

  • 与蝶共舞
    2018-07-29 17:18:44

    要先赋值


  • 黑夜_K
    2017-06-17 10:21:04

    if (newLED < 3.5f){
                LED = 3.5f;
                System.out.println("自动赋值为:3.5");
            }
            else{
                LED=newLED;
            }
            mem = newMem;
            CPU = newCPU;
            System.out.println("有参的构造方法执行了"+"LED:"+LED+"mem:"+mem+"CPU:"+CPU);

    变量赋值写反了

  • Sherlock丶Holmes
    2017-06-16 23:40:25

    这个吧就是你没看清楚变量把。fun2 传递过去的参数分别给了    

    newLED,newMem,newCPU这三个,他们三个都有值了也就是4.0f,4.5f,6.4f

            newMem = mem;这句话的意思 把上面定义的成员变量mem为默认值0赋给了newMem,

        其他的都是这个意思,所以是0

  • 慕桂英4352762
    2017-05-25 11:03:32

    因为你赋值4.0,4.5,6.4的时候是给newLED,newMem,newCPU赋的,但是比较的时候却又是与LED比较的,所以系统会自动赋值0与3.5比较,其他两个问题也是一样的,都是把顺序给弄反了,应该是:mem=newMem; CPU=newCPU;不然的话都是把系统自动赋值0给了newMem和newCPU。

  • 陈鑫2
    2017-05-25 10:39:45

    构造函数写错了,这样写

     public three1(float newLED,float newMem,float newCPU){
            if (newLED< 3.5f){
                LED= 3.5f;
                System.out.println("自动赋值为:3.5");
            }
            else{
                LED=newLED;
            }
            mem=newMem;
             CPU=newCPU;
            System.out.println("有参的构造方法执行了"+"LED:"+LED+"mem:"+Mem+"CPU:"+CPU);
            
        }
    }

Java入门第二季 升级版

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

530649 学习 · 6091 问题

查看课程

相似问题