方法
public class Demo01 {
//main方法
public static void main(String[] args) {
int sum = add(1, 2);
System.out.println(sum);
}
//加法
public static int add(int a,int b){
return a+b;
}
}
运行结果
3
方法的定义
方法调用
public class Demo02 {
public static void main(String[] args) {
int max=max(10,20);
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;
}
}
运行结果
20
方法的重载
package Method;
public class Demo02 {
public static void main(String[] args) {
double max=max(10.0,10.0);
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;
}
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 class Demo04 {
public static void main(String[] args) {
Demo04 demo04 = new Demo04();
demo04.test(1,2,3,4,5);
}
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]);
}
}
运行结果:
1
2
3
4
5
递归
在这里进行一个错误示范
public class Demo05 {
public static void main(String[] args) {
Demo05 demo05 = new Demo05();
demo05.test();
}
public void test(){
test();
}
}
最终结果导致了栈溢出
实例用递归来求阶乘
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(3));
}
public static int f(int n) {
if (n == 1) {
return 1;
} else {
return n * f(n - 1);
}
}
}
图形示例
Java是使用栈机制的
栈是先进后出,后进先出
能不用递归就不用递归,递归特别占用内存,计算小的数可以,但是大数计算尽量不要用递归