1.同包之間類的相互訪問
同包之間的類除了私有成員都可以相互訪問。
可以不使用完整類名。
2.不同包之間類的相互訪問
不同包之間兩個沒有關(guān)系的類(沒有繼承關(guān)系)只能訪問另一個包中公有類的公有成員。
如果沒有導(dǎo)入該類,則要使用完整類名。
公有類可以在另一個類中定義該類的對象,但成員能不能訪問還要看成員是否公有。(類的公有的則能定義類對象,但使用類方法還需看方法是否公有)
//文件名:A.java
package zhangsan;
public class A //只有public類才能被不同包中的其他類訪問
{
public void show() //只有public方法才能被不同包中的其他類訪問
{
System.out.println("嘿嘿");
}
}
//文件名:Test.java
package lisi;
class Test
{
public static void main(String[] args)
{
zhangsan.A a1 = new zhangsan.A();//未導(dǎo)入該類則需使用完整類名
a1.show(); //如果show方法不是公有,則這里使用show方法會報錯
}
}
輸出結(jié)果:
javac -d. A.java Test.java
java lisi.Test
嘿嘿
3.不同包的訪問訪問方式(三種方法)
- 使用完整類名。
//文件名:Test.java
package lisi;
class Test
{
public static void main(String[] args)
{
zhangsan.A a1 = new zhangsan.A();//未導(dǎo)入類A則需使用完整類名
a1.show();
}
}
- 使用import導(dǎo)入一個包中的所有的類。
//文件名:Test.java
package lisi;
import zhangsan.*; //*號表示zhangsan這個包中的所有類
class Test
{
public static void main(String[] args)
{
A a1 = new A();//導(dǎo)入了zhangsan這個包中的所有類
a1.show();
}
}
- 使用import導(dǎo)入一個包中特定的類。
//文件名:Test.java
package lisi;
import zhangsan.A; //導(dǎo)入zhangsan包中的類A
class Test
{
public static void main(String[] args)
{
A a1 = new A();//導(dǎo)入了zhangsan這個包中的所有類
a1.show();
}
}