Java-静态内部类(嵌套类)

//静态内部类(嵌套类)
//如果你不需要内部类对象与其外围类对象之间有联系,那你可以将内部类声明为static。这通常称之为嵌套类(nested class)。
//想要理解static应用于内部类时的含义,必须知道,普通的内部类对象隐含的保存了一个引用,指向创建它的外围类对象。
//然而,当内部类是static的时候,就不是这样了。
//嵌套意味着
//1、要创建嵌套类的对象,并不需要其外围类的对象
//2、不能从嵌套类的对象中访问非静态的外围类对象
package out;
public class Outer {
private static int i=1;
private int j=10;
public static void outer_f1(){
}
public void outer_f2(){
}
//静态内部类可以用public,protected,private修饰
//静态内部类中可以定义静态或者非静态的成员
static class Inner{
static int inner_i=100;
int inner_j=200;
static void inner_f1(){
//静态内部类只能访问外部类的静态成员(包括静态变量和静态方法)
System.out.println(“Outer.i=”+i);
outer_f1();
}
void inner_f2(){
//静态内部类不能访问外部类的非静态成员(包括非静态变量和非静态方法)
//System.out.println(“Outer.j”+j); //会报错
//outer_f2();//会报错
}
}
public void outer_f3(){
System.out.println(Inner.inner_i);//外部类访问内部类的静态成员
Inner.inner_f1();//外部类访问内部类的静态方法
Inner inner=new Inner();//外部类访问内部类的非静态成员,需要先实例化内部类对象
inner.inner_f2();
}
public static void main(String[] args) {
new Outer().outer_f3();
}
}

控制台
100
Outer.i=1

代码来自java学习宝典

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值