这是我的包算术,里面有一个名为arith.java的文件
package arithmatic;
public class arith{
public int add(int a, int b){
return(a+b);
}
}
在算术包之外有一个文件packagedemo.java
import arithmatic.*;
public class packagedemo{
public void disp(int a, int b){
System.out.println("Addition is : "+ add(a, b));
}
public static void main(String args[]){
packagedemo pd=new packagedemo();
pd.disp(20,10);
}
}
编译后给出了错误,
packagedemo.java:6: cannot find symbol
symbol : method add(int,int)
location: class packagedemo
System.out.println("Addition is : "+ add(a, b));
我真的不明白为什么这个错误会出现任何解决方案?
答案 0 :(得分:1)
只需导入一个类,就不能直接访问像这样的类成员方法
add(a, b)
首先需要创建arith
类的实例,然后使用该实例调用add
方法。像这样:
public void disp(int a, int b){
arith arithObj = new arith();
System.out.println("Addition is : "+ arithObj.add(a, b));
}
答案 1 :(得分:0)
您需要创建arith
的实例,因为方法add
是该类的insntance成员。
public void disp(int a, int b){
Arith art= new Arith();
System.out.println("Addition is : "+ art.add(a, b));
}
作为旁注,请遵循java命名约定,类名以大写字母开头。
public class Arith{
我猜您正在检查包级别访问,在这种情况下,您正在为protected
方法寻找add()
修饰符。因此,当您在其他包中创建Arith
insntance实例时,您将无法访问该受保护成员。现在它是公开的,你可以使用它。