首页 > 代码库 > Java学习笔记二:初始化(一)

Java学习笔记二:初始化(一)

1.对象初始化

在使用 new 初始化对象时,系统通常使用默认的构造函数,这个构造函数没有返回值,格式为:

public class InitializeTest{    private int a;        // 默认构造函数    public InitializeTest()    {            }        // 自定义构造函数    public InitializeTest(int a)    {        this.a = a;    }}

虽然在使用 new 创建实例时,返回了这个对象的引用,但是这个与没有返回值的void方法不同

//void方法仍可以返回,直接返回returnpublic void testMethod(){    return;}

注意:构造函数与void返回值的区别:

(1)构造函数没有返回值,这个方法在调用到时一定会执行完整个方法,构造函数中使用return编译不通过,而且不会在中途退出(除非抛出异常);

(2)void 返回类型为空,简单的理解是什么都不返回。但是在方法(特别是在接口定义中),我们能识别出看出返回的类型,而构造函数是无法识别的。

通常在void返回类型使用return时,会中断方法调用,方法在执行过程中可以被终止。

究竟void方法返回了什么呢?其实什么也没有返回,只是终止调用,抽象的理解确实返回了一些东西,比如方法的控制权。(不必深究,知道大概意思即可)

2.方法重载

构造函数和普通方法都能够重载,重载的定义:方法名相同,参数列表唯一。(区别与重写 override)

典型的例子:查看String.valueOf,可以看到方法名虽然一样,但是参数类表不一样,编译器去没有报错。

public static String valueOf(Object paramObject)  {    return ((paramObject == null) ? "null" : paramObject.toString());  }  public static String valueOf(char[] paramArrayOfChar)  {    return new String(paramArrayOfChar);  }  public static String valueOf(char[] paramArrayOfChar, int paramInt1, int paramInt2)  {    return new String(paramArrayOfChar, paramInt1, paramInt2);  }  public static String valueOf(boolean paramBoolean)  {    return ((paramBoolean) ? "true" : "false");  }  public static String valueOf(char paramChar)  {    char[] arrayOfChar = { paramChar };    return new String(arrayOfChar, true);  }  public static String valueOf(int paramInt)  {    return Integer.toString(paramInt);  }  public static String valueOf(long paramLong)  {    return Long.toString(paramLong);  }  public static String valueOf(float paramFloat)  {    return Float.toString(paramFloat);  }  public static String valueOf(double paramDouble)  {    return Double.toString(paramDouble);  }

注意:
不以返回值作区分重载方法的原因:有时候在调用函数时,会出现只调用方法,而忽略返回值的情形。