System.out.println();//调用System类里的标准输出对象out里的方法println()
public class Demo001 { //main方法 public static void main(String[] args) { int sum = add(1,2); System.out.println(sum);//3 } //加法 public static int add(int a,int b){ return a+b; } }
java的方法相似于其余的语言的函数,是一段用来完成特定功能的代码片断,通常状况下,定义一个方法包含如下语法:java
方法包含一个方法头和一个方法体。下面是一个方法的全部部分:数组
修饰符:修饰符,这是可选的,告诉编辑器如何调用该方法。定义了该方法的访问类型编辑器
返回值类型:方法可能会返回值。returnValueType s是方法返回值的数据类型。有些方法执行所需的操做,但没有返回值。在这种状况下,returnValueType是关键字void。return有一个必须在最后函数
方法名:是方法实际名称。方法名和参数表共同构成方法的签名命令行
参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值称为实参或变量。参数列表是指方法的参数类型、顺序和参数个数。参数是可选的,方法能够不包含任何参数设计
形式参数:在方法被调用时用于接收外界输入的数据code
形式参数,用来定义做用的对象
实参:调用方法时实际传给方法的数据blog
实际参数是实际调用传给它的参数递归
方法体:方法体包含具体的语句,定义该方法的功能
修饰符 返回值类型 方法名(参数类型 参数名){ .... 方法体 .... return 返回值;//若是是void则不用返回 }
调用方法:对象名.方法名(实参列表)
Demo demo = new Demo();//Demo是类名 demo.test(1,2);
java支持两种调用方法的方式,根据方法是否返回值来选择
int larger = max(30,40);
System.out.println("Hello,shenxiaoyu!");
例子:比大小
public class Demo002 { public static void main(String[] args) { int max = max(10,29); System.out.println(max);//29 } //比大小 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 Demo003 { public static void main(String[] args) { int sum1 = add(1,2); int sum2 = add(1,2,3); double sum3 = add(2.5,5.9); System.out.println(sum1);//3 System.out.println(sum2);//6 System.out.println(sum3);//8.4 } //加法 public static int add(int a,int b){ return a+b; } //三个数相加 public static int add(int a,int b,int c){ return a+b+c; } //两个浮点型相加 public static double add(double a,double b){ return a+b; } }
有时候你但愿运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。
public class Demo004 { public static void main(String[] args) { //args.length 数组长度 for(int i = 0;i<args.length;i++){ System.out.println("args["+i+"]:"+args[i]); } } }
cmd命令行传参:
public class Demo005 { public static void main(String[] args) { //调用可变参数 Demo005 demo005 = new Demo005(); demo005.test(1,2,3,4,5,6); } public void test(int... i){ 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]); System.out.println(i[5]); } }
关于一个找最大值的例子:
public class Demo006 { public static void main(String[] args) { //调用可变参数的方法 printMax(34,3,3,2,53,99);//最大值是99.0 printMax(new double[]{88,57.3,97.2});//最大值是97.2 } public static void printMax(double... numbers){ if(numbers.length==0){ System.out.println("没有数在数组里"); return; } double result = numbers[0]; for(int i=1;i<numbers.length;i++){ if(numbers[i]>result){ result=numbers[i]; } } System.out.println("最大值是"+result); } }
递归就是:A方法调用A方法,本身调用本身
递归结构包括两个部分:
栈溢出
public class Demo007 { //栈溢出 public static void main(String[] args) { Demo007 test = new Demo007(); test.test(); } public void test(){ test(); } }
利用递归阶乘:
public class Demo008 { /* 2! 2*1 3! 3*2*1 4! 4*3*2*1 5! 5*4*3*2*1 */ public static void main(String[] args) { int f = factorial(6); System.out.println(f);//720 } public static int factorial(int n){ if (n==1){ return 1; }else{ return n*factorial(n-1); } } }