2014-02-14 75 views
0

我對eclipse IDE中的術語及其用法感到困惑。與軟件包和導入語句混淆,包括默認包

這是我的理解,您可以使用import關鍵字來引用特定類/ java文件稱爲包的一組類/ java文件。您還可以通過使用通配符修飾符結束導入語句的結尾來引用整組類/ java文件。那麼爲什麼當你只需要在java src文件的頂部創建包聲明而不是進行導入呢?

例如:

文件夾結構:MYAPP>顯卡> .class1,.class2

,而不是這樣做:import myapp.graphics.*

我們能做到這一點?:右package myapp

所以乳清甚至有導入關鍵字?你不能只使用包myapp,並引用該類與說class1 example = class1();

其次,我試圖刪除package com.example.myapp,只是用import myapp.graphics.*導入類,但它給了我一個錯誤,指出"" does not match the expected package com.example.myapp。其中一個修補程序是move MainActivity.java to a default package。我選擇了該選項,並將其移至默認包,然後我可以使用import myapp.graphcis.*;語句,同時忽略package myapp.graphics語句而沒有任何錯誤。

我很困惑。另外,什麼是deauflt包?我在某處讀到使用默認軟件包是不好的做法。爲什麼?

謝謝。

+1

http://docs.oracle.com/javase/tutorial/java/package/packages.html – 2014-02-14 12:23:48

+0

我讀過它,它說package關鍵字僅用於告訴編譯器當前的java文件是編輯位於提及包中,並使用import關鍵字導入該包內的類或類。我對麼? @尼克希爾喬希你的說法與這個解釋衝突雖然。但是,你說你使用導入來只導入預先存在的類。 – user3292196

回答

0

據預言:

包是組織一組相關的類和接口 的命名空間。從概念上講,您可以將軟件包視爲與計算機上的其他文件夾相似的 。您可以將HTML頁面保存在一個 文件夾中,另一箇中的圖像以及另一個文件夾中的腳本或應用程序。 因爲使用Java編程語言編寫的軟件可以是由數百或數千個單獨的類組成的 ,所以通過將相關類和接口放入包中可以使事物保持組織。

因此,您可以將軟件包視爲組織者,與進口無關。

默認包根本沒有包。當您將該字段留空時,Eclipse會提醒您。使用它是不好的做法,因爲

使用默認包可能會創建名稱空間衝突。想象一下,你正在創建一個包含MyClass類的庫。有人在他的項目中使用了 您的圖書館,並且在他的 默認包中也有一個MyClass類。編譯器應該做什麼? Java中的包是 實際上是一個完全識別您的項目的名稱空間。所以它是 重要的是不要在現實世界的項目中使用默認包。

Why shouldn't we use the (default)src package?

+0

請使用'>'引號和反引號或4個空格縮進代碼 – 2014-02-14 12:30:26

+0

謝謝,完成(更改格式) – GreySwordz

+0

感謝您的解釋。 – user3292196

0

- 在類所在的位置。它用於構建完全限定的類名。

導入 - 用於合併預先存在的類,通過使用它可以利用它們的功能。

默認包 - 直接src文件夾下的位置,例如:SRC \ NoPackage.java

例如,如果NoPackage.java包含導入com.assertcheck.AssertTesting; then AssertTesting的參考文獻NoPackage類。

但是在AssetTesting類不能導入/使用NoPackage