这基本上是我所拥有的:
public class Game extends Activity{
public class Work{
public class Shuffle{
*Class I need to access*
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我将访问 Shuffle 的类:
public class Deck extends Game {
public int shuffle() {
//WHAT DO I NEED TO DECLARE HERE IN ORDER TO ACCESS Shuffle.getShuffle()?
int[] shuffDeck = (MY SHUFFLE CLASS).getShuffle();
int x = shuffDeck[i];
String y = String.valueOf(x);
i += 1;
return x;
}
}
Run Code Online (Sandbox Code Playgroud)
我需要声明什么才能在我的 Deck 类中访问 Shuffle.getShuffle()?
现在采用2种类型的嵌套类:
1. Inner Classes
(非静态)
2. Top Level Classes
(静态)
- Inner Clas
s(非静态)对其 Outer Class
(封闭类)有一个隐式引用。要从外部访问内部类,您需要使用外部类对象访问它。
例如:
public class Outer{
class Inner{
}
}
public class Test{
public static void main(String[] args){
Outer o = new Outer();
Outer.Inner i = o.new Inner();
}
}
Run Code Online (Sandbox Code Playgroud)
- A Top-Level Class
(静态)就像外部类中的一个单独的类。
Top-level
类需要创建外部类的一个对象来访问它的非静态成员,但它可以访问的Static methods and Static variables
直接外部类的。
例如:
public class Outer{
class Inner{
}
}
public class Test{
public static void main(String[] args){
Outer.Inner i = new Outer.Inner();
}
}
Run Code Online (Sandbox Code Playgroud)