这基本上就是我所拥有的:
public class Game extends Activity{
public class Work{
public class Shuffle{
*Class I need to access*
}
}
}
以下是我将访问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;
}
}
我需要声明能够在我的Deck类中访问Shuffle.getShuffle()吗?
答案 0 :(得分:3)
现在采用嵌套类的 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();
}
}
- 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();
}
}
答案 1 :(得分:1)
您无法直接从外部类访问Inner类方法和字段。但是,您可以在内部类中访问外部类方法。
要访问内部类,您需要创建内部类的对象,而不仅仅是可以访问内部类字段。有关更多说明,请参阅嵌套类:
http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
答案 2 :(得分:1)
您正在谈论嵌套类,请尝试阅读本文。也许它可以提供帮助。
http://en.wikibooks.org/wiki/Java_Programming/Nested_Classes
答案 3 :(得分:1)
嵌套类应仅存在于服务器外部类中。你不应该把内部类暴露给外面的世界。
public class Game extends Activity{
public static class Shuffle
{
// provide shuffle method here which will use internal implementation of
// shuffle.
}
int[] shuffle()
{
// call inner class method from here. Also declare inner class as
// static since I guess your inner class does not require instance
// of outer class.
return null;
}
使用游戏对象访问游戏的shuffle()
方法
int[] shuffDeck = (Game object).getShuffle();
答案 4 :(得分:1)
public class Outer{
class Inner{
}
}
Outer.Inner art = (new Outer()).new Inner();
import android.content.Context;
import android.widget.Toast;
public class Outer{
private Context context;
public Outer(Context con) {
context = con;
String text = "Hello, I'm dbManager.";
int duration = Toast.LENGTH_SHORT;
Toast.makeText(context, text, duration ).show();
}
public class Inner{
public Inner() {
String text = "Hello, I'm «Art dbManager».";
int duration = Toast.LENGTH_SHORT;
Toast.makeText(context, text, duration ).show();
}
}
}
Outer.Inner art = (new Outer(this)).new Inner();