关于此题的成员变量问题

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

慕先生1225276

2016-07-09 11:06

此题构造方法使用的参数是float newCpu之类的,对象调用构造方法时直接就可以把值赋给参数,那为什么还要在构造方法中把成员变量float cpu的值赋给float newCpu?这不是多此一举吗?通过代码已经验证此问题(将成员变量注释掉了),希望打什么解答下

package object1;


public class Telphone {

/*

float pingmu;

float cpu;

float neicun;

*/

public Telphone(){

System.out.println("这个课程好!");

}

public Telphone(float x,float y,float z){

if(x<3.0f){

x=3.5f;

System.out.println("您输入的尺寸有误,自动更改为3.5");

}

if(y<1){

y=1.2f;

System.out.println("您输入的信息有误,自动更改为1.2");

}

if(z<1.5){

z=2.0f;

System.out.println("您输入的信息有误,自动更改为2.0");

}

System.out.println("有参的构造方法执行了");

System.out.println("屏幕:"+x);

System.out.println("cpu:"+y);

System.out.println("内存:"+z);

}

}


写回答 关注

4回答

  • 幸福de味道3527686
    2016-07-09 11:35:09
    已采纳

    在不需要通过使用对象去获取其属性值是确实可行,但是这只是最普通的情况。如果你把它们注释掉,之后使用get和set方法去获取某个对象的属性值时,你就会发现无法实现了。所以,还是把成员变量定义好才行。

    慕先生122...

    非常感谢!

    2016-07-09 12:45:09

    共 1 条回复 >

  • qq_TaylorSwift_13120956
    2016-07-09 17:11:19

    还是把成员变量定义好

  • BlueBlueSkyZ
    2016-07-09 11:26:36

    因为你这段代码根本没有调用过成员变量,所以注释掉也没什么问题。在前面加一个System.out.println(phone2.cpu);就有区别了

  • 慕数据1973840
    2016-07-09 11:21:27

    便于区分

Java入门第二季 升级版

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

530655 学习 · 6091 问题

查看课程

相似问题