Day04-Java方法
1.什么是方法?
package com.sj.method;
public class Demo01 {
//main 方法
public static void main(String[] args) {
// int sum = add(1,2);
// System.out.println(sum);
test();
}
//加法
public static int add(int a, int b){
return a+b;
}
public static void test(){ //void 空
for (int i = 0; i <=1000; i++){
if (i%5==0){
System.out.print(i+"\t");//"\t"=空格;"\n"=换行 print与println之间区别:ln代表自动换行
}
if (i%(5*3)==0){//每行3个就换行 (第三个数必备15整除)
System.out.println();
//System.out.println("\n");
}
}
}
}
2.方法的定义和调用
方法定义:

形式参数,用来定义作用的
实际参数:实际调用传递给他的参数
方法调用:

方法调用练习:(加减乘除)
package com.sj.method;
public class Fangfadiaoyonglianxi {
public static void main(String[] args) {
int sum = add(20,10);
int jian = subtract(20,10);
int cheng = multiplication(20,10);
int chu = division(20,10);
System.out.println("a=20,b=10");
System.out.println("a+b="+sum);
System.out.println("a-b="+jian);
System.out.println("a*b="+cheng);
System.out.println("a/b="+chu);
}
//相加
public static int add(int a, int b){
return a+b;
}
//相减
public static int subtract(int a,int b){
return a-b;
}
//相乘
public static int multiplication(int a,int b){
return a*b;
}
//相除
public static int division(int a,int b){
return a/b;
}
}
课后拓展了解:值传递(Java)和引用传递
3.方法的重载

package com.sj.method;
public class Demo02 {
public static void main(String[] args) {
double max = max(10.0,10.0);
System.out.println(max);
}
//比大小
public static double max(double num1,double num2){
double result = 0;
if (num1==num2){
System.out.println("num1==num2");
return 0; //终止方法
}
if (num1>num2){
result = num1;
}else{
result = num2;
}
return result;
}
//比大小
public static int max(int num1,int num2){
int result = 0;
if (num1==num2){
System.out.println("num1==num2");
return 0; //终止方法
}
if (num1>num2){
result = num1;
}else{
result = num2;
}
return result;
}
}
4.命令行传递参数

package com.sj.method;
public class Demo03 {
public static void main(String[] args) {
//args.length 数组长度
for (int i = 0; i < args.length; i++) {
System.out.println("args["+ i +"]:" +args[i]);
}
}
}
5.可变参数(不定项)

package com.sj.method;
public class Demo04 {
public static void main(String[] args) {
Demo04 demo04 = new Demo04();
demo04.test(1,2,3,4,5);
}
public void test(int x, int... i){//一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明,如:int...在最后
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
System.out.println(i[4]);
}
}
查找最大值:
package com.sj.method;
public class Demo04 {
public static void main(String[] args) {
// 调用可变参数的方法
printMax(34,3,3,2,56.5);
printMax(new double[]{1,2,4});
}
public static void printMax(double... numbers){//一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明,如:int...在最后
if (numbers.length == 0){
System.out.println("No argument passed");
return;
}
double result = numbers[0];
// 查找最大值!
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > result){
result = numbers[i];
}
}
System.out.println("The max value is " + result);
}
}
6.递归讲解

边界条件:边界
前阶段:
返回阶段:n*(n-1)
!!!栈
package com.sj.method;
public class Demo06 {
//阶乘: 2!=2*1
//阶乘: 3!=3*2*1
//阶乘: 5!=5*4*3*2*1
public static void main(String[] args) {
System.out.println(f(5));
}
//阶乘: 1!=1
//阶乘: 5!=5*4*3*2*1
public static int f(int n){
if (n<1){
System.out.println("不符合");
return 0;
}else if (n==1){
return 1;
}else {
return n*f(n-1);
}
}
}
课后练习:

计算器:
(方法1):
package com.sj.method;
import java.util.Scanner;
public class calculator {
//计算器:calculator
public static void main(String[] args) {
Scanner jisuan = new Scanner(System.in);
double add = 0;
double subtract = 0;
double multiplication = 0;
double division = 0;
System.out.println("请输入第一个数据(并回车):");
while (jisuan.hasNextDouble()){
double a = jisuan.nextDouble();
System.out.println("请输入符号(并回车):");
String c = jisuan.next();
System.out.println("请输入第二个数据(并回车):");
double b = jisuan.nextDouble();
switch (c){
case "+":
System.out.println(a+"+"+b+"="+(add(a,b)));
break;
case "-":
System.out.println(a+"-"+b+"="+(subtract(a,b)));
break;
case "*":
System.out.println(a+"*"+b+"="+(multiplication(a,b)));
break;
case "/":
if (b == 0){
System.out.println("被除数不能为0!");
}else {
System.out.println(a+"/"+b+"="+(division(a,b)));
}
break;
}
System.out.println("输入任意字母退出或接着输入第一个数据:");
}
jisuan.close();
}
//方法:加减乘除
//相加
public static double add(double a, double b){
return a+b;
}
//相减
public static double subtract(double a,

