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

为什么在构造方法里按照老师的方法进行有参数构造方法赋值,运行结果却没有数值出现?

为什么在构造方法里按照老师的方法进行有参数构造方法赋值,运行结果却没有数值出现?

恶化石头 2016-07-02 22:07:55
在代码的最下面行有我数值的输入,Telephone phone2 = new Telephone(5.0f,1.4f,4f);就是因为不太懂老师说的那个到底是啥意思,跟System.out.println()里面到底有没有值到底是啥关系呢?老师也一直强调这个是“有参数的构造方法,可以对变量进行赋值。”所以希望java粉们给予解答~//Telephone.javapackage com.project;public class Telephone {    float screen;    float cpu;    float memory; /*    public Telephone(){ System.out.println("无参的构造方法!");}*/ public Telephone(float newScreen,float newCpu,float newMemory ){ if(newScreen<3.5f){ System.out.println("您输入的参数错误,自动赋值为3.5f"); newScreen=3.5f; }else{ screen=newScreen; } screen=newScreen; cpu=newCpu; memory=newMemory; System.out.println(); }}//initialTelephone.javapackage com.project;public class initialTelephone { public static void main(String[] args) { // TODO Auto-generated method stub/*//通过无参的构造方法创造对象 Telephone phone = new Telephone(); */ //通过有参的构造方法创造对象,并对对象中的实例变量赋初值Telephone phone2 = new Telephone(5.0f,1.4f,4f); }}
查看完整描述

5 回答

?
米沙之国

TA贡献30条经验 获得超16个赞

  • System.out.println()这样写里面没有任何变量只是起到换行的作用,System.out.println(screen)才会打印出变量screen的值,System.out.print()输出不换行;


  • Telephone phone2 = new Telephone(5.0f,1.4f,4f);会执行public Telephone(float newScreen,float newCpu,float newMemory )方法;


  • 如需输出Telephone类的属性,需将System.out.println()改为System.out.println("screen为"+screen+",cpu为"+cpu+",memory为"+memory);

查看完整回答
2 反对 回复 2016-07-03
?
慕粉3598667

TA贡献1条经验 获得超0个赞

System.out.println();是换行的意思 Java是面向对象的,在平时的练习过程中尽量多写方法和类,方法不调用是不会执行的 你写的代码虽然在测试类里创建了一个对象但没有用对象调用该方法而且方法没有返回值也没有输出语句使用console会报错


查看完整回答
反对 回复 2016-07-03
?
晟弡

TA贡献10条经验 获得超3个赞

System.out.println();这里是没有输出任何数值的,你可以输出一下那几个成员变量。

查看完整回答
反对 回复 2016-07-03
?
yanrun

TA贡献317条经验 获得超240个赞

System.out.println()只是为了输出是换行使用,和构造方法赋值没关系。你的类里不是有screen,cpu,memory三个变量嘛,有参的构造方法的作用就是在类初始化的时候给他们3个进行赋值。


查看完整回答
反对 回复 2016-07-03
  • 恶化石头
    恶化石头
    类初始化指的是在最开始就对变量进行赋值嘛? 意思是最后面对phone2的赋值无效是嘛?
  • yanrun
    yanrun
    类初始化的时候会调用构造方法,如果调用的是无参的构造方法,则不会对类的成员变量进行初始化。如果调用了带参的构造方法则根据构造方法的参数以及构造方法的具体实现对变量进行初始化。举个例子就是Telephone phone = new Telephone();这里的phone对象里的screen,cpu,memory没有被赋值都是默认值0,而Telephone phone2 = new Telephone(5.0f,1.4f,4f);phone2的screen,cpu,memory被分别赋值为5,1.4,4。
?
晓健

TA贡献4条经验 获得超3个赞

System.out.println();这里没有进行任何输出哦

查看完整回答
反对 回复 2016-07-02
  • 恶化石头
    恶化石头
    但是在代码的最下面行有我数值的输入,Telephone phone2 = new Telephone(5.0f,1.4f,4f); 就是因为不太懂老师说的那个到底是啥意思,跟System.out.println()里面到底有没有值到底是啥关系呢?老师也一直强调这个是“有参数的构造方法,可以对变量进行赋值。”
  • 晟弡
    晟弡
    你只是输入进去了,但是你并没有将数值输出,其实已经附上值了,输出出来就可以看出来了。
  • 5 回答
  • 0 关注
  • 1910 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信