《Effective java》读书记录-第22条-优先考虑静态成员类

嵌套类(nested class)是指被定义在另一个类的内部的类。

嵌套类存在的目的应该只是为它的外围类(enclosing class)提供服务。

嵌套类有四种:静态成员类(static member class)、非静态成员类(nonstatic member class)、匿名类(annoymous class)和局部类(local class)。

除了第一种之外,其他三种都被称为内部类(inner class)。

静态成员类是最简单的一种嵌套类。可以看做普通的类,它可以访问外围类的所有成员,包括那些声明为私有的成员

public class StaticMemberClass {
    
    private String str;
    
    private class StaticClassTest {
        public void test(){
            str="aaaa";
        }
    }

    private StaticClassTest sct=new StaticClassTest();
    
    public void method(){
        sct.test();
    }
}
静态成员类的一种常见用法是作为公有的辅助类,仅当与他的外部类一起使用时才有意义。

从语法上讲,静态成员类和非静态成员类之间唯一的区别是,静态成员类的声明中包含修饰符static。

尽管它们的语法非常相似,但是这两种嵌套类有很大的不同。非静态成员类的每个实例都隐含着与外围类的一个外围实例(enclosing instance)相关联。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值