如何在 Java 中调用另一个 class 的方法?
How do I call a method from another class in Java?
这是我的 3 个 classes:它们是主要方法,dog class 和 getFee class。
主要方法
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();
}
}
狗Class
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 Class
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;
}
}
在main方法部分,eclipse为什么报错?这不是我调用方法的方式吗?:
FeeCalculator getFeeStatment = new FeeCalculator();
getFeeStatement.getFee();
我们将不胜感激!
FeeCalculator
class 有带两个参数的方法 getFee()
。
public String getFee(Dog dog, Scanner input){}
您需要传递参数才能调用它。
改变
getFeeStatement.getFee();
到
getFeeStatement.getFee(dog,input );
变量名也不同,FeeCalculator getFeeStatment = new FeeCalculator();
和getFeeStatement.getFee(dog, input);
。 getFeeStatment
的拼写错误
你必须像这样传递方法参数:
getFeeStatement.getFee(dog, input);
getFee(dog,input);
--> Returns 一个字符串所以用它做点什么:-)
例如:
String s = getFeeStatement.getFee(dog, input);
System.out.println(s);
由于原型是
public String getFee(Dog dog, Scanner input)
您的调用 getFeeStatement.getFee();
需要两个参数,一个是 Dog
类型,另一个是 Scanner
类型。
根据您的代码,我认为您需要传递的是 getFeeStatement.getFee(dog, input);
此外,如果您需要保存从此函数获得的值,请记住将此语句分配给 String
变量。希望这有帮助。
如果您提供了 eclipse 抛出的错误,将会很有帮助。例如,您遇到错误的一个原因可能是拼写错误。检查您的初始化参数或不传递参数,但我怀疑是前者。你有:
FeeCalculator getFeeStatment = new FeeCalculator();
getFeeStatement.getFee();
现在,变量 getFeeStatment
不同于 getFeeStatement
,检查拼写。另一个是您的方法调用中没有参数。方法签名显示您需要两个参数。您需要传递两个参数才能工作。
P.S。也不要在包名中使用大写。 Java 包名使用小写字母是惯例。
要么在 TestKennel class 中为方法 getFee();
添加参数,要么在 FeeCalculator Class 中实现 getFee();
方法而不带参数!
这是我的 3 个 classes:它们是主要方法,dog class 和 getFee class。
主要方法
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();
}
}
狗Class
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 Class
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;
}
}
在main方法部分,eclipse为什么报错?这不是我调用方法的方式吗?:
FeeCalculator getFeeStatment = new FeeCalculator();
getFeeStatement.getFee();
我们将不胜感激!
FeeCalculator
class 有带两个参数的方法 getFee()
。
public String getFee(Dog dog, Scanner input){}
您需要传递参数才能调用它。
改变
getFeeStatement.getFee();
到
getFeeStatement.getFee(dog,input );
变量名也不同,FeeCalculator getFeeStatment = new FeeCalculator();
和getFeeStatement.getFee(dog, input);
。 getFeeStatment
你必须像这样传递方法参数:
getFeeStatement.getFee(dog, input);
getFee(dog,input);
--> Returns 一个字符串所以用它做点什么:-)
例如:
String s = getFeeStatement.getFee(dog, input); System.out.println(s);
由于原型是
public String getFee(Dog dog, Scanner input)
您的调用 getFeeStatement.getFee();
需要两个参数,一个是 Dog
类型,另一个是 Scanner
类型。
根据您的代码,我认为您需要传递的是 getFeeStatement.getFee(dog, input);
此外,如果您需要保存从此函数获得的值,请记住将此语句分配给 String
变量。希望这有帮助。
如果您提供了 eclipse 抛出的错误,将会很有帮助。例如,您遇到错误的一个原因可能是拼写错误。检查您的初始化参数或不传递参数,但我怀疑是前者。你有:
FeeCalculator getFeeStatment = new FeeCalculator();
getFeeStatement.getFee();
现在,变量 getFeeStatment
不同于 getFeeStatement
,检查拼写。另一个是您的方法调用中没有参数。方法签名显示您需要两个参数。您需要传递两个参数才能工作。
P.S。也不要在包名中使用大写。 Java 包名使用小写字母是惯例。
要么在 TestKennel class 中为方法 getFee();
添加参数,要么在 FeeCalculator Class 中实现 getFee();
方法而不带参数!