打字猴:1.700440966e+09
1700440966
1700440967 哦,如此而已,那再问一个问题:如果有多个静态块对i继续赋值呢?i当然还是等于1了,谁的位置最靠后谁有最终的决定权。
1700440968
1700440969 有些程序员喜欢把变量定义放到类的底部,如果这是实例变量还好说,没有任何问题,但如果是静态变量,而且还在静态块中进行了赋值,那这结果可就和你期望的不一样了,所以遵循Java通用的开发规范“变量先声明后使用”是一个良好的编码风格。
1700440970
1700440971 注意 再次重申变量要先声明后使用,这不是一句废话。
1700440972
1700440973
1700440974
1700440975
1700440976 编写高质量代码:改善Java程序的151个建议 [:1700438102]
1700440977 编写高质量代码:改善Java程序的151个建议 建议33:不要覆写静态方法
1700440978
1700440979 我们知道在Java中可以通过覆写(Override)来增强或减弱父类的方法和行为,但覆写是针对非静态方法(也叫做实例方法,只有生成实例才能调用的方法)的,不能针对静态方法(static修饰的方法,也叫做类方法),为什么呢?我们先看一个例子,代码如下:
1700440980
1700440981 public class Client{
1700440982
1700440983 public static void main(String[]args){
1700440984
1700440985 Base base=new Sub();
1700440986
1700440987 //调用非静态方法
1700440988
1700440989 base.doAnything();
1700440990
1700440991 //调用静态方法
1700440992
1700440993 base.doSomething();
1700440994
1700440995 }
1700440996
1700440997 }
1700440998
1700440999 class Base{
1700441000
1700441001 //父类静态方法
1700441002
1700441003 public static void doSomething(){
1700441004
1700441005 System.out.println(“我是父类静态方法”);
1700441006
1700441007 }
1700441008
1700441009 //父类非静态方法
1700441010
1700441011 public void doAnything(){
1700441012
1700441013 System.out.println(“我是父类非静态方法”);
1700441014
1700441015 }
[ 上一页 ]  [ :1.700440966e+09 ]  [ 下一页 ]