回顾
方法的调用:有无static的区别
- 无static: 非静态方法
- 先实例化这个类 new
- 对象类型 对象名 = 对象值
- 通过 对象名.方法名 来调用
- 有static:静态方法
- 直接 类名.方法名 来调用
其他
- static方法是和类一起加载的
- 非static方法是在类实例化之后才存在的
- 非static方法可以直接调用static方法,但是static方法不能直接调用非static方法
- 值传递和引用传递
- 值传递:
在这段代码中,两次输出结果都为1,这是为什么呢? -->原因很简单,在Demo04.change(a)这里,它只是把a传进去change这个方法里面走一下,并没有返回出什么,自然,处理后,a还是等于1.
- 引用传递:对象 本质还是值传递
在这段代码中,第一次输出null,第二次输出WU,这又是为什么呢? -->因为,在Demo05.change(person)这里,person.name = "WU" 指向的是 Person类的name,修改的是 Person类里面的name。在这里,person是一个对象,指向的 --> Person person = new Person(); 这是一个具体的人,可以改变属性。
- private static int age;//静态变量
- 一个类里面可以有匿名代码块、静态代码块、构造方法块,它们执行的顺序是:静态代码块-->匿名代码块-->构造方法块,且静态代码块只执行一次。举个例子:
输出结果: