- static总的来说是方便在没有创建对象的情况下来进行调用。
- 注意:静态方法中不可以使用this或者super关键字。
- 注意:static不允许用来修饰局部变量。
- 在权限允许的前提下:
箭头表示访问
注意: 1、3、7、11同类可以省,不同类不可以省。
2、4、8、12同类不同类都可以用,但是没有必要,因为带static的方法或变量就是为了方便的,new对象再访问(有点画蛇添足的感觉)而且new对象,也不是这个对象的引用在访问方法和变量。
public class Test {
public static void main(String[] args) {
new Test().noStatic();
}
public static void yesStatic(){
System.out.println("我是有static的方法");
}
public void noStatic(){
yesStatic(); //我这是省略了类名调用了yesStatic方法
Test test = new Test(); //这里new一个对象;
test.yesStatic(); //用对象引用调用静态方法;
test = null; //在把引用指向空;
test.yesStatic(); //照道理这里应该会出现空指针异常的报错
}
}
/*这里是对2、4、8、12的一个举例,没有全部举完;
从运行结果可以看出带static的无论是成员变量还是方法,
你虽然通过new对象访问static的方法从而运行;
但是实际上运行那边把他看成了类名.方法来调用;
因为如果是当引用.方法来调用的话,当引用变成null,结果应该是空指针异常的,而最后结果却没有报错。
简单来说,你可以这样写,但是我把这样的写法看成类名.方法来用。
*/
运行结果:
我是有static的方法
我是有static的方法
我是有static的方法
5、9在同类中用;
6、10不同类中用;
- 带static访问不带static不管是方法,还是变量都要new;
- 有错误欢迎指出。