何为方法
- java的方法类似于其他语言的函数,是一段用来完成特定功能的代码
方法的定义及调用
方法的定义
-
方法包含一个方法头和一个方法体 -
修饰符:可选的,告诉编译器如何调用该方法。定义了该方法的访问类型 -
返回值类型:方法可能会放回值。没有放回值的时候,关键字是void -
方法名:首字母小写,驼峰原则 -
参数类型:参数像是一个占位符 a. 形式参数:在方法被调用时用于接收外界输入的数据 b. 实参:调用方法时实际传给方法的数据 -
方法体:方法体包含具体的语句,定义该方法的功能
package com.MHP.method;
public class demo {
public static void main(String[] args) {
int max = max(1, 2);
System.out.println(max);
}
public static int max(int num1, int num2){
int result=0;
if(num1==num2){
System.out.println("num1=num2");
return 0;
}
if(num1>num2){
result=num1;
}else{
result=num2;
}
return result;
}
}
方法的调用
-
调用方法:对象.方法名(实参列表) -
java支持两种调用方法的方式,根据方法是否返回值来做选择 a. 当方法返回一个值的时候,方法调用通常被当作一个值 int large = max(30, 40);
b. 如果方法放回值时void,方法调用一定是一条语句 System.out.println("xxx")
方法重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数
方法的重载规则:
- 方法名称必须相同
- 参数列表必须不同(个数不同、类型不同、参数的排列顺序不同)
- 方法的返回类型可以相同也可以不同
- 仅仅返回类型不同不足以成为方法的重载
实现理论:
方法名称相同时,编译器会根据编译器调用方法的参数个数、参数类型等逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错
public static void main(String[] args){
double add=max(10.0, 20.0)
}
public static class int add(int a, int b){}
public static class int add(double a, double b){}
public static class int add(int a, int b,int c){}
命令行传参
可变参数
-
在声明方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须要在之前声明。 public void test(int... i){
}
递归
递归头
什么时候不调用调用自身方法,如果没有头,将陷入死循环
递归体
什么时候需要调用自身方法
public static void main(String[] args){
System.out.println(f(4));
}
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1)
}
}
练习
简易计算机
package com.MHP.method;
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner number = new Scanner(System.in);
System.out.println("请输入运算符号: ");
if (number.hasNextLine()) {
String s = number.nextLine();
System.out.println("请输入第一个数字: ");
if (number.hasNextDouble()) {
double d = number.nextDouble();
System.out.println("请输入第二个数字: ");
double e = number.nextDouble();
switch (s) {
case "+":
double add = add(d, e);
System.out.println("toatl=" + add);
break;
case "-":
double delete = delete(d, e);
System.out.println("toatl=" + delete);
break;
case "*":
double multiplication = multiplication(d, e);
System.out.println("toatl=" + multiplication);
break;
case "/":
double divide = divide(d, e);
System.out.println("toatl=" + divide);
break;
}
}
}
}
public static double add(double d,double e){
double total=0;
total=d+e;
return total;
}
public static double delete(double d,double e){
double total=0;
total=d-e;
return total;
}
public static double multiplication(double d,double e){
double total=0;
total=d*e;
return total;
}
public static double divide(double d,double e){
double total=0;
total=d/e;
return total;
}
}
|