JavaSE——day13JDK5以后的新特性

前言:
        JDK5以后引入的新特性有:方法的可变参数、增强for循环、静态导入、泛型、自动拆装箱。。。。  
        自动拆装箱传送门:https://blog.csdn.net/weixin_38930706/article/details/80082997
        泛型传送门:https://blog.csdn.net/weixin_38930706/article/details/80234087

增强for循环

    增强for循环可以大大减少我们遍历对象时的操作代码数,而且不用调用迭代器。但是增强for循环

    增强for循环的格式:
             for(数据大类型  变量名 : 数组或者集合对象名){
                          输出变量即可!
             }
例子:(部分代码)
import java.util.ArrayList;

public class Test3 {
	
	public static void main(String[] args) {
		
		//创建集合对象和学生类对象
		ArrayList<Student5> c =new ArrayList<Student5>() ;
		Student5 s1 = new Student5("aloha", 22) ;
		Student5 s2 = new Student5("alohaa", 222) ;
		Student5 s3 = new Student5("alohaaa", 2222) ;
		
		//添加到集合
		c.add(s1);
		c.add(s2);
		c.add(s3);
		
		//增强for循环遍历c集合
		for(Student5 stu : c) {
			System.out.println(stu.getName()+ "---"+ stu.getAge());
			if(stu == s2) {
				c.add(new Student5("insert",22222));
			}
		}
	}
}

输出结果:
    可以看出,使用增强for循环遍历虽然没有问题,但是若是在其中增加集合的添加功能,即在遍历集合的时候添加元素,会报出并发修改异常。但是对于数组,这样的问题不存在。

可变参数

    适用于当一个方法的参数个数不确定时的参数个数定义。
    格式: 修饰符 返回值类型  方法名(数据类型...变量名){...}
例子:
/**
 * 创建一个求未知个数的和的方法
 * @author malaganguo
 *
 */
public class Test4 {

	public static void main(String[] args) {
		
		System.out.println("1+2+3+4+5 = "+add(1,2,3,4,5));
	}
	
	//求未知个形式参数和的方法
	public static int add(int ... a) {

		int sum = 0 ;
		for(int ad : a ) {
			sum += ad ;
		}
		return sum ;
		
	}
}

结果:

静态导入

    我们一般使用导入的快捷键Ctrl+Shift+o这个快捷键可以导入到类这个级别的包,那么JDK5以后提供仅导入某一个静态方法的级别,这要求我们知道那些方法时可以静态导入的。我们知道的静态方法较多的有Math、Arrays。
    格式:import static 包名.类名.方法名;
例子:
import static java.lang.Math.abs;		//导入到方法的级别
import static java.lang.Math.pow;


		//可以使用带前缀的方式
		System.out.println(java.lang.Math.abs(-100));

如果提前导入了静态方法的话,可以直接使用这个方法。
注意:如果当前类和我们导入的方法中都存在一个方法名相同的方法,那么,就近原则默认使用的是当前类中的方法,如果要使用导入的方法,那么必须得加上前缀区分。

猜你喜欢

转载自blog.csdn.net/weixin_38930706/article/details/80250301