方法
方法:
定义行为;为了减少代码的重复性,可以被多次调用
声明方法:
方法是否有结果:有返回值
调用方法时,是否需要不确定数: 需要,则声明参数
方法如果有返回结果,此结果返回给调用者
格式:
返回数据类型: 方法名(参数列表){ }
返回数据类型: 无返回类型 void ;有返回类型,是结果的数据类型
方法案例一
public class Demo {
public static void main(String[] args) {
//输入两个数,求和
sum();
}
//自定义方法,实现输入两个数并求和
static void sum() {
//输入两个数,求和
Scanner sc = new Scanner(System.in);
int sum = 0, num = 0;
System.out.println("请输入第一个数:");
num = sc.nextInt();
sum += num;
System.out.println("请输入第二个数:");
num = sc.nextInt();
sum += num;
System.out.println("两个数的和:" + sum);
sc.close();//关闭与I/O的连接,释放资源
}
}
运行结果
方法详解
在一个类中,可以出现多个重命的方法,但要求方法的参数不同:个数、类型、同个数但类型不同,从而构成了方法的重载
方法案例二
public class Demo{
public static void main(String[] args) {
int sum = sum(10, 9); //返回结果为19
sop("sum->" + sum);//sum->19
sop("10+19+8=" + sum(10, 19, 8));//10+19+8=37
sop("10.5+19.25=" + sum(10.5, 19.25));//10.5+19.25=29.75
}
//有返回结果,有不确定的数
static int sum(int a, int b) { //方法的重载
if (a != 0 || b != 0)
return a + b; //结果返回之后,后面的语句就不会执行
//如果有返回结果,必须存在一个return语句
return 0;
}
//功能:三个数相加,返回和
static int sum(int a, int b, int c) { //方法的重载
return sum(sum(a, b), c);
}
//功能:实现2个小数相加的和
static double sum(double a, double b) { //方法的重载
return a + b;
}
//功能:打印指定的消息,无返回结果,但有不确定的数据(有参)
static void sop(String msg) {
System.out.println(msg);
//如果方法无返回数据,也可以使用return结束方法
return;
//return 之后的语句不能被执行--编译就不通过
//System.out.print("");
}
}
局部变量,及方法调用的背后
局部变量的作用域,只限于方法内部。
方法的调用:入栈,分配内存空间,初始化局部变量;
方法的返回: 出栈,释放内存空间,在方法中定义的局部变量也就消失;
方法案例
public class Demo {
public static void main(String[] args) {
int a = 100;
int b = 300;
int sum = add(a, b); //调用方法,并获取其计算的结果
sop("" + sum);
}
static int add(int a, int b) {
//默认对每一个数增加相应的值
a += 10;
b += 20;
int sum = a + b;
return sum;
}
static void sop(String msg) {
System.out.println(msg);
}
}
图解