打字猴:1.700438926e+09
1700438926 编写高质量代码:改善Java程序的151个建议 [:1700438077]
1700438927 编写高质量代码:改善Java程序的151个建议 建议10:不要在本类中覆盖静态导入的变量和方法
1700438928
1700438929 如果一个类中的方法及属性与静态导入的方法及属性重名会出现什么问题呢?我们先来看一个正常的静态导入,代码如下:
1700438930
1700438931 import static java.lang.Math.PI;
1700438932
1700438933 import static java.lang.Math.abs;
1700438934
1700438935 public class Client{
1700438936
1700438937 public static void main(String[]args){
1700438938
1700438939 System.out.println(“PI=”+PI);
1700438940
1700438941 System.out.println(“abs(100)=”+abs(-100));
1700438942
1700438943 }
1700438944
1700438945 }
1700438946
1700438947 很简单的例子,打印出静态常量PI值,计算-100的绝对值。现在的问题是:如果我们在Client类中也定义了PI常量和abs方法,会出现什么问题?代码如下:
1700438948
1700438949 import static java.lang.Math.PI;
1700438950
1700438951 import static java.lang.Math.abs;
1700438952
1700438953 public class Client{
1700438954
1700438955 //常量名与静态导入的PI相同
1700438956
1700438957 public fnal static String PI=“祖冲之”;
1700438958
1700438959 //方法名与静态导入的相同
1700438960
1700438961 public static int abs(int abs){
1700438962
1700438963 return 0;
1700438964
1700438965 }
1700438966
1700438967 public static void main(String[]args){
1700438968
1700438969 System.out.println(“PI=”+PI);
1700438970
1700438971 System.out.println(“abs(100)=”+abs(-100));
1700438972
1700438973 }
1700438974
1700438975 }
[ 上一页 ]  [ :1.700438926e+09 ]  [ 下一页 ]