一、 什么是方法:
在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法。
方法的好处
- 复用代码,便于修改
- 直接调用方法,降低难度
方法声明格式:
[修饰符1 修饰符2 …] 返回值类型 方法名(形式参数列表){ Java语句;… … … } |
方法的调用方式:
对象名.方法名(实参列表) |
方法的详细说明
- 形式参数:在方法声明时用于接收外界传入的数据。
- 实参:调用方法时实际传给方法的数据。
- 返回值:方法在执行完毕后返还给调用它的环境的数据。
- 返回值类型:事先约定的返回值的数据类型,如无返回值,必须指定为void。
return关键字
return是返回的意思 在java中有两个作用
- 结束一个方法:
public class Method1 {
public static void main(String[] args) {
if (3 > 2) {
return;
}
System.out.println("Hello World");
}
}
注:Hello World不会输出 return将main()结束
2. 结束一个方法并将值返回到方法的调用处:
public class Method2 {
public static void main(String[] args) {
int sum = getSum(10, 20);
System.out.println(sum);//30
}
private static int getSum(int num1, int num2) {
int sum = num1 + num2;
return sum;
//System.out.println("如果我能输出 给你一百万");
}
}
注:1.此时的return 将 getSum()方法结束 并将sum的值返回到方法的调用处
2.return下面不能存在其他的逻辑语句
二、 方法类型
根据是否有返回值和参数对方法进行类型划分。分为如下四种类型。
2.1有参有返回值
public class MethodTest {
public static void main(String[] args) {
getSum(10, 20);
}
public static int getSum(int num1,int num2){
return num1+num2;
}
}
2.2 有参无返回值
public class MethodTest1 {
public static void main(String[] args) {
String str = "你好世界";
showMess(str);
}
public static void showMess(String mess){
System.out.println(mess);
}
}
2.3无参有返回值
import java.util.Scanner;
public class MethodTest2 {
public static void main(String[] args) {
isFlag();
}
/**
* 判断输入的值是否大于10
* @return
*/
public static boolean isFlag() {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
boolean flag = num > 10 ? true : false;
return flag;
}
}
2.4无参无返回值
public class MethodTest3 {
public static void main(String[] args) {
showLove();
}
public static void showLove() {
System.out.println("陌上花开,可缓缓归矣!!");
}
}
三、方法重载
概念:
方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。
新手雷区 重载的方法,实际是完全不同的方法,只是名称相同而已! |
构成方法重载的条件:
- 不同的含义:形参类型、形参个数、形参顺序不同
- 只有返回值不同不构成方法的重载
如:int a(String str){}与 void a(String str){}不构成方法重载
3. 只有形参的名称不同,不构成方法的重载
如:int a(String str){}与int a(String s){}不构成方法重载
public class TestMethod2{
public static void main(String [] args){
//指定两个加数
int n1 = 10;
int num2 = 20;
//完成运算
int result = add(n1,num2);
//输出结果
System.out.println("sum =" + result);
System.out.println(add(1.23,3.21));
System.out.println(add(1,2,3));
}
public static int add(int num1,int num2){
int sum = num1 + num2;
return sum;
}
public static double add(double num1,double num2){
double sum = num1 + num2;
return sum;
}
public static int add(int num1,int num2,int num3){
int sum = num1 + num2 + num3;
return sum;
}
}
我们见过的:
System.out.println(12);
System.out.println("12");
System.out.println(true);