用于解决问题的一个办法(别的语言叫函数)
//有参数的 public static 返回类型 方法名称([参数类型 变量, ......]) { 方法体代码; return [返回值]; }
//无参数的 public static void 方法名称() { //输出语句 }
//有参数 public static void main(String[] args) { System.out.println("hello study"); int sum = add(1,2); System.out.println(sum); test(); } public static int add(int a, int b ){ return a+b; }
//无参数 public static void main(String[] args) { System.out.println("hello study"); test(); } public static void test(){ System.out.println("this is test"); }
方法名称相同,但是参数列表不同,参数列表的不同包括:
重载与下列因素无关:
public static void main(String[] args) { System.out.println("hello study"); int sum1 = add(2,3); double sum = add(2.0,3.0); System.out.println(sum1); System.out.println(sum); } //定义两个相同的方法名 返回的数据类型不一样 public static int add(int a,int b){ return a + b; } public static double add(double a,double b){ return a + b; }
可变参数
将同一个类中,多个方法名相同、参数类型相同、返回类型相同,仅仅是参数个数不同的方法抽取成一个方法,这种方法称为可变参数的方法 。
修饰符 返回类型 方法名(参数类型... 参数名){ ... ... } 注意:使用时,将可变长度的参数当做数组使用
public static void main(String[] args) { System.out.println("hello myworld"); test(1,2,3,4,5,6); } //定义可变参数方法 public static void test(int ... a){ for (int x:a){ System.out.println(x); } }
package com.method; import java.util.Scanner; public class Demo5 { public static void main(String[] args) { while (true){ Scanner scanner = new Scanner(System.in); System.out.println("请输入第一个数"); double a = scanner.nextDouble(); System.out.println("请输入加减乘除符号"); String str = scanner.next(); System.out.println("请输入第二个数"); double b = scanner.nextDouble(); switch (str){ case "+": double add = Addition(a,b); System.out.println(add); break; case "-": double Sub = Subtraction(a,b); System.out.println(Sub); break; case "*": double Mul = Multiplication(a,b); System.out.println(Mul); break; case "/": double Div = Division(a,b); System.out.println(Div); break; default: System.out.println("符号输入错误"); break; } // scanner.close(); } } public static double Addition(double x,double y){ return x+y; } public static double Subtraction(double x,double y){ return x-y; } public static double Multiplication(double x,double y){ return x*y; } public static double Division(double x,double y){ return x/y; } }