方法调用
同一个类中的方法,可以直接调用
写法:方法名(实参);
如果需要的数据不在目前编写的类当中,而在另一个类中(跨类访问与调用),则需要通过创建对象来访问/得到我们需要的数据
如果需要的数据在目前编写的类当中,则可以直接使用属性,也可以使用 方法名(实参); 来调用方法
如果方法中没有形参,则在调用时不需要传递实参
定义方法的时候,不会执行方法的代码,只有调用的时候才会执行,一个方法可以被多次调用
如果调用的方法有返回值,则调用后需要用一个变量接收返回值
在方法调用时,参数的个数必须匹配,参数的类型必须匹配,参数的顺序必须匹配
实际参数(实参)
真实传给方法的参数,叫实参。
实参可以是:常量、变量、表达式、函数等。
无论实参是何种类型的量,在进行方法调用时,它们都必须有确定的值,以便把这些值传送给形参。
写法:方法名(实参,实参);
形参和实参的类型要一致,java中的基本数据类型和引用数据类型都是按值传递,只不过引用数据类型传递的值是一个地址
在Java中,实参的值永远都是拷贝到形参中,形参和实参本质是两个实体
形式参数(形参)
形式参数是指方法名后括号中的变量
因为形式参数只有在方法被调用的过程中才实例化(分配内存单元),所以叫形式参数
写法: .....方法名(形参类型 形参名,形参类型 形参名){ 代码..... }
形参和实参的类型要一致,java中的基本数据类型和引用数据类型都是按值传递,只不过引用数据类型传递的值是一个地址
java中,形参是实参的一份拷贝,会在内存中额外开辟一块空间来存储形参的数据,形参和实参在内存中是两块空间
形式参数当方法调用完成之后就自动销毁了,形式参数也只会作用在此方法内
在Java中,实参的值永远都是拷贝到形参中,形参和实参本质是两个实体
void关键字
方法的返回值是可选的. 有些时候可以没有的,没有时返回值类型必须写成void
如果一个方法不需要返回值,则可以使用void关键字来定义方法
当然void定义的方法可以用return来结束,但是return后面不能有数据
写法: 修饰符 void 方法名称(形参){ 代码...... }
方法重载
在Java中,如果同一个类中包含了两个及两个以上方法名相同,方法参数的个数 或 参数类型的顺序(次序) 或 参数的类型不同的方法,则称为方法重载
方法重载的条件:
1、方法名必须相同
2、 参数列表必须不同,即参数的个数必须不同 或 参数的类型必须不同 或 类型的顺序(次序)必须不同(至少其中之一不同!!)
编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法!!!
方法重载与返回值类型是否相同无关,即返回值类型可以相同可以不同,方法重载也和形参名无关,即参数名可以相同可以不同
方法签名
方法签名:经过编译器编译修改过之后方法最终的名字
具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字
只要方法签名不同,就说明了它们并不是一个方法,这就是方法重载之所以允许的原因!!!
代码经过编译之后,然后使用JDK自带的javap反汇编工具查看具体操作:
-
先对工程进行编译生成.class字节码文件
-
在控制台中进入到要查看的.class所在的目录
-
输入:javap -v 字节码文件名字即可