包全解析与枚举类
包
1.包的存在解决了什么问题?
包是为了解决同名类(类命名冲突)的问题 包可以看成目录
2.包的作用
- 防止命名冲突
- 更好组织类,便于管理与维护
- 可以保护类的方法,字段等(包访问权限)
3.包的命名规则
- 包名最好小写,不能以 .开始或者结尾 .是分隔符(相当于目录中的.)
- 包名前最好加上唯一前缀(例如,倒置域名)
- 不同机构命名方法不同
- 定义包语句需放在有效代码第一句
4.包名原则
包名一定要保持唯一
语法:
通过package关键字声明包 : package 包名;
5.编译带包的类
javac -d<目标目录> <xx.java源代码位置>
把 xx.java 编译到<目标目录>中,xx.java 中定义的包从<目标目录>开始创建。
目标位置:表示从给定的目标位置开始生成包
6.导包
import 全路径
何时使用 import ?
当需要的类不在同一包时,必须要用到import到包
import 用于告知类的具体位置 声明简明
1.不存在包的情况
2.编译后同包
3.编译后不用包
工程最佳管理方案
保持源文件的目录和源文件的包保持绝对一致
7.不同包中的同名类
- 导入一个包 import com.k.Dog
Dog dog = new Dog();
com.k1.Dog dog = new com.k1.Dog();
2.导入 *
8.系统常用包
包名 | 包简介 |
---|---|
java.lang | java 语言特性包,包含常用的数据类型,例如 String,jvm 会默认到 lang 包。 |
java.util | 工具包。Arrays ,ArrayList等类 |
java.io | 输入输出流 IO包 |
java.net | 网络编程包 |
java.sql | 数据库编程 |
java.text | 文本处理包 |
java.math | 高精度数学计算 |
枚举
枚举是一种特殊的类,固定的一个类只能有哪些对象,格式
public enum 枚举类名{
常量对象A,常量对象B,常量对象C;
}
注意
1.自定义的枚举类底层是直接继承了 java.lang.Enum
类
2.枚举中都是全局公共的静态常量,可以直接使用枚举类名调用
3.枚举类不能创建对象,因为构造器是私有化的
例子
public class personType {
public static final personType MEN = new PersonType();
public static final personType WOMEN = new PersonType();
private ClothType() {}
}
- 用枚举类表示
//enum PersonType本质上是一个类,提供了私有构造方法,自定义enum都是继承Enum类
public enum PersonType {
//enum枚举中的枚举值本质是当前类的对象
MEN, WOMEN;
}
- 枚举类的常用方法
toString()
:一字符串的形式输出枚举值name()
:返回名字ordinal()
:返回该值的所在索引
public class Test01 {
public static void main(String[] args) {
PersonType s = PersonType.WOMEN;
System.out.println(s.toString());
System.out.println(s.name());
System.out.println(s.ordinal());
}
}