展开全部
是否是说62616964757a686964616fe4b893e5b19e31333335303535 first.java中有A B C 三个类,second.java中有D E F 三个类,那么first和second是两个不同的包?不是,这是java文件的组织方式,因为java强制要求一个public类必须在一个同名的文件中,但是多个包访问权限的类是可以在同一个文件夹中的
First.javaclassA{
voidprint(){
System.out.println("A");
}
}
classB{
publicvoidprint(){
System.out.println("B");
}
}
classC{
publicvoidprint(){
System.out.println("C");
}
}
Second.javaclassE{
publicvoidprint(){
System.out.println("E");
}
}
classD{
publicvoidprint(){
System.out.println("D");
}
}
classF{
publicvoidprint(){
System.out.println("F");
}
}
A B C D E F都是在同一个包中,而不是ABC在firstFirst包中,而DEF在Second包中
改写Second.javapackagepackage2;
classE{
publicvoidprint(){
System.out.println("E");
}
}
classD{
publicvoidprint(){
System.out.println("D");
}
}
classF{
publicvoidprint(){
System.out.println("F");
}
}
你现在first.java中是无法访问EDF类的,这才是包的概念,另一个包中的(First.java中的ABC是在默认包中也是另外一个包)是无法访问EDF类的,因为他们是包访问权限,类只有两种权限,包访问权限和public权限
包访问是说我可以在first.java中访问second的某些方法或生成D E F对象吗?
是说如果first.java和second.java是在同一个包中,那么是可以的,但是如果不在同一个包中,并且那些类或方法是包访问权限,那是没有办法访问的
在添加一个类Third.javapackagepackage2.third;
classThird{
publicvoidprint(){
System.out.println("E");
}
}
classD{
publicvoidprint(){
System.out.println("D");
}
}
classF{
publicvoidprint(){
System.out.println("F");
}
}
这些类都是包访问权限,那么E.java中的类可以访问吗?不可以,包没有嵌套的概念,即使Third.java是在E.java的的子包中即E.java在package2中,而Third.java在package2.third
java中类的访问权限(不是内部类,内部类必须另加讨论)只有public和包访问权限,要么所有包中的类和方法都可以访问,要么只有在同一个包中的类才能访问,并且packagepackage2.third;
是在package2.third包中packagepackage2;
实在package2包中,这是两个不同的包,即使在电脑上third文件夹是在package2文件夹中