1靜態導入
作用:簡化書寫
格式:import static 包名.類名.靜態成員
例:
import static java.lang.System.out;
public class Demo{
public static void main(String[] args) {
out.println("靜態導入");
}
}
2增強for循環
作用:簡化迭代器書寫
格式:for (數據類型 變量名 :遍歷的目標){}
適用範圍:實現了Iterable藉口的對象和數組對象
增強for循環也是由JVM調用iteratoer實現的,所以和迭代器循環一樣,在使用增強for循環變量元素的過程中不準使用集合對象對集合的元素個數進行修改。
例:
public class Demo {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("增強for循環");
set.add("可變參數");
set.add("自動裝箱自動卸箱");
//使用增強for循環解決
for(String item : set){
System.out.println("元素:"+ item);
}
}
3可變參數
格式:數據類型... 變量名
本質是長度可變的數組。(數組的內存地址以[開頭)
注:可變參數必須是形參中的最後一個,且不能出現多個可變參數。
例:
public class Demo {
public static void main(String[] args) {
int[] arr = {1,2,45,6,7};
add(arr);
}
public static void add(int... arr){
int result = 0;
for(int item : arr){
result+=item;
}
System.out.println("arr數組總和:"+ result);
}
}
4自動裝箱、自動拆箱
8種基本數據類型不是對象,這是面嚮對象語言的遺憾,故出現其包裝類,好處是可以調用對象的方法。
例:
//str轉int
int i = Integer.parseInt("12");
//int轉str
String str = Integer.toString(12);
5枚舉
作用:簡化書寫
格式:enum 類名{}
使用範圍:某些方法須接受固定範圍的數據
注1:枚舉類是特殊的類,枚舉值就是枚舉類的對象。
注2:枚舉類的構造方法默認的修飾符是private的,枚舉類也可自定義修飾符爲private的構造函數;枚舉值默認的修飾符是public static final。
注3:枚舉類可以定義自己的成員變量與成員函數;枚舉類可以存在抽象 的方法,但是枚舉值必須要實現抽象 的方法。
注4:枚舉值必須要位置枚舉類 的第一個語句。
例:
enum Gender{
man("男"),woman("女");
String value;
private Gender(String value){
this.value = value;
}
}
class Person{
private String name;
private Gender sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Gender getSex() {
return sex;
}
public void setSex(Gender sex) {
this.sex = sex;
}
}
public class Demo {
public static void main(String[] args) {
Person p = new Person();
p.setName("A_Fei");
p.setSex(Gender.woman);
System.out.println("名字:"+ p.getName()+" 性別:"+ p.getSex().value);
}
}
其本質等價於:
class Gender{
String value;
public static final Gender man = new Gender("男");
public static final Gender woman = new Gender("女");
private Gender(String value) {
this.value = value;
}
}