JAVA基础篇修饰符与内部类

final关键字的概述
final关键字可以修饰类,也可以修饰方法,也可以修饰变量
如果final修饰类,那么这个类不能被继承,但是这个类可以去继承别的类
如果final修饰方法,那么这个方法不能被重写。但是可以被子类继承使用
如果final修饰变量,那么表示这个变量不能被改值,从效果上看,其实这就变成了一个常量
如果final修饰的是具备变量,那么这个变量只能被赋值一次

如果final修饰的是成员变量,同样也是只能被赋值一次,一旦赋值就不能被改值了,并且一定要在创建对象完成之前进行赋值
如果final修饰的是引用类型的变量,那么表示这个变量地址值不可变,不可以赋值给其他引用变量

static关键字的概述
如果一个成员变量加上static修饰符,那么这个成员就不再属于对象了,而是属于类,但是会被类所有对象所共享
为什么会被共享? 因为对象还没有被创建,当编译这个类进方法区的时候,该成员变量已经被赋值了,所以每个对象创建出来的时候值才是一样的。

如果static修饰成员变量,可以通过对象调用该成员变量,也可以通过类名直接调用,推荐使用类名.调用

小结
如果一个成员变量没有使用static修饰,表示该成员变量时属于对象的,必须有对象才能使用,如果一个成员变量被static修饰了,那么表示这个变量属于类,可以通过类名直接.调用。

总结 被static修饰的 成员 是随着类的加载而加载,没有被static修饰的成员变量时随着对象的加载而加载,对象可以访问静态成员,静态成员不可以访问非静态的成员
原因 类优先与对象加载,被static修饰的又被称为类成员。
静态方法中不能使用this、super关键字,this表示的是调用者对象,静态方法属于类,优先与对象产生

静态的内存图
在这里插入图片描述
静态代码块的概述
静态代码块就是使用static修饰的代码块
格式 static{//静态代码块的内容}
静态代码块一定要写在一个类的成员位置(类中方法外)

静态代码块在类加载的时候自动执行,只执行一次,当我们第一次使用这个类时,这个类必须加载到方法区才能使用它,这个加载到方法区的过程就是类加载

静态代码块的使用场景,用来加载类的时候进行一些初始化的操作

权限修饰符的概述
在java中提供了四种访问权限
public 公共的 protected 保护的 default 默认的 private 私有的

当前项目下
被public 修饰的成员可以在任意位置使用
被protected 修饰的成员只能在本包下使用,或者是子类
如果一个成员省略修饰符,那么该成员的权限就是默认的 权限只能在本包下使用
被private 修饰的成员只能在当前类中使用

四大权限的大小比较(从大到小)
public protected default private

内部类的概述
什么是内部类 将一个类A定义在另一个类B里面,里面的类A 就是B类的内部类

内部类指的就是将一个类定义在另一个类里面
里面的类叫做内部类,外面的类叫做外部类
如果将一个类定义在了另一个类的成员变量,那me这个内部类就是一个成员内部类

成员内部类的使用方式
成员内部类数据外部类的一个成员,那么必须要有外部类对象才能访问
创建成员内部类对象的格式
外部类.内部类 对象名 = new 外部类().new 内部类();
注意事项 内部类在编译之后也会生成一个.class的字节码文件

匿名内部类
匿名内部类也是会定义一个内部类,只不过这个内部类没有名字的
匿名内部类的作用:临时定义某个类的子类,然后创建该子类的对象

匿名内部类的格式 new 父类或者接口(){///重写的方法}

核心 匿名内部类是创建子类对象,创建的是某个类的子类对象。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值