我的身旁是一扇亮了又暗的窗

0%

方法

方法的定义和调用(回顾)

定义格式

1
2
3
public static void 方法名称(){
方法体
}

调用格式

1
方法名称();

注意事项

  1. 方法定义的先后顺序无所谓
  2. 方法定义必须时挨着的,不能一个方法的内部定义另外一个方法(特殊情况除外)
  3. 方法定义之后,自己不会执行的,如果希望执行,一定要进行方法的调用

控制台输出矩形

1
2
3
4
5
6
7
8
9
10
11
12
13
public class NewMethod {
public static void main(String[] args) {
print();
}
public static void print(){
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print("*");
}
System.out.println();
}
}
}

定义格式的格式详解

方法其实就是若干语句的功能集合

1
2
3
4
5
方法格式:
修饰符 返回值类型 方法名(参数类型 参数名称,...){
//代码
return 结果;
}
  • 修饰符:现阶段只有public static固定写法
  • 返回值类型:表示方法运行的结果的数据类型,方法执行后将结果返回到调用者
  • 方法名:方法的名称,规则和变量一样,小驼峰
  • 参数类型:进入方法的数据时什么类型
  • 参数名称:进入方法的数据对应的变量名称(参数有多个用逗号分割)
  • return:两个作用,第一个停止方法,第二个将后面的返回值还给调用处
    • return 返回的返回值,必须和方法名称中的返回值类型保持对应

定义方法

  • 定义方法明确
    • 返回值类型:明确这个方法必定返回的类型
    • 方法名称:明确这个方法是做什么的
    • 参数列表:明确需要传入的值有哪些

实现两个整数求和

1
2
3
4
5
6
7
8
9
public class NewMethodDefine {
public static void main(String[] args) {
System.out.println(sum(1, 2));
}

public static int sum(int a, int b) {
return a + b;
}
}

方法三种调用

  1. 单独调用:方法名称(参数);
  2. 打印调用
  3. 赋值调用
    • 返回值类型固定写为void,这种方法只能单独调用,不能进行打印调用和赋值调用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class NewMethodDefine {
public static void main(String[] args) {
//单独调用
sum(1, 2);
//打印调用
System.out.println(sum(1, 2));
//赋值调用
int num = sum(1, 2);
}

public static int sum(int a, int b) {
return a + b;
}
}

调用方法的流程图

image-20200403103522213

方法区别

有参数或无参数

有参数:小括号当中有内容,当一个方法需要一些数据条件,才能完成任务的时候,就是有参数

无参数:小括号当中留空,一个方法不需要任何数据条件,自己就能独立完成任务,就是无参数

1
2
3
4
5
6
7
8
9
10
11
12
13
public class NewMethodDefine {
public static void main(String[] args) {
sum(1, 2);
print();
}

public static int sum(int a, int b) {
return a + b;
}
public static void print(){
System.out.println("无参数");
}
}

有返回值或无返回值

04-方法返回值的有无

注意事项

  1. 方法应该定义在类当中,但是不能在方法当中在定义方法,不能嵌套
  2. 方法定义的前后顺序无所谓
  3. 方法定义之后不会执行,如果希望执行,一定要调用
    • 单独调用
    • 打印调用
    • 赋值调用
  4. 如果方法又返回值,那么必须写上return 返回值;
  5. return后面的返回值数据,必须和方法的返回值类型,对应
  6. 对于一个void没有返回值的方法,不能写return后面的返回值,只能写return自己
  7. 对于void方法当中最后一行的return可以省略不写
  8. 一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写

方法重载

  • 方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
  • 参数列表:
    • 个数不同
    • 数据类型不同
    • 顺序不同
  • 重载方法调用:JVM通过方法的参数列表,调用不同的方法。
  • 优势:只需要记住唯一一个方法名称,就可以实现类似的多个功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class NewMethodOverload {
public static void main(String[] args) {
System.out.println(sum(1, 2));
System.out.println(sum(1, 2, 3));
System.out.println(sum(1.0, 2.0));
System.out.println(sum(1.0, 2));
}

public static int sum(int a, int b) {
return a + b;
}

public static int sum(int a, int b, int c) {
return a + b + c;
}

public static int sum(double a, double b) {
return (int) (a + b);
}

public static int sum(double a, int b) {
return (int) (a + b);
}
//错误!与参数名称无关
// public static int sum(double x, int y) {
// return (int) (x + y);
// }
//错误!与返回值类型无关
// public static double sum(double a, int b) {
// return a + b;
// }
}