2014-05-25 20 views
1

「Java源文件中除註釋以外的第一條語句必須是包聲明 在可選的包聲明之後,可以有導入語句,它允許您從其他軟件包中指定可以被引用的類,而不需要使用它們的軟件包進行限定。「eclipse中令人困惑的關於包和導入關鍵字的聲明

在MainActivity.java文件中,我刪除了文件頂部的package語句,它說缺少必需的包。但根據上述說法,這是可選的。誰能解釋一下?

另外,使用packageimport關鍵字之間有什麼區別。包是一個具有.java擴展名的類文件的集合嗎?是僅用於單個類文件的導入。

com.example.hello_world文件夾僅包含MainActivity.java文件並且不包含其他文件。那麼,爲什麼我必須使用package關鍵字而不是import關鍵字?

謝謝。

+0

包類似於其他語言的名稱空間。包裹信息對於來自不同類別的服務也很重要..等等。這裏很好的概述[鏈接](http://www.artima.com/objectsandjava/webuscript/PackagesAccess1.html) – MortalFool

回答

0

這是一個Eclipse功能。

無論相應的.java文件位於何處,您的Java類都可以在任何package中。

例如,你可以有

package com.random; 

public class DoesntMatter {} 

,並有此.java文件住在/usr/wtv/DoesntMatter.java

在Eclipse中,但是,因爲它是如何管理你的項目,一個.java文件,將被編譯絕生活在與package聲明匹配的文件夾層次結構中(在源文件夾內)。如果不是,Eclipse會抱怨。

import聲明使您可以使用簡單的類型名稱。不必編寫

java.io.File file = new java.io.File("wtv"); 

的,你可以寫

import java.io.File; 

... 

File file = new File("Wtv"); 
0

包是該文件的文件夾。這是可選僅在文件不在一個包的情況。

導入是一個語句正在從不同的包引用的文件。

如果您只使用java.langjava.lang.Object,或者同一個包的文件,然後你不需要導入只要他們是毫不含糊的。

+0

所以如果你使用同一個包中的多個.java文件,而不是導入每個文件,你可以使用'包'聲明?我嘗試了這個,它給出了以下錯誤:'token on error error'package,import expected。'' – Radix

+0

不,包與導入不同。導入是在代碼中使用不同包中的文件,包是文件的放置位置。 – xTrollxDudex

+0

所以假設我有兩個java文件mainactivity.java和bundle.java,並假設我正在編輯mainactivity.java文件。如果我想在這個文件中使用bundle類,我不必導入它,因爲bundle.java位於mainactivity所在的同一個文件夾中?謝謝。 – Radix