java深入解析-第4章 方法、构造器与变量

1、作为应用程序入口的main方法,需要将其生命为public、static、void,并且参数为String类型的数组或可变参数。在程序启动时,由Java虚拟机调用。
2、main方法在表现行为上,与其他方法基本相同,可以重载、由其他方法调用、继承、隐藏,也可以抛出异常,带有类型参数。
3、当两个或多个方法的名称相同,而参数列表不同时,这几个方法就构成了重载。重载方法可以根据参数列表对应的类型与参数的个数来区分,但是,参数的名称、方法的返回类型、方法的异常列表与类型参数不能作为区分重载方法的条件。
4、重载时,选择调用的顺序:

  • 在第1阶段,自动装箱(拆箱)与可变参数不予考虑,搜索对应形参类型可以匹配实参类型并且形参个数与实参个数相同的方法。
  • 若步骤1中找不到,则在第2阶段,自动装箱与拆箱将会执行。
  • 若步骤2中找不到,则在第3阶段,可变参数的方法将会考虑。
  • 如果3个阶段都没有搜索到符合条件的方法,将会产生编译错误。如果符合条件的方法有多个,则选择最明确的。所谓最明确就是:如果A方法的形参列表类型对应的都可以赋值给B方法的形参列表类型,则A方法比B方法明确。如果无法选出最明确的方法,则会产生编译错误。

5、当方法的参数类型是类型变量时,可以首先将类型变量进行擦除,然后与普通类型的调用规则相同。
6、方法重载不同于方法重写。调用那个重载方法时根据实参的静态类型(编译时类型)决定的,与运行时实参的具体类型无关。

你可能感兴趣的:(java深入解析-第4章 方法、构造器与变量)