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

1.对象初始化

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

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

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

//void方法仍可以返回,直接返回return
public 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);
  }

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

Java学习笔记二:初始化(一),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。