JavaSE——JDK1.5新特性
2019-06-08 21:48
344 查看
1.可变参数
要求:要设计一个方法用于计算任意参数的整数的相加结果,早期实现(数组):
public class Test{ public static void main(String[] args) { System.out.println(add(new int[]{1})); System.out.println(add(new int[]{1,2,3})); System.out.println(add(new int[]{1,4,6})); System.out.println(add(new int[]{1,1,3,4,4})); } public static int add(int[] data){ int result = 0; for (int i = 0; i < data.length; i++) { result += data[i]; } return result; } }
JDK1.5之后追加了
可变参数概念,定义格式如下:
publlic [static] [final] 返回值 方法名(参数类型 参数名, 参数类型...参数名称){}
方法的可变参实现上面的要求:
public class Test{ public static void main(String[] args) { System.out.println(add(1,3,4));//随意传递的内容,随意个数 System.out.println(add(new int[]{1,2,3}));//可变参数可以接收数组 System.out.println(add(new int[]{1,4,6})); System.out.println(add(new int[]{1,1,3,4,4})); } public static int add(int...data){ int result = 0; for (int i = 0; i < data.length; i++) { result += data[i]; } return result; } }
可变参的本质上是数组,一个方法中只允许一个可变参,并且可变参一定是方法最后一个参数,传递多类参数示例:
public class Test{ public static void main(String[] args) { System.out.println(add("Hello")); System.out.println(add("Hello",1,4,5,6)); System.out.println(add("Hello",new int[]{1,2,3})); } public static int add(String msg,int ... data) { int result = 0 ; for (int i = 0; i < data.length; i++) { result += data[i] ; } return result ; } }
2.foreach(增强型for循环)
原始数组的输出使用for循环完成,示例如下:
public class Test{ public static void main(String[] args) { int[] data = new int[] { 1, 2, 3, 4, 5 }; // 原始数组 for (int i = 0; i < data.length; i++) { System.out.println(data[i]); // 通过循环控制索引下标 } } }
foreach语法:
for(数据类型 临时变量 : 数组(集合)){ //循环次数为数组长度,而每一次循环都会顺序取出数组中的一个元素赋值给临时变量 }
示例如下:
public class Test { public static void main(String[] args) { int[] data = new int[] { 1, 2, 3, 4, 5 }; // 原始数组 for (int i : data) { // 将数组中每个元素赋值给i System.out.println(i); // 这种循环避免了角标的问题 } } }
3.静态导入
MyMath类:
package www.xpu.java.util; public class MyMath { public static int add(int x, int y) { return x + y; } public static int sub(int x, int y) { return x - y; } }
首先导入MyMath类,然后通过MyMath类调用所有静态
方法:
package www.xpu.java.test; import www.xpu.java.util.MyMath; public class TestDemo { public static void main(String[] args) { System.out.println(MyMath.add(10, 20)); System.out.println(MyMath.sub(30, 10)); } }
从JDK1.5开始,将一个类的所有静态域(包括静态属性方法) ,全部导入到使用类中,此时的调用属性和方法不再需要类名,可以被主方法直接调用:
package www.xpu.java.test; import static www.xpu.java.util.MyMath.*; // 静态导入 public class TestDemo { public static void main(String[] args) { System.out.println(add(10, 20)); System.out.println(sub(30, 10)); } }
实际上这种方法效率不高,开发中不建议使用
相关文章推荐
- JavaSE----API之集合(Collection、List及其子类、Set及其子类、JDK1.5新特性)
- JavaSE基础学习笔记-提高篇-JDK1.5新特性
- JavaSE基础学习笔记-提高篇-JDK1.5新特性-泛型
- [java]jdk1.5的新特性----可变参数、增强for循环、枚举、单例模式
- 让maven2编译时使用jdk1.5(5.0)的特性
- 【转】JDK1.5-1.9新特性
- javaSE_8系列博客——Java语言的特性(一)--关于面向对象基本概念的理解(2)--对象
- JDK各个版本的新特性jdk1.5-jdk8
- JDK1.5新特性(七)……Annotations
- 黑马程序员——Map集合类与集合数组工具类及JDK1.5后的新特性
- JDK1.5 新特性
- javaSE_8系列博客——Java语言的特性(三)--类和对象(14)--初始化字段
- Java基础18--泛型--工具类--JDK1.5新特性
- javaSE_8系列博客——Java语言的特性(三)--类和对象(18)--嵌套类(匿名类)
- jdk1.5 jdk1.6 jdk1.7 jdk1.8 特性
- jdk1.5新特性2之动态参数列表
- javaSE_8系列博客——Java语言的特性(四)--注解--(2)-- 声明一个注解
- javaSE_8系列博客——Java语言的特性(四)--注解--(3)-- 预定义注解
- JDK1.5 引入的新特性
- 学习笔记_JavaSE_27_反射、类加载器、JDK5,7,8的新特性