Java基础之方法

方法

前言

1.程序开始执行的时候先从main方法开始

2.Java语言中所有的方法体的代码都要遵守从上到下执行

3.mian方法程序会自动调用,而main以外的方法需要程序员自己调用

4.main以外的方法只有被调用的时候才会执行

什么是方法?为什么使用方法?

方法是一个可以重复使用的代码段。而如果某段代码在很多个地方都有使用时,如果在各个地方都重复编写这段代码,就会比较麻烦,而且修改的时候也不方便,这是就可以将这段代码定义为一个方法,让程序反复调用。

方法定义的语法

public static 返回类型 方法名(数据类型 变量名,数据类型 变量名,......,数据类型 变量名){
             代码块;       
 }

使用方法:
方法名(实参列表)

无参数无返回值

无参数:代表方法名后的()里面没有参数

无返回值:代表方法中返回类型为void

语法:

public static void 方法名 (){
      代码
}

举个例子:

需求是实现下面图片的效果:

思路:
①编写一个无参无返回值方法:用来打印一行*
②编写一个无参无返回值方法:用来打印一行字符串"How do you do!"

代码实现:

 1 public class Test {
 2     public static void main(String[] args) {
 3 
 4         //根据图片中的效果,进行调用方法
 5         print();
 6         print1();
 7         print();
 8         print();
 9         print1();
10         print();
11     }
12     //无参无返回值方法实现打印一行*
13     public static void print(){
14         System.out.println("*******************");
15     }
16     //无参无返回值方法实现打印一个字符串(How do you do!)
17     public static void print1(){
18         System.out.println("How do you do!");
19     }
20 }

效果展示:

 有参数无返回值

有参数:代表方法名后面的()需要有参数列表

无返回值:代表方法中返回类型为void

语法:

public static void 方法名(数据类型  变量名,.....,数据类型  变量名){
         代码块;
}

举个例子:

需求是实现下面图片的效果:

思路:
注意看这里的如果每一行写一个方法是完全可以实现的但是你会发现它们之间是有共同点的。
第一行的*,第三行的@,第四行的-,第六行$它们只是改变了变量的内容,它们的数量是完全相同的,所以我们可以传入一个指定的符号让方法去打印输出这个符号即可。
同理第二行输入的是字符串,第五行输入的同样是一个字符串,我们就可以通过传入一段字符串让方法去打印这段字符串即可。

代码:

 1 public class Test {
 2     public static void main(String[] args) {
 3 
 4         //根据图片中的效果,进行调用方法
 5         print('*');
 6         print1("Hello world!");
 7         print('@');
 8         print('-');
 9         print1("How do you do!");
10         print('$');
11     }
12     //有参数无返回方法(输入字符,打印对应的字符)
13     public static void print(char a){
14         for (int i = 0; i < 20; i++) {
15             System.out.print(a);
16         }
17         System.out.println();
18     }
19     //有参数无返回方法(输入字符串,打印对应的字符串内容)
20     public static void print1(String a){
21         System.out.println(a);
22     }
23 }

效果展示:

 无参数有返回值

无参数:代表方法名后的()里面没有参

有返回值:返回类型需要根据返回值类型的不同而改变

语法:

public static 返回类型 方法名(){
    代码;
}

举个例子

需求:方法内随机生成一个整数,在主方法中调用方法并打印整数值

思路:
①方法内生成一个随机数,需要用到Random类生成一个整数,而方法的返回值为整型,所以返回类型为int
②在main方法中调用此方法并打印此方法返回的数值

代码:

 1 import java.util.Random;
 2 
 3 public class Test {
 4     public static void main(String[] args) {
 5 
 6         //由于有返回值,所以需要通过一个整型变量来接受返回值
 7         int i = randomInt();
 8         //打印变量
 9         System.out.println("随机数:"+i);
10     }
11     //无参数有返回方法(方法内随机生成一个整数)
12     public static int randomInt(){
13         Random random = new Random();
14         int i = random.nextInt(5);
15         return i;
16     }
17 }

效果展示:

 有参数有返回值

有参数:代表方法名后的()里面有参数列表

有返回值:返回类型需要根据返回值类型的不同而改变

语法:

public  static 返回类型  方法名(数据类型 变量名,......,数据类型 变量名){
         代码;
}

举个例子:

求整型m~n的和,并把结果返回。

思路:
①确定方法是否需要返回值需要因为需求中说要将结果返回
②确定方法是否要传入参数需要因为需求中说要求出整型的m~n的和,m是一个变量,n也是一个变量,都需要用户传入才能知道具体的数据值
③判断返回值类型整型的数据之和仍为整型,所以返回值int类型

代码:

 1 public class Test {
 2     public static void main(String[] args) {
 3 
 4         //由于有返回值,所以需要通过一个整型变量来接受返回值
 5        int sum = sum(5,10);
 6         System.out.println("求5~10的整数和:" + sum);
 7     }
 8     //无参数有返回方法(方法内随机生成一个整数)
 9     public static int sum(int m,int n){
10         //定义一个求和的变量,并初始化
11         int sum=0;
12         //这里默认m为小的n为大的
13         for (int i = m; i <=n ; i++) {
14             sum+=i;
15         }
16         return sum;
17     }
18 }

效果展示:

方法重载

方法名相同,方法的参数类型不同参数数量不同这种情况称为方法的重载,方法重写的好处是可以简化新建一个新的方法名来实现方法。

当程序调用方法时,会根据方法中参数类型,数量的不同,从而调用不同的方法。

举个例子:

需求是实现两个数的和,并返回值。

思路:
注意一点传入两个数,并不知道这两个数是什么数据类型的。
所以需要通过不同的数据类型来调用不同的方法。
这里就需要用到方法的重载。

代码:

 1 public class Demo {
 2     public static void main(String[] args) {
 3         /*
 4         这里就是使用方法的重载
 5         相同的方法名,但是方法中形参列表的数据类型不同,这就是重载  
 6          */
 7         System.out.println(sum(1, 2));
 8         System.out.println(sum(1.8, 2));
 9         System.out.println(sum(1.2, 1.5));
10         System.out.println(sum(3, 2.3));
11         
12     }
13     //假设传入的是两个整型的数
14     public static int sum(int a,int b){
15         int sum=a+b;
16         return sum;
17     }
18     //假设传入的是两个浮点数
19     public static double sum(double a,double b){
20         double sum=a+b;
21         return sum;
22     }
23     //假设传入的第一个数为浮点数,另一个为整数
24     public static double sum(double a,int b){
25         double sum=a+b;
26         return sum;
27     }
28     //假设传入的第一个数为整数,另一个为浮点数
29     public static double sum(int a,double b){
30         double sum=a+b;
31         return sum;
32     }
33 }

效果展示:

可变参数的方法

调用方法时可以根据需要传递若干个参数,但参数类型要一致

语法:

public static 返回类型 方法名(数据类型 ... 变量名){
        代码;
}

举个例子:

 1 import java.util.Arrays;
 2 
 3 public class Test02 {
 4     public static void main(String[] args) {
 5         fun(1);
 6         fun(1,4);
 7         fun(1,4,5);
 8         fun(1,3,5,6);
 9     }
10     //注意 ...不能多也不能少
11     public static void fun(int ...a){//a代表的是一个数组,用来存储传入的数据
12         System.out.println(Arrays.toString(a));
13     }
14 }

效果展示:

 

posted @ 2023-10-30 20:05  和哗  阅读(6)  评论(0编辑  收藏  举报