方法调用的语法格式:
对象.非静态方法(实参列表)
形参和实参
形参(formal parameter):在定义方法时方法名后面括号中声明的变量称为形式参数(简称形参)即形参出现在方法定义时。
实参(actual parameter):调用方法时方法名后面括号中的使用的值/变量/表达式称为实际参数(简称实参)即实参出现在方法调用时。
调用时,实参的个数、类型、顺序顺序要与形参列表一一对应。如果方法没有形参,就不需要也不能传实参。
无论是否有参数,声明方法和调用方法时()都不能丢失
返回值问题
方法调用表达式是一个特殊的表达式:
如果被调用方法的返回值类型是void,调用时不需要也不能接收和处理(打印或参与计算)返回值结果,即方法调用表达式只能直接加;成为一个独立语句。
如果被调用方法有返回值,即返回值类型不是void,
- 方法调用表达式的结果可以作为赋值表达式的值,
- 方法调用表达式的结果可以作为计算表达式的一个操作数,
- 方法调用表达式的结果可以作为另一次方法调用的实参,
- 方法调用表达式的结果可以不接收和处理,方法调用表达式直接加;成为一个独立的语句,这种情况,返回值丢失。
package com.mathTools;
public class MathTools {
public void sayHello(){ //方法的返回值类型是void,调用时不需要也不能接收和处理(打印或参与计算)返回值结果
System.out.println("hello");
}
public int sum(int num1,int num2){
return num1 + num2;
}
public int max(int num1,int num2){
if (num1 > num2){
return num1;
}else {
return num2;
}
}
}
package com.mathTools;
public class MathTest {
public static void main(String[] args) {
MathTools mathTools = new MathTools();
mathTools.sayHello();//方法的返回值类型是void,调用时不需要也不能接收和处理(打印或参与计算)返回值结果
int a = 10;
int b = 20;
int sum = mathTools.sum(a,b);//方法调用表达式可以作为赋值表达式的值
System.out.println(sum);
int c = 20;
int d = 30;
int num = mathTools.sum(a,b) + mathTools.max(c,d);//方法调用表达式可以作为计算表达式的一个操作数
System.out.println(num);
int max = mathTools.max(mathTools.sum(b,c),a);//方法调用表达式可以作为另一次方法调用的实参
System.out.println(max);
mathTools.max(a,b);//方法调用表达式直接加;成为一个独立的语句,这种情况,返回值丢失
}
}
输出为:
实例方法使用当前对象的成员
在实例方法中还可以使用当前对象的其他成员。在Java中当前对象用this表示。
this:在实例方法中,表示调用该方法的对象
如果没有歧义,完全可以省略this。
public class Student {
public String stdName;
public int age;
public String gender;
public void sayhello(){
System.out.println("我叫"+this.stdName+",今年"+this.age+"岁,是一名"+this.gender+"生。");
}
}