用实例名来引用类成员(static成员)是不是一种假象?欢迎大家讨论!
最近闲暇之余研究了一下c++,通过c++的学习来反思java使我对java的理解又深了
一步.但是有些问题仔细推敲时发现一些问题.
问题如下
在java中的每个类中存在一个隐藏的this变量,用来存放当然实例的引用.当各
个具体实例引用类的成员时,interpret通过这个隐藏的this变量来区分各个实例.
在java中类的成员定义有一个static关键字,用来定义类成员,类成员对于每个
实现来说只存在一个,也就是说一般通过类名来引用.但是java 规范中又说明可以
通过实例来引用类成员或者实例成员.
于是问题就出现了.当用this来引用类成员时,在实例中并不存在这个类成员.是
不是编译器在编译时将所以用实例来引用类成员的形式全部转换成为用类名来引
用呢.
用实例名来引用类成员(static成员)是不是一种假象?