java —— 包
一、概要
- 包的定义:类和接口等类型的集合,就像一个文件夹;
- 包的作用:
① 避免命名冲突;
② 根据特征进行分类;
③ 封装(访问控制); - 完全限定名、简名:
完全限定名:如属于包a的类Type记为 a.Type,a.Type 就是完全限定名,即它完整的名称;
简名:如属于包a的类Type记为 a.Type,Type就是简名,即它类名; - 导入声明:(导包)
① 单类型导入声明(在源程序中可以只使用简名)
import 完全限定名;
② 按需类型导入声明
import 包名.*;
注:
- “包名”所指定的包中包含的所有类型的名称都可以使用简名;
- 不可以过多使用按需类型导入声明;
- 在按需类型导入中,不可以导入不同层次的包中的类型名称,如jar包中的类如下:
import java.util.jar.*;
③ 静态导入声明:
静态导入:
类变量(静态字段)
类方法(静态方法)
import static 类型名称.标识符名称; (单静态导入声明)
import static 类型名称.*; (按需静态导入声明)
注:当程序多次使用特定类中的类变量或者类方法时,可以使用按需静态导入声明。
二、包的声明
- 包的定义格式:(包声明)
格式:package 包名; (多级包用逗号分开)
范例:package com.sehun;
- 无名包:
① 当源文件中不存在包声明时,该源文件中定义的类属于无包名;
② 属于无包名的类的完全限定名和简名一致; - 除了用完后就舍弃的测试类,类一般都要放到包中;
- 包声明所在的源程序中声明的所有类都属于该包;
package exo;
class Sehun {
//
}
class Chanyeol {
//
}
Sehun 和 Chanyeol 都属于包exo
注:
① 同一个包中的类可以通过简名进行访问;
② 包名的首字母是小写字母;
③ 一个包中不可以存在同名的包和类;
- 带包的Java类编译和执行:
- 包和目录:在创建包时,基本构成是将源文件和类文件放在与包名同名的目录中。
三、类和成员的访问属性(修饰符)
- 类的属性:
public类
非public类
- public类:公开访问;
非public类:默认访问; - public类的名称必须和源程序文件一致;
- 一个源程序中只可以定义一个或者零个 public 类;
- 成员访问属性:
公开(public)访问
限制公开(protected)访问
包(默认)访问
私有(private)访问
- 具有公开访问属性的只有 public 类中加上 public 进行声明的成员;
- 加上关键字 protected 和 private 进行声明的成员具有与其关键字名称相同的访问属性;
- 具有包访问(默认访问)
① public 类中为未加关键字进行声明的成员;
② 非 public 类中加上 public 进行声明的成员;
① 对于具有公开访问属性的成员,包的内部和外部都可以进行访问;
② 对于具有限制公开访问属性的成员,包内部及该类派生的类可以对其进行访问
③ 对于具有包(默认)访问属性的成员,只可以在包中对其进行访问;
④ 对于具有私有访问属性的成员,只可以在该类内部对其进行访问。
修饰符分类:权限修饰符、状态修饰符。