这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战
今天继续~
枚举
- 一般用来表示一组常量,比如1年4个季节
- 使用关键字
enum定义
enum Game{
CSGO,LOL
}
内部类中使用枚举
public class Test{
enum Game{
CSGO,LOL
}
public static void main(String[] args){
Game g1 = Game.CSGO;
System.out.println(g1);// 输出CSGO
}
}
ps:可以把枚举相应的理解为键值对相同的列表
迭代枚举元素
enum Game{
CSGO,LOL
}
public class Test{
public static void main(String[] args){
for(Game games : Game.values()){
System.out.println(games);
}
}
}
ps:values()可以获取所有值,通过java加强for循环来循环获取的值并把他们输出
在 switch 中使用枚举类
enum Game{
CSGO,LOL
}
public class Test{
public static void main(String[] args){
Game g1 = Game.CSGO;
switch(g1){
case CSGO:
System.out.println("反恐精英");
break;
case LOL:
System.out.println("英雄联盟");
break;
}
}
}
ps:枚举实例化所获取的值即单个值本身,可直接用在switch里进行匹配
values(), ordinal() 和 valueOf() 方法
values() - 返回枚举中的所有值
ordinal() - 返回枚举中的所有索引
valueOf() - 返回指定字符串的枚举常量
enum Game{
CSGO,LOL
}
public class Test{
public static void main(String[] args){
Game[] arr = Game.values();
for(Game gow : arr){
System.out.println(gow);// 值
System.out.println(gow.ordinal());// 索引
}
System.out.println(Game.valueOf("LOL"));
}
}
枚举类
- 枚举可以拥有自己的变量,方法,构造函数
- 枚举的构造函数必须是private
- 如果枚举类里面有抽象方法的话,它的实例必须实现它
enum Game{
CSGO,LOL;
private Game()
{
System.out.println("the game is start");
}
public void GameMode()
{
System.out.println("wa ha ha");
}
}
包
- 用于区别命名空间
- 把功能相关的类或接口放在一个包里方便应用
- 通过package关键字定义,要写在最前面 比如一个路径为code/java/hello.java的包定义应该为:
package code.java
public class hello{
}
java自带的包
java.lang - 打包基础的类
java.io - 包含输入输出功能的函数
创建包
写出两个相同包的文件:
package game;
interface Game{
public void watch();
public void play();
}
package game;
public class Computer implements Game{
public void watch(){
System.out.println("i watching you");
}
public void play(){
System.out.println("i want play");
}
public static void main(String[] args){
Computer cm = new Computer();
cm.watch();
cm.play();
}
}
然后去编译他们,通过mkdir来创建包:
mkdir game
cp Game.class Computer.class game
java game/Computer
Computer watch
Computer play
import 关键字
- 使用import关键字可以导入想要用的包
import 包名.*
ps:*代表导入这个包中的所有东西,可以把*替换成相应的类名来引入相应的类
package 的目录结构
类放在包中会有两种情况:
- 包名成为类名的一部分
- 包名必须与目录结构吻合
Java 数据结构
枚举
- 枚举接口定义了一种从数据结构中取回连续元素的方式
位集合
- 位集合类实现了一组可以单独设置和清除的位或标志
- 在设置和清除布尔值的时候非常有用
向量
- 向量和传统数组十分类似,但是向量可以动态变化
栈
- 可以想象成一个开口容器,先进后出
字典
- 它是一个键值对的集合
- 它是一个抽象类
哈希表
- 是一种用户定义键结构的基础上来组织数据的手段
属性
- 属性列表中每一个键对应的值都是一个字符串 今天就学到这里,晚安~