什么是方法
System.out.println();
调用系统类里的标准输出对象(out)中的方法println
public class Demo01 { //main 方法 public static void main(String[] args) {//public static修饰符 void返回值(不返回) //实际参数,实际调用传递给他的参数 int sum = add(1, 2);//add(1,2) alt+回车 System.out.println(sum); test(); } //形式参数,用来定义 public static int add(int a,int b){//int 返回值类型 add方法名 int a,int b形式参数(占位符) return a+b; } public static void test(){//方便调用加static for (int i = 0; i <=10000; i++) { if (i%5==0){ System.out.print(i+"\t");//输出不换行 } if (i%(5*3)==0){//每行 System.out.println();//输出换行 //System.out.print("\n"); } } } }
方法的定义和调用
方法:修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;(void无返回值)
}
public class Demo02 { public static void main(String[] args) { int max = max(20, 10);//max(10,20) 方法返回一个值,方法调用通常被当做一个值;如果返回值是void,方法调用一定是一条语句 System.out.println(max); } //比大小 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; } }
Java都是值传递
方法的重载
在一个类中,有相同方法函数名,但参数(类型,个数)不同的函数
public class Demo02 { public static void main(String[] args) { int max = max(20, 10);//max(10,20) 方法返回一个值,方法调用通常被当做一个值;如果返回值是void,方法调用一定是一条语句 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; } }
命令行传参
public class Demo03 { public static void main(String[] args) { for (int i=0; i< args.length;i++){//args.length 数组长度 System.out.println("args["+i+"]:"+args[i]); } } }
-
右键Demo03 open in explorer
-
打开目录cmd
-
输入javac Demo03.java 生成class文件
-
输入cd../ 到src文件夹下 运行class文件要到包所在文件夹src
-
输入java com.method.Demo03
-
输入java com.method.Demo03 this is zhengtu
可变参数
参数类型后加省略号 (不规定传多少参数)
public class Demo04 { public static void main(String[] args) { Demo04 demo04 = new Demo04();//new Demo04(); demo04.test(1,2,3); printMax(34,3,3,2,56.5); printMax(new double[]{1,2,3}); } public void test(int...i){ //必须放最后 System.out.println(i[0]); } //求最大值 public static void printMax(double...numbers){ if (numbers.length==0){ System.out.println("NO arguement 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); } }
递归详解
递归即方法自己调用自己,要有递归头和递归体,只适合小计算
public class Demo06 { public static void main(String[] args) { System.out.println(f(5));//5! } public static int f(int n){ if(n==1){ return 1;//递归头 }else { return n*f(n-1);//n=2 2*f(1) 递归体 } } }