有限制地更改输出

时间:2018-06-30 09:37:23

标签: java function class

在此程序中,输出为:

70,60
30,40

但是我希望它是:

30,40
70,60

条件是:

  

请勿使用staticfinalthis(或其他关键字)。   而且,调用方法的顺序必须保持相同,并且方法的签名不能更改。

这是代码:

class Hello {
    int a = 30, b = 40;

    public void input(int a, int b) {
        System.out.println(a);
        System.out.println(b);
    }

    public void show() {
        System.out.println(a);
        System.out.println(b);
    }

    public static void main(String[] args) {
        Hello o = new Hello();

        o.input(70,60);
        o.show();
    }
}

4 个答案:

答案 0 :(得分:2)

似乎您在以错误的顺序调用方法:

o.show();
o.input(70,60);

答案 1 :(得分:1)

只需更改调用函数的顺序即可:-

代替此:

 public static void main(String...s)
        {
          Hello o=new Hello();
          o.input(70,60);
          o.show();
         }

更改

 public static void main(String...s)
            {
              Hello o=new Hello();
              o.show();
              o.input(70,60);
             }

如果您不想更改顺序,请调用以下函数:-

class Hello {
    int a = 30, b = 40;

    public void input(int a, int b) {
        show();
        System.out.println(a);
        System.out.println(b);
    }

    public void show() {
        System.out.println(a);
        System.out.println(b);
    }

    public static void main(String[] args) {
        Hello o = new Hello();

        o.input(70,60);
        //o.show();
    }
}

答案 2 :(得分:1)

交换o.input(70,60)o.show()语句。

public static void main(String...s)
    {
      Hello o=new Hello();
      o.show();
      o.input(70,60);
     }

答案 3 :(得分:1)

硬编码数字

更改硬编码数字:

int a = 70, b = 60;
...
o.input(30, 40);

方法顺序

或更改方法顺序:

o.show();
o.input(70, 60);

调整input

您还可以调整input方法以输出成员变量而不是参数,然后使用参数更新成员,以便show将打印更新的成员:

public void input(int a, int b) {
    System.out.println(this.a);
    System.out.println(this.b);

    this.a = a;
    this.b = b;
}

硬编码数学

类似地,您可以在没有this的情况下使用数学来达到相同目的:

public void input(int a, int b) {
    System.out.println(a - 40);
    System.out.println(b - 20);
}

public void show() {
    System.out.println(a + 40);
    System.out.println(b + 20);
}