Java final 关键字 概述

final 关键字

  • final 关键字 代表最终的,不可改变的
  • 常见的四种用法
    1. 用来修饰一个类 final className
    1. 用来修饰一个方法
    1. 用来修饰一个局部变量
    1. 用来修饰一个成员变量
1用来修饰一个类
// final 关键字 修饰一个类的时候
格式
public final class 类名称{
	//
}
特点 这个类不能有任何子类,不能被继承,,,但是这个类可以拥有父类
如果一个类是被 final 关键字修饰,那么其中所有的成员方法都无法被重写(因为没有子类)
2用来修饰一个方法
当一个方法被 final 关键字修饰的时候,这个方法就是一个最终的方法,不能被覆盖重写的方法
格式:
	  修饰符 final 返回值类型 方法名称(参数列表){
	     // 方法体内容	
       }
注意事项 : 对于类.方法来说,abstract 关键字 和 final 关键字不能同时使用
3 用来修饰一个局部变量
一次赋值,终生不变
    如果没有被赋值,不会报错
    
    一旦使用 final 关键字修饰局部变量,这个局部变量就不能就行更改了
    
    对于基本数据类型: 不可变的是变量当中数据
    对于引用数据类型: 不可变的是变量当中的内存地址值不可改变,内存值可以变
        
   final People p3 = new People("xx");    
   System.out.print(p3);// 内存地址值
   System.out.print(p3.getName()); // xx
   p3.setName("xxxx");
   System.out.print(p3.getName());// xxxx
4用来修饰一个成员变量
对于成员变量来说,如果使用了 final 关键字修饰,那么这个变量也是不可改变的
    1.由于成员变量具有默认值,一旦使用 final 关键字之后,必须手动赋值,系统不在提供默认值[默认值无意义]
    2.使用了 final 关键字的成员变量,只能通过 [ 直接赋值 ] 或者 [ 构造方法 ] 赋值,二选一
    3.必须保证类当中的所有的重载的构造方法,都最终会对 final 成员变量进行赋值.
   
public class Student{
    // final
    final String name;
    
    public Student(){
        name = " xxx ";// 赋值
    }
    
    public Student(String name){
        this.name = name;// 构造方法必须初始化 name (final)
    }
    public Student(String name, int age){
        this.name = name;//
    }
    
    public void setName(String name){
        this.name = name;
        // 报错,不能再次进行赋值,所以系统无法自动生成set方法
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值