Java我做错了什么?
我正在使用命令行参数进行此操作:Java我做错了什么?,java,methods,error-handling,arguments,undefined,Java,Methods,Error Handling,Arguments,Undefined,我正在使用命令行参数进行此操作: public class Pg253E4 { public static void main(String[]args) { try { System.out.println(Average.average(args)); // This part is saying I don't have a method in Average called average(String[] argName)
public class Pg253E4 {
public static void main(String[]args) {
try {
System.out.println(Average.average(args)); // This part is saying I don't have a method in Average called average(String[] argName)
} catch(NullPointerException e) {
System.out.println(e.toString());
} catch(NumberFormatException e) {
System.out.println(e.toString());
} finally {
System.out.println("Nice job");
}
}
}
这是另一类:
public class Average {
public static double average(String[] arrayString) throws NullPointerException,NumberFormatException {
double sum=0;
double arrayStorage[] = new double[arrayString.length];
for(int i = 0; i< arrayString.length; i++) {
arrayStorage[i] = Double.parseDouble(arrayString[i]);
}
for(int i = 0; i<arrayString.length; i++) {
sum += arrayStorage[i];
}
return (sum/arrayString.length);
}
}
公共类平均值{
公共静态双平均(字符串[]arrayString)引发NullPointerException、NumberFormatException{
双和=0;
double arrayStorage[]=新的双精度[arrayString.length];
对于(int i=0;i 对于(int i=0;i尝试在主类中创建一个Average
类型的新对象。为此,在主方法上写下以下行:
Average a=新的平均值();
然后将您的System.out.println(Average.Average(args))
更改为
System.out.println(a.average(args))
如果您不使用软件包,则需要确保将average
导入到您的Pg253E4
类中:
import Average; // Assuming "Average" is not in a package.
public class Pg253E4
{
// The rest of your stuff
}
但最好至少使用一个软件包:
package yourpackage;
public class Pg253E4
{
// The rest of your stuff
}
package yourpackage;
public class Average
{
// The rest of your stuff
}
如果Pg253E4
和Average
没有足够的共同点,不能放在同一个包中,那么它们都应该放在各自的包中,在这种情况下,您必须再次将Average
导入Pg253E4
:
package yourfirstpackage;
import yoursecondpackage.Average;
public class Pg253E4
{
// The rest of your stuff
}
package yoursecondpackage;
public class Average
{
// The rest of your stuff
}
类路径中是否为平均值?Average
是否与Pg253E4
在同一个包中?如果未将Average
导入到Pg253E4
,则不必创建类型为Average
的对象,方法Average.Average()
是静态的。它们位于同一个包(默认包)中Java在使用默认包时有访问类和方法的问题。读取和。几乎总是建议使用包,而不是默认包。正确使用包,您将不必按照所选答案的指示实例化一个类来访问它的一个静态方法你需要做些什么。