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