方法概述

在java中,方法就是用来完成解决某件事情或实现某个功能的办法。

声明一个方法的具体语法格式如

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数2,......){ 
执行语句
……… 
return 返回值;
}
  1. 修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等
  2. 返回值类型:用于限定方法返回值的数据类型
  3. 参数类型:用于限定调用方法时传入参数的数据类型
  4. 参数名:是一个变量,用于接收调用方法时传入的数据
  5. return关键字:用于结束方法以及返回方法指定类型的值
  6. 返回值:被return语句返回的值,该值会返回给调用者

注意:方法中的“参数类型 参数名1,参数类型 参数名2”被称作参数列表,它用于描述方法在被调用时需要接收的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。

案例:

public class Function1 {
 
public static void main(String[] args) {
 
// 实例化(定义,初始化,创建)一个对象
Function1 fc = new Function1();
// 2.通过对象名.方法名()调用非静态方法
int a = 13;
int b = 30;
fc.total(a, b);
 
// 3.用一个int类型的变量接收一个有返回值的方法的返回值
int in = fc.total2(a, b);
System.out.println(in);
 
}
 
/**
 * 定义一个方法,没有返回值,有参数
 * 
 * 功能:可以计算两个数的和
 * 
 * @param a
 *            int类型的数
 * @param b
 *            int类型的数
 */
public void total(int a, int b) {
int sum = a + b;
// System.out.println(a + b);
}
 
/**
 * 定义一个方法,有返回值,有参数
 * 
 * @param a
 * @param b
 * @return
 */
public int total2(int a, int b) {
int sum = a + b;
return sum;
 
}
 
}

什么时候用有返回值的方法,什么时候用没有返回值的方法?

根据实际需求选用

  1. 没有返回值的方法只能执行一个固定的功能
  2. 有返回值的方法还可以将有用的数据做为返回值供其他地方使用
  3. 如何选用:如果只是完成一个功能,就直接用没有返回值的方法,否则用有返回值的方法

 

方法的重载

Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载

特点:

1、方法名一定要一样

2、一定要在同一个类中

注意事项:

重载方法参数必须不同:

参数个数不同,如method(int x)与method(int x,int y)不同

参数类型不同,如method(int x)与method(double x)不同

参数顺序不同,如method(int x,double y)与method(double x,int y)不同

重载只与方法名与参数类型相关与返回值无关

如void method(int x)与int method(int y)不是方法重载,不能同时存在

重载与具体的变量标识符无关

如method(int x)与method(int y)不是方法重载,不能同时存在

案例:

用方法的重载完成:
1个int类型,判断这个数的奇偶
2个int类型的参数,计算两数的和

3个int类型的数用三目运算符得出最大值

4个int类型的数,完成排序

2个float类型,计算乘法

package cn.yueqian.dada;
import java.util.Arrays;
public class Dada {
    public static void main(String[] args) {
         //调用方法
         test(5);
         System.out.println("两数和是:"+test(1,2));
         System.out.println("三個數的最大值是:"+test(1,2,3));
         test(1,5,8,2);
         System.out.println("两个folat数的积是:"+test(1f,5f));
         
         //方法重载是看那个最像就调用那个方法
     }
     
     
     //方法的重载
     
     //1个int类型,判断这个数的奇偶
     public static void test(int a) {
         if(a%2==0) {
             System.out.println("这个数是偶数");
         }else {
             System.out.println("这个数是奇数");
         }
     }
     
     
     //2个int类型的参数,计算两数的和--返回一个数
     public static int test(int a,int b) {
         
         return a+b;
     }
     
     //3个int类型的数用三目运算符得出最大值
     public static int test(int a,int b,int c) {
          int max= a>b?((a>c)?a:c):((b>c)?b:c);
          return max;
     }
     
     
     //4个int类型的数,完成排序
     public static void test(int a,int b,int c,int d) {
         //创建一个数组
         int[] arr= {a,b,c,d};
         Arrays.sort(arr);
         //遍历数组
         for(int ar:arr) {
             System.out.print(ar);
         }
         
     }
     
     //2个float类型,计算乘法
     public static float test(float a,float b) {
         
         
         return a*b;
     } 
 }

Java中报错方法没有被定义 java中方法没有返回值类型_有参方法