java 类中的static_静态内部类(public static class)和 普通的内部类(public class)区别?...

Java中普通的顶级类是不能使用static关键字修饰的,只有内部类可以使用static修饰。即:

// 顶层类A不能用static修饰

public class A {

// 普通内部类B, 可以不用static修饰

public class B {

}

// 普通内部类C,也可以用static修饰

public static class C {

}

}

普通的内部类(public class)和 静态内部类(public static class)区别?

1、静态内部类(static修饰的内部类)没有对外部类的引用,所以静态内部类只能访问外部类的静态属性或方法。并且在初始化的时候可以单独存在,例如:

StaticClass staticClass = new StaticClass();

或者:

Users.StaticClass staticClass2 = new Users.StaticClass()

二种方式初始化,建议使用第二种初始化方法,比较清晰。

2、普通内部类有对外部类的引用,所以普通内部类不能独立存在,初始化的时候必须通过外部类的实例。

并且普通内部类可以直接访问外部类的普通属性和函数(包括私有的属性和函数)同时也能访问外部类的静态属性和函数。

普通内部类的实例化如下:

Users.CommonClass commonClass = new Users().new CommonClass();

或者:

Users users = new Users();

Users.CommonClass commonClass2 = users.new CommonClass();

静态内部类:常用于 建造者模式,返回所属外部类的类实例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值