Java Can';t在同一个包中实例化公共类
所以我把这个java文件设为A.javaJava Can';t在同一个包中实例化公共类,java,access-modifiers,Java,Access Modifiers,所以我把这个java文件设为A.java package alphabet; public class A{ private String private_A; String _A; protected String protected_A; public String public_A; public A(){ private_A="Private A"; _A="Package Private A"; protecte
package alphabet;
public class A{
private String private_A;
String _A;
protected String protected_A;
public String public_A;
public A(){
private_A="Private A";
_A="Package Private A";
protected_A="Protected A";
public_A="Public A";
}
public static void main(String[] args) {
}
}
和同一个包中的另一个类
package alphabet;
import alphabet.A;
public class B{
void methodB1(){
}
public static void main(String[] args) {
A AinB = new A();
}
}
当我编译B
时,我不能实例化A
。
为什么呢A
是一个公共类,而B
属于同一个包?难道B
不能创建A
的实例吗
这很不错,不过谢谢你
编辑:收到这些错误
*@*:~/rand$ javac B.java
B.java:3: error: cannot find symbol
import alphabet.A;
^
symbol: class A
location: package alphabet
B.java:9: error: cannot find symbol
A AinB = new A();
^
symbol: class A
location: class B
B.java:9: error: cannot find symbol
A AinB = new A();
^
symbol: class A
location: class B
3 errors
编辑:删除了仍然存在这些错误的导入语句
B.java:9: error: cannot find symbol
A AinB = new A();
^
symbol: class A
location: class B
B.java:9: error: cannot find symbol
A AinB = new A();
^
symbol: class A
location: class B
2 errors
删除类B中的import语句。您不需要从同一个包中导入。您有两个主要方法,您应该只有一个用于启动程序的方法,请尝试在be中创建一个对象或任何您想首先运行的类:
package alphabet;
public class A{
private String private_A;
String _A;
protected String protected_A;
public String public_A;
public A(){
private_A="Private A";
_A="Package Private A";
protected_A="Protected A";
public_A="Public A";
}
public static void main(String[] args) {
B bclass = new B();
bclass.yourmethod();
}
}
由于您的类位于包alphabet中,因此需要将它们放在名为alphabet的子目录中,然后使用以下命令行从其父目录运行javac:
javac alphabet/B.java
问题是你编译错了。因为您使用的是包,所以在编译时需要在包之外 因此,不是
javacb.java
创建一个名为与包名相同的文件夹/目录,即alphabet
,并将java文件移动到其中
使用
javac alphabet/B.java
是否出现编译错误?如果是,它会说什么?\u A=“Package Private A”;这是正确的吗?你怎么知道它不工作?我没有看到任何来自类的输出删除导入statement@KonstantinosChalkias是的,这是一个有意义的编辑,这是我最初写的,但是当我得到找不到符号错误时,我输入了导入。现在就把它删除了,并且发布了一些不重要的错误。你可以有很多你喜欢的主要方法,它们不会导致这个问题。马上!谢谢,我知道事情很简单。