【问题标题】:Classes and object issues in JavaJava 中的类和对象问题
【发布时间】:2014-02-03 21:28:55
【问题描述】:

我有一些问题。虽然我确实理解原因代码返回“Nothing”和 24.0,但我不太明白为什么会得到:“Nothing”24.0 和 9.0。有人可以更好地解释这个问题吗?谢谢,这是代码。

class Object {

    int w; int h; int d;

    void test() { System.out.print("araferi ");}

    double volum() {return w*h*d;}

    void volum(double x) {

    System.out.print(" "+ --x);}

 }


 public class Test {

    public static void main (String[] args){

       Object ob1=new Object();

       ob1.w=2;

       ob1.h=3;

       ob1.d=4;

       ob1.test();

       ob1.volum(10);

       System.out.print(" "+ob1.volum());
    }

 }

【问题讨论】:

  • 将类名Object改为ObjectTest,因为Object类是Java保留的类

标签: java class object


【解决方案1】:

ob1.volum(10); 行调用第二个 volum 方法,该方法递减然后打印其参数。这就是向您显示 9.0 的内容。

【讨论】:

    【解决方案2】:

    功能:

    void volum(double x) {
        System.out.print(" "+ --x);}
    }
    

    当您对传入的值 (10) 应用预减量时,将打印出一个值 9

    【讨论】:

      【解决方案3】:

      9.0 的输出来自这一行:

      ob1.volum(10);
      

      它接收10 作为参数,但在方法体中它被减少(--x),这就是你得到9 的原因。

      注意:不要使用 Object 作为类的名称,因为它是 the root of the class hierarchy in Java. 将其更改为其他名称,例如 MyObject

      【讨论】:

      • 他没有专门打印值为 9 的 volum 方法的结果,因为他的函数不返回结果,但它确实打印出值
      猜你喜欢
      • 2012-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      • 2015-03-16
      • 2017-09-01
      • 1970-01-01
      相关资源
      最近更新 更多