当前位置: 代码迷 >> J2SE >> JAVA创建对象这句话如何理解。
  详细解决方案

JAVA创建对象这句话如何理解。

热度:40   发布时间:2016-04-23 20:04:10.0
JAVA创建对象这句话怎么理解。?
最开始以为是数据类型,可是后面就感觉这样理解就很多解释不了了。
比如:Fu f=new Zi(); 这个我还能理解,因为Zi还属于Fu的一类。
再就是内部类对象的创建了,这个感觉还是这样理解的话就感觉就不行了,更像是一个标记位置的用法。
比如 Outer.Inner i = new Outer().new Inner();
         Outer.inner i =new Outer.Inner();
对象名前面的部分该怎么理解更合适,它到底是代表什么 ?标记位置,还是就是数据类型?

------解决思路----------------------
这2种方法 我觉得第2种写法 可能更自然些  看起来没有什么不好理解的 这里的
Outer.Inner 这2个部分 就是一个类的作用的限制修饰符  
比如C++里是有namespace的 java里也用类似的类作用域来修饰
这个跟你左边的修饰符是一致的

不好理解的就是1  你可以拆开成
Outer o = new Outer()
Outer.Inner i = o.new Inner(); 这样来理解 实际上这样也可以编译过 这样还有问题吗
------解决思路----------------------
就是数据类型而已
另外如果能用第二种new Outer.Inner()这种写法,那说明Inner是一个static类,这么写是没有问题的,但是如果写成new Outer().new Inner(),理论上也许也是没有问题的,但这是很不好的写法,第一让人以为Inner不是static的,第二白白创建一个Outer对象又用不到,完全就是浪费。
------解决思路----------------------
这个是内部类的实例化过程啊,java核心技术上讲的吧。

不难理解吧,要是不这样写,他回报找不到类的错误的。
  相关解决方案