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

原创 2015年07月07日 15:19:36

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

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

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

版权声明: 举报

相关文章推荐

java笔记之局部变量、成员变量和构造器

前言 因为谈构造器,可定涉及到super关键字和this关键字。 其中This指的是当前对象的引用,super是当前对象里面的父类对象的引用。 所以在写正文之前,先来谈谈Super关键字。 Suppe...

OC中实例变量初始化方法,setter方法以及便利构造器的不同

OC实例变量初始化方法 1.使用实例初始化方法 initWith开头的方法 2.使用实例setter方法 默认初始化方法 + setName:xxx setAge:xx  3.使用构造器 类名+Wi...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Scala类的定义,主/辅构造器,以及方法中的变量定义,单例对象,伴生对象,Apply方法调用,应用程序对象

1. 类1.1. 类的定义package cn.toto.scala.day2/** * 在Scala中,类并不用声明为public类型的。 * Scala源文件中可以包含多个类,所有这些类都...

3. 定义一个分数类(Fraction) 实例变量:分子,分母 方法:初始化方法(2个参数),便利构造器,约分,打印,加,减,乘,除。

3. 定义一个分数类(Fraction) 实例变量:分子,分母 方法:初始化方法(2个参数),便利构造器,约分,打印,加,减,乘,除。 ...

【effective java】考虑用静态工厂方法替代构造器

这里所说的静态工厂方法就是返回类型实例的静态方法。 那么为什么不使用构造器呢?用构造器方式构造实例不是我们一直约定好的吗? 嘿嘿 主要原因还是我们的构造器方法规定的太多限制了我们程序的灵活性: ...

用jni API 访问java对象的属性,方法,调用构造器

jni学习毕竟: 访问类对象的属性: env 为 JNIEnv,obj的类型为jobject JAVA_FieldAccessDemo_accessField(JNIEnv *env...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)