日期:2014-05-20  浏览次数:20586 次

本人小白 贴一个类问题 不懂求教
public class TestClass {
public class WuQi{
private void WuQi(){
System.out.println("WuQi");
}
public void akGun(){
System.out.println("WuQi");
}
protected void MaFengGun(){
System.out.println("MaFengQiang");

}
private class Qiang{
private void ShaYing(){
System.out.println("WuQi");
}
public void JuJiBuQiang(){
System.out.println("WuQi");
}
protected void BuQiang(){
System.out.println("MaFengQiang");

}
protected class Pao{
private void JiaNong(){
System.out.println("WuQi");
}
public void JuPao(){
System.out.println("WuQi");
}
protected void LieChePao(){
System.out.println("MaFengQiang");

}
}
然后写了一个测试函数与此类在同一个包中
TestClass testClass = new TestClass();
然后testClass. 不可以访问上面说的类 但是如果这样:
TestClass.WuQi
就可以访问 这个类 我想问下这是为什么?
------最佳解决方案--------------------
引用:
就是 说我这样定义的话 相当于 定义了一个内部类是吧

你定义了3个内部类~~~

------其他解决方案--------------------
这样是可以的:
TestClass testClass = new TestClass();
testClass.new WuQi().akGun();
testClass.new Pao().JuPao();

TestClass.Qiang类型不可见,因为Qiang这个内部类的访问限制符为private。你想着private的field不能直接访问,只能通过public的getField()方法在外部访问,那么处于同一位置的private内部类也是如此,只能在类内部使用一下了。
------其他解决方案--------------------
就是 说我这样定义的话 相当于 定义了一个内部类是吧
------其他解决方案--------------------
camus213 在吗?

------其他解决方案--------------------
求赐教!请输入一个长度是6的字符
------其他解决方案--------------------
 好的明白了请输入一个长度为6的字符