说说Java中的static

      在java中,static可以修饰方法、变量、类、程序块,下面将会分析一下各种修饰的作用,对于static变量和程序块,是在类加载时被加载的,只能初始化一次。

      java中提供两种动态机制加载类,new一个对象和调用静态代码是隐式机制;另外一种是显示机制,这种机制也包括两种方式:1,java.lang.Class中的forName();2,java.lang.ClassLoader中的loadClass();对于显示机制通过forName或loadClass的参数判断是否在类初始化时加载static变量和程序块,如此时不加载将会在初始化第一个实例时加载。

1,static修饰方法时,此方法不能被子类重写,若子类中出现同样的static方法,则是对父类static方法的隐藏,不是重写覆盖(对象级);

      对于static方法的访问,可通过类名访问,或者通过创建一个实例进行访问,但一定要记住对于static方法,是被所有实例共享的;

      通过父类使用子类时,即A a = new B(),A是B的父类;当调用父类实例的static方法时,同时此方法被子类隐藏,即子类与父类中同时存在这个static方法,这时调用的是父类的static方法,而不是子类的static方法;这不同于非static方法的调用,对于非static方法调用的是子类的方法,对于static方法的这种情况,叫做静态绑定;

      static方法不能引用类中的非static变量,必须通过类的实例进行引用。

2,static修饰类时,此类只能为内部类。

      非static内部类不可拥有static数据或static内部类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值