Java新特性(一)

上一节里留下的问题很简单,这里就不多讲了,在这节中,我们开始学习java中的新特性。新特性内容包括泛型、自动装箱拆箱、for循环、可变长参数等。本节学习泛型、自动装箱拆箱和for循环。

我们知道,在C++java里都有构造方法,如果我们手工地定义了构造方法,那么程序将会调用我们自定义的构造方法,而不再去调用默认的构造方法。我们通过设置不同的参数值来重载多个不同的构造方法,每次调用构造方法的时候,程序会自动检测参数值的类型,然后通过对应的值去调用相应的方法,然而,方法的重载显得特别繁琐,如果我们需要十种参数的构造方法(此处假设参数个数相同),那么我们就需要重载十个相同的方法名的构造方法,这肯定给我们带来了不少的麻烦。

让我们感到欣喜的是,在java1.5里出现了泛型的概念,它可以帮助我们解决这个问题。比如我们需要定义一类New1_6的构造方法New1_6(),我们想向其中传入多种数据类型的值,那么我们就可以将这个方法这样定义:

public class New1_6<T>

{

public T t;

public New1_6(T t)

{

this.t=t;

System.out.println(t);

}

/**

 * @param args

 */

public static void main(String[] args)

{

boolean b=true;

new New1_6<>("Hello");

new New1_6<>(12*56);

new New1_6<>(b);

}

}

运行结果为:

Hello

672

True

以上例子中,T是一个不确定的类型,我们可以向T传递不同的类型,然后就可以得到不同的结果(注意:向构造方法传递的参数个数必须相等)。这里我们就领会到了泛型给我们带来的巨大方便,对于拥有相同参数个数的构造方法,我们不用再去重复地定义多个构造方法了。

接下来,我们来了解一下自动装箱与拆箱。我们在C++里经常会遇到数据类型强制转换的问题,然而java的新特性里面提供了一个自动进行这样的转换的功能,那就是自动装箱拆箱。为了更好地了解自动装箱与拆箱的功能,请看下面的例子。

public class New1_7

{

public static void main(String[] args)

{

Integer x=new Integer(5);

int y=6;

x=x+y;//自动装箱

System.out.println(x);

y=x;//自动拆箱

System.out.println(y);

}

}

自动装箱与拆箱概念很简单,使用也很方便,给程序员减轻了不少的负担。

本节最后一部分内容就是for循环了,这个内容非常重要,在实际项目当中经常用到。

以前我们使用C++时,要实现循环功能,一般都是使用类似for(int i=0;i<n;i++)这样的语句,然而在java里,进一步简化了我们使用循环操作的方法,下面给出一个例子:

public class New1_8

{

/**

 * @param args

 */

public static void main(String[] args)

{

String[] str={"Tom","Jack","Lily","Sue"};

for(String x:str)

{

System.out.println(x);

}

}

}

程序的执行结果为:

Tom

Jack

Lily

Sue

    看看,是不是比以前的循环使用起来方便多了呢?我们这节的内容就到这里,大家下去自己去编程实现以下这节的内容。

原文地址:https://www.cnblogs.com/jeancandoit/p/2306700.html