自动拆装箱、可变参数、静态导入、增强for

                1、自动拆装箱
			*装箱
				-把进本数据类型转换成包装类
			
			*拆箱
				-把包装类转换成基本数据类型
			
			*由于在jdk1.4没有自动拆装箱,而出现的新特性就会向下兼容,存在重载方法时候,一个需要自动拆装箱,另一个不需要,则在1.4版本,甚至以上的版本都会执行不进行自动拆装箱的方法。

				public static void doSomething(double m){
					System.out.println("double");
				}
				public static void doSomething(Integer m){
					System.out.println("Integer");
				}

			*代码演示
					public static void main(String[] args) {
	
						Integer i = 10;
						//自动装箱
						
						int  m = 1;
						//自动拆箱
						
						
					}
					//在jdk1.4里面实现拆装箱,jdk向下兼容,在1.4以上也可以运行
					public void test1()
					{
						Integer m = new Integer(10);
						//装箱
						
						int a = m.intValue();
						//拆箱
					}

		
		2、可变参数
			*可变参数可以应用在什么场景
			
			*实现2 3 4 个数的相加
				-如果实现的多个方法,这些方法里面的逻辑是一致的,仅仅是参数个数不同,那么这个时候就使用可变参数实现
			
			*语法: 数据类型...名称   与 JavaScript中的arguments一样的
				-可以理解为数组,这个数组用来存储传递过来的参数
			
			*注意:
				-可变参数必须写在方法的形式参数列表中,不能单独定义
				-在方法中,只能有一个可变参数
				-方法的形式参数列表中,可变参数必须放在最后面,代码如下

			*代码演示
					//可变参数
					public static void  add(int n , int...nums)
					{
						int sum = 0;
						for(int i=0 ; i<nums.length ; i++)
						{
							sum += nums[i];
						}
						System.out.println("sum = "+sum);
					}
                3、静态导入
			*可以在代码里面,直接使用静态导入方法
			
			*注:
				-//特有的方法,静态导入后可以直接写方法名
				-//都有的方法,静态导入后还是需要写方法所在的类名

			*代码演示
				import java.util.Arrays;
				import static java.util.Arrays.*;//导入的是Arrays这个类中的所有静态成员。
				import static java.lang.System.*;//导入了System类中所有静态成员。

				public class StaticImport {
					public static void main(String[] args) {
						int[] a={1,5,8,4,7,96};
						//特有的方法,静态导入后可以直接写方法名
						sort(a);
						//都有的方法,静态导入后还是需要写方法所在的类名
						System.out.println(Arrays.toString(a));
					}
				}

                4、增强for循环
			*语法:for(对应的数据类型 名称 :数据类型)

			*在数组可以使用,集合也可以
				-集合实现了Iterator接口,就可以使用增强for
					--list,set实现了Iterator接口,可以使用
					--map没有实现Iterator,不可以使用
			
			*增强for循环出现的目的:为了替代迭代器
				-增强for循环底层就是Iterator实现的

猜你喜欢

转载自blog.csdn.net/weixin_39531549/article/details/81433160
今日推荐