1、枚舉
*建立枚舉類
public enum Grade {
A,B,C,D,E;
}
*使用匿名內部類
enum Grade {
A("100-90"){
public String toLocalString(){ return "優"; }
}
}
*私人構造方法
A("100-90")
private String value;
private Grade(String value){
System.out.println("value "+value);
this.value=value;
}
public String getValue(){return value;}
2、遍曆
*普通的方式遍曆
for(int i=0;i<list.size();i++)
*普通的方式遍曆,使用迭代器
Iterator<String> it=list.iterator();
while(it.hasNext())
*使用增強for迴圈 使用泛型
for(String str:list)
*使用增強for迴圈 ,沒有使用泛型
for(Object str:list)
*使用增強for迴圈 ,數組中存放時javaBean
for(Person person:persons)
3、可變參數
public static Integer sum(Integer ... arrs)
4、反射
*調用某個類的 class 屬性 (無須調用方法, 效能更好)
Class clazz=Person.class;
*調用某個對象的 getClass() 方法
Person person=new Person();
Class clazz=person.getClass();
*使用 Class 的 forName(className) 靜態方法
Class clazz=Class.forName("cn.itcast.reflect.Person");
*調用方法
Class[] parameterTypes={java.lang.String[].class};
Method method=clazz.getMethod("main", parameterTypes);
String[] args={"aa","bb"};
method.invoke(person, new Object[]{args});
*擷取欄位
Field field=clazz.getDeclaredField("grade");
*擷取欄位的值
field.get(person)
*設定欄位的值
field.set(person, "N");
* 擷取對象
Object obj=clazz.newInstance();
Person person=(Person)obj;
*擷取構造方法
Class[] parameterTypes={java.lang.String.class,java.lang.Integer.class};
Constructor constructor=clazz.getConstructor(parameterTypes);