您的位置:首页 > 编程语言 > Java开发

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

实际上这种方法效率不高,开发中不建议使用

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: