静态成员和非静态成员的细节

本文深入解析Java中外部类的静态方法与非静态内部类之间的访问限制,详细阐述了静态成员与非静态成员间的相互作用及访问约束,提供了一个清晰的理解路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--根据静态成员不能访问非静态成员的规则,外部类的静态方法,静态代码块不能访问非静态内部类,包括不能使用----非静态内部类定义变量,创建实例等
--总之,不允许在外部类的静态成员中直接使用非静态内部类

public class StaticTest{
//定义一个非静态内部类,是一个空类
private class In(){}
public static void main(String[] args){
//下面代码引起编译错误,因为静态成员main方法
//无法访问非静态成员(In类)

new In();
}
}
--java不允许在非静态内部类里定义静态成员
public class InnerNoStatic{
private class InnerClass{
//下面三个静态声明将引发如下编译错误
//非静态内部类不能有静态声明

static{
System.out.println("******");
}
private static int inProp;
private static void test(){} 
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值