一、方法的定义
-
方法即是用来完成一段特定功能的代码片段,一般方法包含以下语法:
修饰符 返回值类型 方法名(参数类型 参数名){
。。。
方法体
。。。
return 返回值;
}
- 方法包含方法体和方法头:
-
修饰符:可选的,告诉编译器如何调用该方法,如public,static
有static的是静态方法,没有的则是非静态方法。
区别:
- 若是静态方法,在其他类中调用的话,可以直接用类名.方法名进行调用
- 若是非静态方法,在其他类中调用的话,需要先实例化这个类,即new,如Student student = new Student();,然后再用student.方法名进行调用
-
返回值类型:方法可能会返回值,但是当为void的时候就是没有返回值
-
方法名:方法的实际名称
-
参数类型:参数像是一个占位符,当方法被调用时传递值给参数。括号内可以没有参数,也可以拥有多少参数,分为形参和实参
- 形参:方法被调用时用于接收外界输入的数据,如add(int a,int b)
- 实参:调用方法时传给方法的值,如add(10,20)
-
方法体:实现具体功能的语句
-
- 方法包含方法体和方法头:
二、方法重载
1、定义
方法的重载就是指在同一个类中,方法名相同,但是参数不同的函数。
2、重载的原则
- 方法名称必须相同
- 参数列表必须不同(参数个数不同、参数类型不同、参数顺序不同等)
- 方法的返回类型可以相同也可以不同
- 仅仅返回类型不同不是重载
三、可变参数
1、定义
即参数类型里面加上省略号,且具有可变参数必须放到最后面,一个方法中只能指定一个可变参数。如下:
public static void add(double a,int...i){
for (int j=0; j<i.length;j++) {
System.out.println(i[j]);
}
}
四、例子
写一个计算器,能够实现加减乘除,并且能够循环接收新的数据,通过用户交互实现
public class Calculator {
public static void main(String[] args) {
//写一个计算器,能够实现加减乘除,并且能够循环接收新的数据,通过用户交互实现
Scanner scanner = new Scanner(System.in);
//输入数据
//方式一:
/*System.out.println("请输入运算符:");
String operator = scanner.nextLine();
//要想使用nextLine,必须把nextLine放在最开始输入的地方,输入后按回车跳到下一个输入。
//若是放在第一个nextDouble或者第二个nextDouble之后,运行之后控制台会直接跳过输入运算符这一步 骤
System.out.println("请输入第一个数:");
double a = scanner.nextDouble();
System.out.println("请输入第二个数:");
double b = scanner.nextDouble();*/
//方式二:
System.out.println("请输入第一个数:");
double a = scanner.nextDouble();
System.out.println("请输入运算符:");
String operator = scanner.next();//此处使用next
System.out.println("请输入第二个数:");
double b = scanner.nextDouble();
//关闭Scanner
scanner.close();
//创建对象
Calculator calculator = new Calculator();
//用result作为接收计算结果的对象
double result = 0;
switch (operator){
case "+":
result = calculator.add(a,b);
break;
case "-":
result = calculator.subtraction(a,b);
break;
case "*":
result = calculator.multiplication(a,b);
break;
case "/":
result = calculator.division(a,b);
break;
}
System.out.println("计算结果为:"+result);
}
//创建加减乘除方法
public double add(double a,double b){
return a+b;
}
public double subtraction(double a,double b){
return a-b;
}
public double multiplication(double a,double b){
return a*b;
}
public double division(double a,double b){
return a/b;
}
}