JDKNews

package JDKNews;

public class Demo01Direction01 {
	// 创建几个实例
		public static final Demo01Direction01 FRONT = new Demo01Direction01();
		public static final Demo01Direction01 BEHIND = new Demo01Direction01();
		public static final Demo01Direction01 LEFT = new Demo01Direction01();
		public static final Demo01Direction01 RIGHT = new Demo01Direction01();

		// 构造私有,别人就不能无限的创建了
		private Demo01Direction01() {
		}
}
package JDKNews;

public class Demo01Direction02 {
	// 创建几个实例
		public static final Demo01Direction02 FRONT = new Demo01Direction02("前");
		public static final Demo01Direction02 BEHIND = new Demo01Direction02("后");
		public static final Demo01Direction02 LEFT = new Demo01Direction02("左");
		public static final Demo01Direction02 RIGHT = new Demo01Direction02("右");

		// 构造私有,别人就不能无限的创建了
		// private Demo01Direction02() {
		// }

		// 加入成员变量,并去掉无参构造
		private String name;

		private Demo01Direction02(String name) {
			this.name = name;
		}

		public String getName() {
			return name;
		}
}
package JDKNews;

public abstract class Demo01Direction03 {
	// 创建几个实例
		public static final Demo01Direction03 FRONT = new Demo01Direction03("前") {
			@Override
			public void show() {
				System.out.println("前");
			}

		};
		public static final Demo01Direction03 BEHIND = new Demo01Direction03("后") {
			@Override
			public void show() {
				System.out.println("后");
			}

		};
		public static final Demo01Direction03 LEFT = new Demo01Direction03("左") {
			@Override
			public void show() {
				System.out.println("左");
			}

		};
		public static final Demo01Direction03 RIGHT = new Demo01Direction03("右") {
			@Override
			public void show() {
				System.out.println("右");
			}

		};

		// 构造私有,别人就不能无限的创建了
		// private Direction2() {
		// }

		// 加入成员变量,并去掉无参构造
		private String name;

		private Demo01Direction03(String name) {
			this.name = name;
		}

		public String getName() {
			return name;
		}

		// 加入抽象方法
		public abstract void show();
}
package JDKNews;

public class Demo01 {
	public static void main(String[] args) {
		Demo01Direction01 d = Demo01Direction01.FRONT;
		System.out.println(d); // cn.itcast_01.Direction@175078b
		System.out.println("------------------------------------");
		Demo01Direction02 d2 = Demo01Direction02.FRONT;
		System.out.println(d2);// cn.itcast_01.Direction2@11563ff
		System.out.println(d2.getName());
		d2 = Demo01Direction02.RIGHT;
		System.out.println(d2);
		System.out.println(d2.getName());
		System.out.println("------------------------------------");
		Demo01Direction03 d3 = Demo01Direction03.FRONT;
		System.out.println(d3);
		System.out.println(d3.getName());
		d3.show();

		d3 = Demo01Direction03.LEFT;
		System.out.println(d3);
		System.out.println(d3.getName());
		d3.show();
	}
}

枚举

package JDKNews;
/*
 * 通过JDK5提供的枚举来做枚举类
 */
public enum Demo02Direction01 {
	FRONT, BEHIND, LEFT, RIGHT;
}
package JDKNews;
/*
 * 通过JDK5提供的枚举来做枚举类
 */
public enum Demo02Direction02 {
	FRONT("前"), BEHIND("后"), LEFT("左"), RIGHT("右");

	private String name;

	private Demo02Direction02(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

	// @Override
	// public String toString() {
	// return "我爱林青霞";
	// }
}
package JDKNews;
/*
 * 通过JDK5提供的枚举来做枚举类
 */
public enum Demo02Direction03 {
	FRONT("前") {
		@Override
		public void show() {
			System.out.println("前");
		}
	},
	BEHIND("后") {
		@Override
		public void show() {
			System.out.println("后");
		}
	},
	LEFT("左") {
		@Override
		public void show() {
			System.out.println("左");
		}
	},
	RIGHT("右") {
		@Override
		public void show() {
			System.out.println("右");
		}
	};

