java中外部类的静态成员和非静态内部类的问题

如图所示这里面说外部类的静态方法不能使用非静态内部类定义变量我想问一下,什么叫飞静态内部类定义变量,用类定义变量?还是类里定义的变量?... 如图所示

这里面说外部类的静态方法不能使用非静态内部类定义变量
我想问一下,什么叫飞静态内部类定义变量,用类定义变量?还是类里定义的变量?
展开
 我来答
fuhaiwei
2014-02-13 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1386万
展开全部
public class OuterClass {
public static void main(String[] args) {
staticMethod();
// nonStaticMethod();

OuterClass outerClass = new OuterClass();
outerClass.nonStaticMethod();
}

public static void staticMethod() {
StaticInnerClass staticInnerClass;
staticInnerClass = new StaticInnerClass();

NonStaticInnerClass nonStaticInnerClass;
// nonStaticInnerClass = new NonStaticInnerClass();

OuterClass outerClass = new OuterClass();
nonStaticInnerClass = outerClass.new NonStaticInnerClass();
}

public void nonStaticMethod() {
StaticInnerClass staticInnerClass;
staticInnerClass = new StaticInnerClass();

NonStaticInnerClass nonStaticInnerClass;
nonStaticInnerClass = new NonStaticInnerClass();
}

public static class StaticInnerClass {

public static void staticMethod2() {
staticMethod();
// nonStaticMethod();

OuterClass outerClass = new OuterClass();
outerClass.nonStaticMethod();
}

public void nonStaticMethod2() {
staticMethod();
// nonStaticMethod();

OuterClass outerClass = new OuterClass();
outerClass.nonStaticMethod();
}

}

public class NonStaticInnerClass {

// public static void staticMethod2() {
//
// }

public void nonStaticMethod2() {
staticMethod();
nonStaticMethod();
}

}

}

我觉得你的教材说的不是很清楚,还是看例子吧,注释掉的语句是不能执行的语句。

关键理解这一句话,非静态内部类的创建必须有外部类对象的参与,不管是隐式的还是显示的。

静态内部类和外部类没有关系,其创建不需要外部类对象的参与,也不能访问内部类的非静态方法。

Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式