方法的调用:递归

1、静态方法与非静态方法
静态方法和非静态方法的区别是:
静态方法有static;非静态方法没有。
如:静态方法:

public class students {
    //静态方法
    public static void say(){
        System.out.println("学生说话了");
    }
}

调用静态方法:

public static void main(String[] args) {
        students.say();
    }

非静态方法:

public class Student {
    //非静态方法
    public void say(){
        System.out.println("学生说话了");
    }

调用非静态方法:

public static void main(String[] args) {
        //实例化这个类 new
        //对象类型 对象名=对象值
        //
        Student student=new Student();

        student.say();
    }

都是非静态方法或静态方法,则方法a可以在直接调用方法b:

public void a(){
        b();
    }
    public void b(){

    }

若a是静态,b不是,则不行:

 //和类一起加载的
    public static void a(){
        b();
    }
    //类实例化之后才存在
    public void b(){

    }

2、形参与实参

public class Demo03 {

    public static void main(String[] args) {

        //实际参数和形式参数的类型要对应;
        int add = new Demo03().add(1, 2);
        System.out.println(add);

    }

    public int add(int a,int b){
        return a+b;

    }


}

a,b表示形式参数,1,2表示实际参数;

3、值传递与引用传递
值传递,最终结果依然是1,1

//值传递
public class Demo04 {
    public static void main(String[] args) {
        int a = 1 ;
        System.out.println(a);
        Demo04.change(a);
        System.out.println(a);
    }
    //返回值为空
    public static void change(int a){
        a = 10;
    }
}

引用传递,最终出来的结果为null,小李;

public class Demo05 {
    public static void main(String[] args) {
        Cat cat=new Cat();
        System.out.println(cat.name);
        Demo05.change(cat);
        System.out.println(cat.name);
    }
    public static void change(Cat cat){
        //cat是一个对象,指向的是Cat cat=new Cat();这是一个具体的猫可以改变属性
        cat.name = "小李";
    }
}
//定义了一个类Cat,有一个属性:name
class Cat{
    String name;
}

发布了8 篇原创文章 · 获赞 0 · 访问量 144

猜你喜欢

转载自blog.csdn.net/leelelea/article/details/104187641