final关键字


final用来修饰的结构:类、方法、变量

final修饰一个类代表不能继承

   如:StringBuffer类、String类、System类

final修饰一个方法代表不能重写【可以被重载】

   如:Object类的中getClass();【查看代码:使用ctrl+shift+t查找Object的源代码-->ctrl+o找到getClass方法】

final修饰变量,此时“变量”就称为一个常量,不能再被修改。

在这里插入图片描述

final修饰属性:可以考虑的位置有:显示初始化、代码块中赋值、构造器中初始化

当属性值每次都不一样的时候在构造器初始化的位置
当属性值要固定是在显示初始化的位置
当调用方法,方法可能抛异常的时候放在代码块中

final修饰局部变量

 尤其是使用final修饰形参时,表示形参时一个常量,当调用此方法时,给常量赋一个实参,以后,就只能在方法体内使用此形参,但不能进行重新赋值
public void show(final int num) {
//报错:The final local variable num cannot be assigned. It must be blank and not using a compound assignment
	num+=1;//当形参为final类型,在此方法体中此值不能再赋值
		System.out.println(num);
	}

static final :用来修饰成员变量、方法、内部类

成员变量:全局变量【值不变,接口中的属性皆是】

成员方法:不能被重写

内部类:属于外部类,且不能被继承

static可以修饰内部类、方法、成员变量、代码块
final可以修饰内部类、成员变量、成员方法
–>static final可以修饰成员方法、内部类、成员变量

例题

题目一:final修饰基本数据类型

`public int add(final int x) {
		return x++;//因为x++会给x自增,此时改为return x+1;则不会报错
	}

题目二:final修饰引用数据类型

public class Something {
public static void main(String[] args) {
	Other other=new Other();
	new Something().addOne(other);
}
public void addOne(final Other other) {
//	final修饰引用类型代表指向同一个对象,其对象所指的值是会随着其值的变化而变化的
//	o=new Other();
	   other.i++;
}
}
class Other{
	public int i;
}

总结

final修饰属性表示为全局变量【修饰基本数据类型不能再赋值,为常量;修饰引用数据类型表示指向同一个地址,里面的值可以更改】
修饰方法表示不能重写
修饰类表示不能继承

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值