【Java】基础19:final修饰符和权限修饰符

前几天学过方法重写,也就是说,一个类继承至父类,子类可以将父类的方法重写。

但有的时候父类的方法要求固定,不能被更改。

该怎么办?

这就得学到一个新的修饰符了。

一、final修饰符

final,翻译成中文就是“不可更改的 ”。

顾名思义,它是一个修饰符,用于修改不可更改的内容。

  • 被final修饰的类:不能被继承。
  • 被final修饰的方法:不能被重写。
  • 被final修饰的变量:不能被重新赋值。
  • 被final修饰的常量:名称一般都有书写规范,所有字母都大写。多个单词之间,使用下划线进行分割。

1.修饰类和方法

在这里插入图片描述

①final修饰类,类不能被继承。

既然不能被继承,那final类里的方法也无法被重写。

②final修饰方法,方法不能被重写。

非final类中,也可以存着final方法。

**注:**其中final方法是可以被重载的(同名不同参)

2.修饰局部变量

在这里插入图片描述

③用final修饰基本数据类型局部变量。

只能赋值一次,不能再更改了,编译会报错。

基本数据类型不能更改的是值。

④用final修饰引用数据类型局部变量。

只能创建对象一次,不能再次创建对象,编译会报错。

引用数据类型不能更改的是对象的地址。

该对象的值是可以通过对应的setXXX()方法更改的。

3.修饰成员变量

成员变量和局部变量有一个区别在于:

成员变量是有默认值的。

所以用final修饰成员变量,它就不再有默认值了,必须一步直接赋值 。

初始化方式有两种,只能二选一:

在这里插入图片描述
⑤直接初始化赋值。

⑥构造方法赋值。

注意:用setXXX()方法无法赋值。

二、权限修饰符

public这个关键字太常见了,它就是一个权限修饰符。

在Java语言里面有四种权限修饰符。

其实看字面意思也蛮好理解的:

①public:公共的。

  • 可以修饰类、成员变量、成员方法、构造方法。
  • 被public修饰的成员,可以在任何一个类中被调用,不管同包或不同包。
  • 一般情况下,类的构造方法、成员方法会使用public,方便创建对象和调用方法。

②protected:受保护的。

  • 可以修饰成员变量,成员方法,构造方法,不能修饰类(此处指外部类、内部类不考虑)。
  • 被protected修饰的成员,只能被同包下的其他类访问。
  • 如果不同包下的类要访问被protected修饰的成员,这个类必须是其子类。

③default:默认的。

  • 可以修饰类,成员变量,成员方法,构造方法。
  • 若是没有加权限修饰符,其访问能力就是default权限。
  • 被默认权限修饰后,其只能被本类以及同包下的其他类访问。不同包的子类都不行。

④private:私有的。

  • 可以修饰成员变量,成员方法,构造方法,不能修饰类(此处指的是外部类,内部类不加以考虑)。
  • 被private修饰的成员只能在其修饰的本类中访问,在其他类中不能调用,但是被private修饰的成员可以通过set和get方法向外界提供访问方式 。
  • private类型的方法都默认为是final方法,因而也不能被子类重写

权限是从大到小的:

public > protect >default>private

三、abstract和static修饰符

修饰符除了权限修饰符和final修饰符,常见的还有abstract和static修饰符。

这两个关键字前面都学过,做一个回顾:

1.abstact修饰类

表明这是一个抽象类。

抽象类不能创建对象生成实例,需要使用子类实例化

2.abstact修饰方法

表明这是一个抽象方法,只有方法名,没有方法体。

需要子类重写。

3.static修饰方法

静态方法只能访问静态变量。

静态方法可以用类名直接调用。

4.static修饰变量

也可称为类变量,局部变量不能被static修饰。

也可以用类名直接调用。

5.static修饰代码块

随着类的加载而加载一次,相当于初始化赋值。

总结:

静态方法可以用类名直接调用。

4.static修饰变量

也可称为类变量,局部变量不能被static修饰。

也可以用类名直接调用。

5.static修饰代码块

随着类的加载而加载一次,相当于初始化赋值。

总结:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘小爱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值