方法的进一步学习

方法的进一步学习

主方法

JAVA虚拟机JVM的入口函数(个人理解加载完包类资源,识别main方法开始,所以 public(JAVA文件内可以有多个类,但是public类与JAVA文件同名,一个文件一个名所以只有一个public类,main方法的唯一性) + static(和类一起加载)+ 无需返回值语句直接执行void )

静态方法

和类一起加载(主要是static的修饰:static具有统一性,static方法只能调用static的属性和方法),在其他地方引用直接引用就行,(个人理解:在栈中和类加载,程序运行就存在,类加载,程序整体由类组成)

动态方法

没有static修饰的方法,只能调用无static修饰的方法和属性,再其他地方引用要new出实例化才能调用(个人理解静态和动态的区别吧,在堆中new出来才存在)

public class HaHa {
    int c;
    static int d;//和类一起加载,也叫类属性,类变量
    public static void main(String[] args) {
        //实际参数和形式参数要一一对应
        //值传递:复制一份,别处引用修改,原来的值不变
        //引用传递:复制地址,别处引用修改,原来值改变
       int e= add(2,3);
        //minus非静态方法不能调用
        System.out.println(e);
    }
public static int add(int a, int b){
        // c=0 静态方法内不能用非静态的变量
    d=a+b;
    return d;
}
   public int minus(int a,int b){
        d=a+b;//可以用类变量
        return d;
    }
    
    
    //在其他包下引用,要public加上注意static属性
      public static void main(String[] args) {
       int a= HaHa.add(2, 3);//直接调用,类加载就加载,程序运行就存在
        HaHa haHa = new HaHa();
        haHa.minus(2,3);//new以后才能调用,也可以理解为new以后才存在
        System.out.println(a);
    }

值传递

复制一份,别处引用修改,原来的值不变

引用传递

复制地址,别处引用修改,原来值改变(原本理解是一次改变就全变,但是后面发现在Java中对象传递具有空间性,就是改变值只是在某一空间内)

//引用传递
//产生一个对象
        Person person=new Person();
        System.out.println(person.name);//默认值null
        //引用方法
        LaLa laLa=new LaLa();
        laLa.changeName(person);//调用改变名字方法,
        // 方法内是person.name执行person类
        System.out.println(person.name);//在这个包及类下(就是在这个空间下)person.name已经被改变


//值传递
       //定义a
        int a=1;
        System.out.println(a);//1
        changeNumber(a);//调用改变数字方法,
        // 方法内就是单纯的数字参数赋值,没有指向
        System.out.println(a);//1没有改变

    }
static  void changeNumber(int a){
        a=10;
}

break和return

break:退出循环,直接退出方法等,中断作用 return:退出方法返回值,不再执行,由中断作用

前面忘了:运算符逻辑运算也有短路的作用:即且当第一个条件不成立,就不用判断后面的条件,if控制的条件语句就不用执行

思路:都是为了代码高效

posted on 2021-02-26 19:38  码路行  阅读(67)  评论(0)    收藏  举报

导航