内部类(inner Class)和嵌套类(Static Nested Class)之间的区别?

学习过程中总遇到一些问题,内部类(inner Class)和嵌套类(Static Nested Class)到底是什么区别呢?难道只是一个static关键字的区别?自己的见解给写下

内部类就是内部的类:

class OuterClass {               --外围类
    ...
    class NestedClass {         --内部类
        ...
    }
}

嵌套类其实分为静态嵌套类的和非静态嵌套类,

	a).静态嵌套类(Static Nested Class)
	b).非静态嵌套类也就是所说的内部类(inner CLass)

上图说话

在这里插入图片描述
当实例化静态嵌套类的时候,出现Illegal enclosing instance specification for type OutCLass.NestedClass

其实最大的区别就是:

内部类的实例化对象需要绑定一个外围类的实例化对象,而静态嵌套类的实例化对象不能也无法绑定外围类的实例化对象。

------------扯到这些就不得不扯到关键字static,final的关键字啊-------

被static修饰:

1.可以修饰方法

修饰的方法叫做静态方法,被修饰过的方法可以调用非静态方法,非静态方法可以调用静态方法,可以通过类名.方法名字(直接调用)

在这里插入图片描述

a).静态方法中不能有this.super关键字,不能访问所属类的实例变量和实例方法

2.可以修饰常量: 变量分为静态变量和实例变量
a).语法上的区别:
      前边加static的是静态变量,不加static的是实例变量
b).作用的区别
      static:JVM加载类的时候,会给static分配一个地址,可以通过类名直接访问
      非static:每创建一个实例,就给他分配一次内存
c).静态的好处
      实现资源共享
      访问数据比较方便
3.关于的是静态代码块
      a).静态代码块总是优先执行(),JVM加载类的时候会按照static静态代码块,按照顺序执行

在这里插入图片描述

会出现打印的结果是什么呢?

被final修饰:

  1. final可以修饰类,这样的类不能被继承。

  2. final可以修饰方法,可以继承,但是这样的方法不能被重写。

  3. final可以修饰变量,这样的变量的值不能被修改,是常量。

文章来源网络,版权归作者本人所有,如侵犯到原作者权益,请与我们联系删除或授权事宜,如果有误,请联系作者更改,谢谢,本人微信:void666666

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值