JAVA中的方法

什么是方法

方法就是函数,由代码片段构成,用于实现特定的功能。

方法的定义及调用

方法包括两个部分:方法头和方法体。

修饰符 返回值类型 方法名(参数类型 参数名){

​ 方法体

​ return 返回值;

}

public static void main(){
    max(10, 20);
}
public static int max(int a, int b){
    if(a>b){
        return a;
    }else if(b>a){
        return b;
    }else{
        return 0;
    }
}

静态方法与非静态方法

在同一个包下的类中的方法不需要导入包。

非静态方法

需要将类实例化再调用方法。

//格式一:对象类型 对象名 = new 类名()
Demo demo = new Demo();
demo.text(x, y);
//格式二:new 类名().方法名(参数)
new Demo().text(x, y);

静态方法

在同一个包下,可以直接调用一个类的静态方法。

//类名.方法名
Demo.text(x, y);

注意

静态方法是和类一起加载的,静态方法可以调用另一个静态方法。

非静态方法需要实例化,无法被静态方法调用。

即:静态方法只能调用静态方法,非静态方法可以调用静态方法!

方法重载

定义

重载是在同一个类中,同一个方法名,参数列表不同(个数、类型、排序)。

public static void main(){
    max(10, 20);
    max(11.11, 22.22)
}
public static int max(int a, int b){
    if(a>b){
        return a;
    }else if(b>a){
        return b;
    }else{
        return 0;
    }
}
public static double max(double a, double b){
    if(a>b){
        return a;
    }else if(b>a){
        return b;
    }else{
        return 0;
    }
}

命令行传参

在运行一个程序时再传递消息。传递命令行参数给main()方法。

public class Test{
	public static void main(String[]args){
   	 	//args.length 数组长度
    		for(int i=0;i< args.length; i++){
        		System.out.println("args[" + i + "]:" + args[i]);
   		 }
	}
}

在命令窗口编译运行Test

可变参数

从JDK1.5开始支持。

定义:在参数类型后加上“ ... ”。

Tip: 可变参数必须是参数列表中最后一个参数。

参数类型... 参数名

public static void main(String[] args) {
        demo01 d = new demo01();
        d.test(10,1,2,3,4,5,6,7,8,9);
}
public void test(int a ,int... b){//可变参数必须是最后一个参数
    System.out.println(a);
    for (int i = 0; i < b.length; i++) {
        System.out.println(b[i]);
    }
}

递归

解释:方法自己调用自己

递归结构:

递归头:不调用自身方法的条件(停止调用)。如果没有头,将进入死循环。

递归体:需要调用自身方法的条件。

public static void main(String[] args) {
    System.out.println(test(5));
}
public static int test(int n){
    if (n==1){
        return 1;
    }else{
        return n*test(n-1);
    }
}

能不用递归就不同递归。

深度过大占用大量内存可能卡死。

可用 栈 思想进行理解。

posted on 2024-07-21 17:09  7007x  阅读(3)  评论(0编辑  收藏  举报