1. 程式人生 > >Java 包與包之間的訪問 (類在不同包裡)

Java 包與包之間的訪問 (類在不同包裡)

package mypack;
 
class PackageDemo2{
	public static void main(String[] args) {
		//DemoA d=new DemoA();
		packa.DemoA d=new packa.DemoA();
		d.show();
		System.out.println("Hello package");
	}
}
/*
D:\畢Java\包\PackageDemo2.java:6: 錯誤: 找不到符號
		DemoA d=new DemoA();
		^
  符號:   類 DemoA
  位置: 類 PackageDemo2
D:\畢Java\包\PackageDemo2.java:6: 錯誤: 找不到符號
		DemoA d=new DemoA();
		            ^
  符號:   類 DemoA
  位置: 類 PackageDemo2

  原因 類名寫錯 
  應為DemoA類已經有包的所屬 所以必須要明確其包名 記住DemoA這個名字是錯誤的

	正確  的名稱是 包名.類名 packa.DemoA


2------------------------------------

D:\畢Java\包\PackageDemo2.java:7: 錯誤: 程式包packa不存在
		packa.DemoA d=new packa.DemoA();
		     ^
D:\畢Java\包\PackageDemo2.java:7: 錯誤: 程式包packa不存在
		packa.DemoA d=new packa.DemoA();


原始是在當前目錄下沒找到,以為packa 存放在其他目錄下
應該配置一個classpath

錯誤3----------------------------------
PackageDemo2.java:8: 錯誤: show()在DemoA中不是公共的; 無法從外部程式包中對其進行訪問
                d.show();

包中方法沒 public

總結:
包與包之間的類進行訪問,被訪問的包中的類必須是public的,被訪問包中類的方法也必須是public的


*/
 package packa;
public class DemoA {
	public  void show()
	{
		System.out.println("DemoA show run");
	}
}