枚举
关键字:enum
是一个类,一种特殊的数据类型,不能被继承,实例化有参构造只能用private
修饰符修饰。第一行只能用来定义常量 ,多个常量用 ","分割,最后一个用";"结束。
用于管理固定的常量集合,不可外部增加、删除。
1: values( )方法
返回一个包含枚举类型所有枚举常量的数组
Day [] all = Day.values();
2:ordinal( )方法
返回枚举常量所在的索引
Month myMonth = Month.Monday;
int possition = myMonth.ordinal();
System.out.println(possition);
3:valueOf( )方法
通过枚举类型常量名称获取对应的枚举实例
GirlFriends g = GirlFriends.valueOf("mlq");
System.out.println(g.getName()+g.getAge());
单例模式
1.懒汉模式:
public class Singer1 {
/**
* 懒汉单例模式
*/
private static Singer1 instance;
private Singer1(){
System.out.println("吃了没?");
}
public static Singer1 GetInstance(){
if(instance == null){
instance = new Singer1();
}
return instance;
}
}
class Test03{
public static void main(String[] args) {
Singer1 instance = Singer1.GetInstance();
Singer1 instance1 = Singer1.GetInstance();
System.out.println(instance == instance1);
}
}
2.饿汉模式:
public class Singer2 {
/**
* 饿汉单例模式
*/
private static final Singer2 instance = new Singer2();
private Singer2(){
System.out.println("吃了没?");
}
public static Singer2 GetInstance(){
return instance;
}
}
class Test02{
public static void main(String[] args) {
Singer2 instance = Singer2.GetInstance();
Singer2 instance1 = Singer2.GetInstance();
System.out.println(instance == instance1);
}
}
3.内部类单例模式
public class Singer3 {
/**
* 内部类单例模式
* 将实例化放在内部类里
*/
private Singer3(){}
private static class Singer3hHolder{
private static final Singer3 instance = new Singer3();
}
public static Singer3 GetInstance(){
return Singer3hHolder.instance;
}
}
class Test04{
public static void main(String[] args) {
Singer3 instance = Singer3.GetInstance();
Singer3 instance1 = Singer3.GetInstance();
System.out.println(instance == instance1 );
}
}