目录
一、枚举类型
1、使用枚举类型设置常量
2、枚举类型常用方法
二、泛型
一、枚举类型
1、使用枚举类型设置常量
package 枚举;
public class Seasons {
public static final int SPRING=1;
public static final int SUNMMER=2;
public static final int AUTUMN=3;
public static final int WINTER=4;
}
package 枚举;
public enum Seasons2 {
SPRING,SUMMER,AUTUMN,WINTER;
}
package 枚举;
public class SeasinsMain {
public static void doit(int c) {
switch(c) {
case Seasons.SPRING:
System.out.println("doit():春天");
break;
case Seasons.SUNMMER:
System.out.println("doit():夏天");
break;
case Seasons.AUTUMN:
System.out.println("doit():秋天");
break;
case Seasons.WINTER:
System.out.println("doit():冬天");
break;
}
}
public static void doit2(Seasons2 s) {
switch(s) {
case SPRING:System.out.println("doit():春天");break;
case SUMMER:System.out.println("doit():夏天");break;
case AUTUMN:System.out.println("doit():秋天");break;
case WINTER:System.out.println("doit():冬天");break;
}
}
public static void main(String[] args) {
doit(Seasons.WINTER);
doit(1);
doit2(Seasons2.AUTUMN);
// TODO 自动生成的方法存根
}
}
2、枚举类型常用方法
package 枚举;
public enum Constants {
Constants_A,Constants_B,Constants_C;
}
package 枚举;
public class Constantsmain {
public static void main(String[] args) {
Constants enumArrays[]=Constants.values();
for(int i=0;i<enumArrays.length;i++) {
System.out.println("枚举类型成员的值"+enumArrays[i]);
}
System.out.println();
for(Constants tmp:enumArrays) {
System.out.println("for each枚举类型成员的值"+tmp);//for each输出
}
System.out.println();
Constants c1=Constants.Constants_A;
Constants c2=Constants.valueOf("Constants_A");//创建的值一定是要真实存在的
Constants c3=Constants.Constants_B;
Constants c4=Constants.Constants_C;
System.out.println("c1与c2是否相等"+c1.equals(c2));
System.out.println();
for(Constants tmp:enumArrays) {
System.out.println(c3+"与"+tmp+"的比较结果为:"+c3.compareTo(tmp));//for each输出
System.out.println(tmp+"在枚举类型中的索引:"+tmp.ordinal());
}
}
}
二、泛型
package 枚举;
import java.util.*;
public class List1 {
public static void main(String[] args) {
List<String> l1=new ArrayList<>();
l1.add("成员1");
List<?> l2=new ArrayList<Number>();
List <?> l3=l1;
// l2.add("成员2");//使用通配符,不能被修改
System.out.println("l1:"+l1.get(0));
l1.set(0, "成员改变");
System.out.println("l1:"+l1.get(0));
// l3.set(0,"变化");//因为又痛佩服,报错
// List<? extends List> l4=new ArrayList<Object>(); //给l4做了限定条件
List<? extends List> l4=new ArrayList<List>();//制定了上界
List<? super List> l5=new ArrayList<Object>();//指定了下界
}
}
package 枚举;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class fanxingmain <T extends List>{
fanxingmain<ArrayList> d1=new fanxingmain<ArrayList>();
fanxingmain<LinkedList> d2=new fanxingmain<LinkedList>();
// fanxingmain<hashset> d3=new fanxingmain<>();
}