一、定义
访问修饰符 返回数据类型 方法名(形参列表...){//方法体
语句;
return 返回值;
}
1、形参列表:表示成员方法输入,例如:getSum(int num1,int num2)
2、数据类型(返回值类型):表示成员方法输出,void 表示没有返回值
3、方法体:表示为了实现某一功能代码块
4、return 语句不是必须的
二、使用细节
1、返回数据类型
(1)、一个方法最多有一个返回值
(2)、返回类型可以是任意类型,包括基本类型或引用类型(数组、对象)
(3)、如果方法要求有返回类型,则方法体中最后执行语句必须是return语句,而且要求返 回值类型必须和return的值类型一致或兼容
public double f1(){
int a = 100;
return a;//可行,int -> double 自动类型转换
}
(4)、如果返回值类型是void,则方法体中可以没有return语句,或只写return;
public void f2(){
int n = 10;
return n;//会报错,错误:不兼容的类型:意外的返回值
}
public void f3(){//返回值类型为void,没有return语句可行或只写return;
System.out.println("hello world");
}
public void f4(){//返回值类型为void,只写return;可行
System.out.println("hello world");
return ;//不可以有返回的值
}
2、形参列表
(1)、一个方法可以有0个参数,也可以有多个参数,中间用逗号隔开
public void f5(){//没有参数
}
public void f6(int n1,int n2){//多个参数
}
(2)、一个参数可以为任意参数类型,包含基本类型或引用类型
public void f7(int[] arr){//引用类型参数
}
(3)、调用带参数的方法时,一定对应着参数列表传入相同类型或兼容类型的参数
(4)、方法定义时的参数称为形式参数,简称形参;方法调用时的参数称为实际参数,简称实参,实参和形参的类型要一致和兼容、个数、顺序必须一致
public class test{
public static void main(String[] args){
AA a = new AA();
int sum = a.getSum(10,20);//10、20为实际参数
}
}
class AA{
public int getSum(int n1,int n2){//n1、n2为形式参数
return n1 + n2;
}
}
3、方法体
方法体里面写具体的功能,但不能定义方法,即方法不能嵌套定义
class AA{
public void f8(){
public void f9(){//会报错,错误:非法表达式的开始
}
}
}
4、方法调用
(1)、同一个类中的方法调用:直接调用即可
(2)、跨类中的方法A类调用B类方法:需要通过对象名.方法名()
public class test{
public static void main(String[] args){
//跨类调用方法需要对象名
AA a = new AA();
a.m1();
}
}
class AA{
public void m1(){
System.out.println("m1方法被调用");
m2();//同一个类中的方法调用:直接调用即可
System.out.println("m1调用结束");
}
public void m2(){
System.out.println("m2方法被调用");
System.out.println("m2调用结束");
}
}