# 包定義
一個源文件可以以一個包聲明開始:
``` kotlin
package foo.bar
fun baz() {}
class Goo {}
// ...
```
源文件的所有內容(包括類和函數)都通過包聲明。
所以在上面的示例中,`bax()` 的完整名稱是 `foo.bar.baz`,而 `Goo` 的完整名稱是 `foo.bar.Goo`。
如果不指定包,文件則歸于沒有名稱的“default”包。
## 導入
除了默認的導入,每個文件可以包含自己的導入命令。
導入語法在章節 [grammar](grammar.html#imports) 中。
我們可以導入任何單獨的名稱,例如:
``` kotlin
import foo.Bar // Bar 現在可以無限制訪問
```
或者范圍內所有可訪問的內容(包、類、對象等):
``` kotlin
import foo.* // foo 中的所有東西都可訪問
```
如果出現全名沖突,我們可以通過使用 `as` 關鍵字局部重命名實體來消除岐義:
``` kotlin
import foo.Bar // Bar 可訪問
import bar.Bar as bBar // bBar 代替 'bar.Bar'
```
`import` 關鍵字并不局限于導入類;你也可以用它導入其它聲明:
* 頂層函數和屬性;
* [object declarations](object-declarations.html#object-declarations) 中聲明的函數和屬性
* [enum constants](enum-classes.html)
與 Java 不同的是,Kotlin 沒有單獨的 “import static” 語法;所有導入聲明都使用同樣的 `import` 關鍵字。
## 頂層聲明的可見性
如果一個頂層聲明被標記為 `private`,那么它對于聲明所在的文件是隱蔽的(查看 [Visibility Modifiers](visibility-modifiers.html))。