在网站做电子画册,棋牌源码,asp三层架构做网站,建筑行业数据共享平台网站直接去看原文
原文链接:Java关于实例对象调用静态变量和静态方法问题_java对象可以调用static方法吗_骑个小蜗牛的博客-CSDN博客
---------------------------------------------------------------------------------------------------------------------------------
实例…直接去看原文
原文链接:Java关于实例对象调用静态变量和静态方法问题_java对象可以调用static方法吗_骑个小蜗牛的博客-CSDN博客
---------------------------------------------------------------------------------------------------------------------------------
实例对象到底能不能调用静态变量和静态方法
网上众说纷纭本文主要总结分析一下。 如果单从使用来说Java是支持实例对象调用静态变量和静态方法的。
那就有人要说了明明不可以呀你看我使用IDEA通过实例对象调用静态变量和静态方法时idea都不支持。
这里通过示例来说明
测试类TestConst
public class TestConst {public static Integer a 1;public static void haha() {System.out.println(haha);}
}当你想通过实例对象调用静态变量和静态方法时发现自动提示没有
确实是的但这就说明不支持实例对象调用静态变量和静态方法了吗其实并不是的。
只是因为IDEA也不推荐你通过实例对象调用静态变量和静态方法所以它的自动补全提示没有这个用法而已但是你是可以手写调用的。
执行结果
1
haha显然IDEA是支持实例对象调用静态变量和静态方法的只是它不建议你这么用。 在阿里巴巴Java开发规范中就有这么一条
【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法无谓增加编译器解析成本直接用类名来访问即可。
通过编译后的class文件可以发现原来实例对象调用静态变量和静态方法的写法在编译后转换为了类直接调用静态变量或静态方法。 总结一下
实例对象支持调用静态变量和静态方法但并不推荐这么用;通过实例对象支持调用静态变量和静态方法最终都会在编译后转换为类直接调用静态变量或静态方法。