zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    ADO.NET初学习
    phpstorm+xdeubg debugging 9000 is busy 提示端口不可以的处理办法
    mysql 乐观锁和悲观锁
    Laravel Facade 调用流程源码分析
    利用 反射ReflectionClass来查看里面的属性和方法
    PHP ArrayAccess 接口简单实例
    laravel service provider 简单实例
    从github 下载下来的PHP项目代码本地需要怎么部署
    PHP Closure 类的bind简介和使用
    PHP $this,self,static 的区别
  • 原文地址:https://www.cnblogs.com/jeancandoit/p/2306700.html
Copyright © 2011-2022 走看看