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;
}
}