# 包定义
一个源文件可以以一个包声明开始:
``` 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))。