如何在同一个类中调用两个方法?

时间:2016-09-09 07:49:03

标签: java function inheritance methods overloading

如何在一个对象上调用同一个类中的两个方法?我的意思是我尝试编写一个类,它是运行上面代码的方法:

wcstombs

我正在创建Calculate类及其两个方法。 do_calc()和get_volume(a)。我应该如何编写这个类来运行该代码。

5 个答案:

答案 0 :(得分:0)

如果不是return this;,则必须在每个课程方法的末尾static static。如果方法是public class Calculation { public static Calculation do_calc () { //do your calculation return null; } public static Calculation get_volume(int x) { //do your calculation return null; } } ,请执行以下操作:

Calculation.do_calc().get_volume(1);

然后你可以写:

null

返回return new Calculation();没问题,因为这些方法是静态的,并且与类的特定实例无关。如果你不喜欢它,那么public class Calculation { int result; public static Calculation do_calc () { //do your calculation Calculation c=new Calculation(); c.result = theResultOfTheCalculation; return c; } public void get_volume(int x) { //do your calculation for example: System.out.println(result + x); } }

[编辑]

如果需要将结果传递给第二个方法,第一个方法应该返回一个真实对象:

function regExpFromString(q) {
  let flags = q.replace(/.*\/([gimuy]*)$/, '$1');
  if (flags === q) flags = '';
  let pattern = (flags ? q.replace(new RegExp('^/(.*?)/' + flags + '$'), '$1') : q);
  try { return new RegExp(pattern, flags); } catch (e) { return null; }
}

console.log(regExpFromString('\\bword\\b'));
console.log(regExpFromString('\/\\bword\\b\/gi'));
            

答案 1 :(得分:0)

除非do_calc()返回de函数get_volume()所在的类,否则永远不应该这样做。

答案 2 :(得分:0)

以下是一些小样本。

public class ChainTest {

        public static void main(String[] args) {
                System.out.println(new ChainTest().do_calc().get_volume(1));
        }

        public ChainTest do_calc() {
                // do something;
                return ChainTest.this;
        }

        public int get_volume(int a) {
                return a;
        }
}

答案 3 :(得分:0)

您无需在一行中编写代码。您可以在不同的行中调用相同的对象方法。

Calculator calculator = new Calculator();
calculator.do_calc();
calculator.get_volume(a);

如果你想要静态方法

Calculator.do_calc();
Calculator.get_volume(a);

答案 4 :(得分:0)

案例1如果do_calc是静态的

public class Calculator {

    public static void main(String[] args) {
        System.out.println(Calculator.do_calc().get_volume(1));
    }

    public static Calculator do_calc() {

        Calculator calculator = new Calculator();
        // do something;

        return calculator;
    }

    public float get_volume(int a) {
        return a;
    }
}

案例2:如果do_calc不是静态的

public class Calculator {

    public static void main(String[] args) {
        System.out.println(new Calculator().do_calc().get_volume(1));
    }

    public Calculator  do_calc() {

        Calculator calculator = new Calculator();
        // do something;

        return calculator;
    }

    public float get_volume(int a) {
        return a;
    }
}

案例3:如果两者都有回复类型浮动,就像你在评论

中提到的那样
public class Calculator {

    public static void main(String[] args) {

        Calculator calculator = new Calculator();
        calculator.do_calc();
        System.out.println(calculator.get_volume(1));
    }

    public float do_calc() {

        // do something;

        return 1f; // return your result
    }

    public float get_volume(int a) {
        // do something;
        return a;
    }
}