Java学习第八天<什么是方法><方法的定义和调用><方法的重载><命令行传参><可变参数><递归详解>
什么是方法
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) 递归体 } } }
?
什么是方法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) 递归体 } }}————————————————版权声明:本文为CSDN博主「syd2820」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/syd2820/article/details/122710748