java内部类--静态内部类

2,静态内部类

  • 成员内部类的基础上加上static修饰,与外部类同级别。
  • 不依赖外部对象,可直接创建或通过类名访问,可声明静态成员。
  • 无法直接调用外部类属性,要用对象调用。
  • 编写一个内部类Outer,在Outer内编写一个内部类Inner
package innerclass.staticinnerclass;

//外部类
public class Outer {

    private String name = "威武";
    private int age = 18;

    //静态内部类(在成员内部类前加static),与外部类同等级。
    //static修饰的,外部类加载时会同时加载。
    public static class Inner{

        private String address = "北京";
        private static int phone = 110;//可以定义静态成员变量

        public void say(){

            //如何调用外部类属性
            //无法直接调用外部类属性,要先new一个对象,用对象调用
            Outer outer = new Outer();
            System.out.println(outer.name);//System.out.println(new Outer().name);
            System.out.println(new Outer().age);

            //如何调用内部类属性
            //直接调用
            System.out.println(this.address);//可省略this
            System.out.println(Inner.phone);//可省略Inner

        }

    }

}
  • 编写一个测试类Test
package innerclass;

import innerclass.staticinnerclass.Outer;

public class Test{

    //静态内部类测试
    public static void main(String[] args) {

        //静态内部类可直接new对象
        Outer.Inner inner = new Outer.Inner();
        inner.say();

    }

}
  • 输出

  •  注意

               1,只有内部类可以是静态的。

               2,在类被加载的时候,就会去加载被static修饰的部分,故静态内部类与外部类同级别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值