2014-10-26 50 views
0

我有一個包含3個嵌套類的類。我正在尋找一種方法來訪問嵌套類的一個 的字段。在Java中訪問嵌套類的字段

public class NestedClasses { 

    class Outer { 
    class InnerOne { 
     int item1; 
     int item2; 
    } 
    class InnerTwo { 
     int item1; 
     int item2; 
    } 
    } 

//get access to item1 inside InnerOne 

我如何訪問InnerOne內的item1來爲它賦值?

我想:

Outer.InnerOne test = new Outer.InnerOne(); 
x.item1 = 5; 

但第一行是無效的。

我在做什麼錯?

+0

嵌套類中的一類通常是外部類在內部使用的內部類。如果你需要在'Outer'外創建'InnerOne' *的實例,那麼它應該嵌套在'Outer'中。你所做的是對Demeter法的重大違反:http://en.wikipedia.org/wiki/Law_of_Demeter – dursk 2014-10-26 21:10:34

回答

1

你必須實例化每個類

NestedClasses nested = new NestedClasses(); 
Outer outer = nested.new Outer(); 
Outer.InnerOne inner = outer.new InnerOne(); 
inner.item1 = 5;