Java 笔记-final关键字,四种权限关键字

1.什么是final关键字
  1. final可以顾名思义,就是最终的,不可改变的,被它修饰东西都是无法改变的.
  2. 简单通俗理解就是"霸道",它不允许别人染指改变它看上的东西.

2.final用法

final的四种常用方法

  1. 可以用来修饰一个类
  2. 可以用来修饰一个方法
  3. 还可以用来修饰一个局部变量
  4. 还可以用来修饰一个成员变量

修饰类:
当final关键字用来修饰一个类的时候,格式:

public final class 类名称 
{
    // ...
}

被final修饰的类不能有任何的子类。
注意:一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写(因为没有子类。)

修饰方法
当final关键字用来修饰一个方法的时候,这个方法就是最终方法,不能被覆盖重写。
格式:

修饰符 final 返回值类型 方法名称(参数列表) 
{
    // 方法体
}

注意:
对于类、方法来说,abstract关键字和final关键字不能同时使用,因为矛盾.

修饰变量
对于成员变量,局部变量来说,如果使用final关键字修饰,那么变量都是不可变。

  1. 由于成员变量具有默认值,所以用了final之后必须手动赋值,不会再给默认值了.
  2. 对于final的成员变量,要么使用直接赋值,要么通过构造方法赋值。二者选其一.
  3. 必须保证类当中所有重载的构造方法,都最终会对final的成员变量进行赋值,不能保证就采用直接赋值.
  4. 对于基本类型来说,不可变说的是变量当中的数值不可变
  5. 对于引用类型来说,不可变说的是变量当中的地址值不可变
public static void main(String[] args)
    {
       final int num = 20; //数值不可变
        //num = 30; 再次赋值会报错

        Student one = new Student("sikadi", 18);
        System.out.println("打印的是地址值 " + one);
        System.out.println("名字是 " + one.getName() +  " 年龄是 " + one.getAge());
        one = new Student("Lifu", 16);//新对象地址值会发生改变
        System.out.println("新的对象是 " + "名字是 " + one.getName() +  " 年龄是 " + one.getAge());
        System.out.println(one); //如果使用final修饰,会无法new新的对象,即无法改变地址值
        one.setName("yuki"); //但是可以改变其内容
        System.out.println("更改名字为 " + one.getName() +  " 年龄是 " + one.getAge());
    }

在这里插入图片描述


3.四种权限修饰符

从左到右:修饰符权限从大到小

public >protected >(default) >private 
同一个类(自己家)
同一个包(邻居)×
不同包子类(自己家孩子)××
不同包非子类(陌生人)×××
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值