方法定义
method
定义一个方法
修饰符 返回值类型 方法名(参数类型 参数名){
…
方法体;
return 返回值;
}
public static int getSum(int a ,int b)
{
return a+b;
}
方法的重载
方法名字一模一样,参数不同
参数数量可以不同,类型可以不同。
package com.bowenxu.method;
public class Demo02 {
public static void main(String[] args) {
//调用静态方法
int sum = getSum(1, 2);
System.out.println(sum);
//重载
double sum2 = getSum(1.0,2.0);
System.out.println(sum2);
}
//定义一个方法
//语法
/*
* 修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体;
return 返回值;
}*/
public static int getSum(int num1,int num2)
{
return num1+num2;
}
//方法的重载
public static double getSum(double num1,double num2)
{
return num1+num2;
}
}
命令行传参
main方法可以传递参数
package com.bowenxu.method;
public class Demo03 {
public static void main(String[] args) {
if (args.length>0)
{
for (String str:args
) {
System.out.println(str);
}
}
}
}
xubainan@xubainandeMBP method % Javac Demo03.java
xubainan@xubainandeMBP method % cd ../
xubainan@xubainandeMBP bowenxu % cd ../
xubainan@xubainandeMBP com % cd ../
xubainan@xubainandeMBP src % java com.bowenxu.method.Demo03 hello world
hello
world
可变参数
JDK1.5开始有可变参数
在方法声明中,在指定的参数类型后面加…
一个方法只能有一个可变参数,可变参数必须是最后一个参数。任何普通参数都必须在可变参数前面
练习,打印最大的值
package com.bowenxu.method;
public class Demo04 {
public static void main(String[] args) {
System.out.println(getMax(999,654));
}
//可变参数
public static double getMax(double... nums){
if (nums.length==0)
{
System.out.println("方法没有参数传入");
return 0;
}else{
double result = nums[0];
for (double d:nums
) {
if (d>result)
{
result=d;
}
}
return result;
}
}
}
递归
递归头:什么时侯不掉用自己。如果没有头,将陷入死循环。
递归体:什么时候需要调用自己。
递归好处:编码简洁。
递归缺点:java是栈机制,压栈太多会造成系统崩溃。
(前阶段->边界条件->返回阶段)
package com.bowenxu.method;
public class Demo05 {
public static void main(String[] args) {
System.out.println(f(5));
}
public static int f(int n){
if (n==1) {
return 1;//递归头
}else{
return n*f(n-1);//递归体
}
}
}