如何从Java中的另一个类调用方法?

时间:2015-05-05 10:56:00

标签: java class methods

这是我的3个类:主要方法,狗类和getFee类。

主要方法

package test;

import java.util.Scanner;
import pets.Dog;
import Utilities.FeeCalculator;

public class TestKennel 
{
    public static void main(String[] args) 
    {   
        Scanner input = new Scanner(System.in);

        Dog dog = new Dog();

        System.out.println("Hello " + dog.name + ", who's a good dog?");

        dog.talk(); 

        FeeCalculator getFeeStatment = new FeeCalculator();

        getFeeStatement.getFee();

        input.close();
    }

}

狗类

package pets;

public class Dog 
{
    public String name = "Fido";
    public byte age = 10;
    public void talk()
    {
        System.out.println("Woof Woof Woof!!!");
        System.out.println("I am " + age * 7 + " the equivalent of human years old.");
    }
}

最后是getFee类

package Utilities;

import pets.Dog;
import java.util.Scanner;

public class FeeCalculator 
{
    double dailyRate;

    public String getFee(Dog dog, Scanner input)
    {
        System.out.println();
        System.out.println();

        System.out.println("What is the name of your pet?");
        dog.name = input.next();

        System.out.println("Input how many days your pet will be staying.");
        int numberOfDays = input.nextInt();

        String feeStatement = "The cost for boarding "
                                + dog.name
                                + " for "
                                + numberOfDays
                                + " days is $" + numberOfDays * dailyRate;

        return feeStatement;
    }
}

在主要方法部分,为什么eclipse会给我一个错误?这不是我怎么称呼方法?:

FeeCalculator getFeeStatment = new FeeCalculator();

getFeeStatement.getFee();

帮助将非常感谢!

3 个答案:

答案 0 :(得分:0)

因为原型是

public String getFee(Dog dog, Scanner input)

您的通话getFeeStatement.getFee();需要两个参数,一个是Dog类型,另一个是Scanner类型。

根据您的代码,我认为您需要传递的是getFeeStatement.getFee(dog, input);

此外,如果您需要保存从此函数获取的值,请记住将此语句分配给String变量。希望这会有所帮助。

答案 1 :(得分:0)

如果您提供了eclipse正在抛出的错误,那将会很有帮助。例如,您收到错误的一个原因可能是拼写错误。检查你的初始化参数或不传递参数,但我怀疑前者。你有:

        My footer
      </div>
    </body>
    </html>

现在,变量 FeeCalculator getFeeStatment = new FeeCalculator(); getFeeStatement.getFee(); getFeeStatment 不同, 检查拼写 。另一个是你的方法调用中没有参数。方法签名显示您需要两个参数。您需要传递两个参数才能正常工作。

P.S。还要停止在包名中使用大写。对于包名称使用小写是一种Java修辞。

答案 2 :(得分:0)

在TestKennel类中为方法getFee();添加参数,或在不带参数的FeeCalculator类中实现getFee();方法!