	private String name;

	private Demo02Direction03(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public abstract void show();
}
package JDKNews;

public class Demo02DirectionDemo {
	public static void main(String[] args) {
		Demo02Direction01 d = Demo02Direction01.FRONT;
		System.out.println(d); // FRONT
		// public String toString()返回枚举常量的名称,它包含在声明中。
		System.out.println("-------------");
		Demo02Direction02 d2 = Demo02Direction02.FRONT;
		System.out.println(d2);
		System.out.println(d2.getName());
		System.out.println("-------------");
		Demo02Direction03 d3 = Demo02Direction03.FRONT;
		System.out.println(d3);
		System.out.println(d3.getName());
		d3.show();
		System.out.println("--------------");

		Demo02Direction03 dd = Demo02Direction03.FRONT;
		dd = Demo02Direction03.LEFT;

		switch (dd) {
		case FRONT:
			System.out.println("你选择了前");
			break;
		case BEHIND:
			System.out.println("你选择了后");
			break;
		case LEFT:
			System.out.println("你选择了左");
			break;
		case RIGHT:
			System.out.println("你选择了右");
			break;
		}
	}
}
package JDKNews;

public class Demo02EnumMethod {
	public static void main(String[] args) {
		// int compareTo(E o)
		Demo02Direction02 d21 = Demo02Direction02.FRONT;
		Demo02Direction02 d22 = Demo02Direction02.BEHIND;
		Demo02Direction02 d23 = Demo02Direction02.LEFT;
		Demo02Direction02 d24 = Demo02Direction02.RIGHT;
		System.out.println(d21.compareTo(d21));
		System.out.println(d21.compareTo(d24));
		System.out.println(d24.compareTo(d21));
		System.out.println("---------------");
		// String name()
		System.out.println(d21.name());
		System.out.println(d22.name());
		System.out.println(d23.name());
		System.out.println(d24.name());
		System.out.println("--------------");
		// int ordinal()
		System.out.println(d21.ordinal());
		System.out.println(d22.ordinal());
		System.out.println(d23.ordinal());
		System.out.println(d24.ordinal());
		System.out.println("--------------");
		// String toString()
		System.out.println(d21.toString());
		System.out.println(d22.toString());
		System.out.println(d23.toString());
		System.out.println(d24.toString());
		System.out.println("--------------");
		// <T> T valueOf(Class<T> type,String name)
		Demo02Direction02 d = Enum.valueOf(Demo02Direction02.class, "FRONT");
		System.out.println(d.getName());
		System.out.println("----------------");
		// values()
		// 此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便
		Demo02Direction02[] dirs = Demo02Direction02.values();
		for (Demo02Direction02 d2 : dirs) {
			System.out.println(d2);
			System.out.println(d2.getName());
		}
	}
}



package JDKNews;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class Demo03 {
	public static void main(String[] args) {
		// 二进制字面量
		int x = 0b100101;
		System.out.println(x);
		// 数字字面量可以出现下划线
		int y = 1_1123_1000;
		// 不能出现在进制标识和数值之间
		int z = 0x111_222;
		// 不能出现在数值开头和结尾
		int a = 0x11_22;
		// 不能出现在小数点旁边
		double d = 12.3_4;
		// switch 语句可以用字符串?自己回顾
		// 泛型简化
		ArrayList<String> array = new ArrayList<>();
		// 异常的多个catch合并
		method();
	}

	private static void method() {
		// try-with-resources 语句
		// try(必须是java.lang.AutoCloseable的子类对象){…}

		try {
			FileReader fr = new FileReader("a.txt");
			FileWriter fw = new FileWriter("b.txt");
			int ch = 0;
			while ((ch = fr.read()) != -1) {
				fw.write(ch);
			}
			fw.close();
			fr.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

		// 改进版的代码
		try (FileReader fr = new FileReader("a.txt");
				FileWriter fw = new FileWriter("b.txt");) {
			int ch = 0;
			while ((ch = fr.read()) != -1) {
				fw.write(ch);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值