java学习笔记<八>final修饰符
来源:互联网 发布:灯具安装网络接单平台 编辑:程序博客网 时间:2024/03/29 13:26
final关键字可以修饰类,变量,和方法,用于表示它修饰的类,方法,变量不可改变。final修饰变量时,表示该变量一旦获得了初始值就不可改变,final既可以修饰成员变量,也可以修饰局部变量,形参。final修饰的变量不可被改变,一旦获得了初始值,该final变量的值就不能被重新赋值
java语法规定;final修饰的成员变量必须由程序员显式地指定初始值。
类field:必须在静态初始化块中或声明该field时指定初始值
实例field:必须在非静态初始化块,声明该field或构造器中指定初始值
final局部变量
public class FInalLocalVariableTest
{
public void test (final int a)
{
a=5; //不能对final修饰的形参赋值,这个语句是非法的,因为形参在调用该方法时,由系统根据传入的参数来完成初始化,因此使用final修饰的形参不能被赋值
}
}
final修饰基本类型变量和引用类型变量的区别
当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本类型变量不能被改变。但对于引用类型变量而言,它保存的仅仅是一个引用,final只保证这个引用变量所引用的地址不会改变,即一直引用同一个对象,但这个对象完全可以改变
import java.util.Arrays;
class People
{
private int age;
public People(){}
public People(int age)
{
this.age=age;
}
public int setAge( int age)
{
return this.age;
}
}
public class FinalTest
{
public static void main(String args)
{
final int[] iArr={5,6,9,12};
System.out.println(Arrays.toString(iArr));
Arrays.sort(iArr);
System.out.println(Arrays.toString(iArr));
iArr[2]=8;
System.out.println(Arrays.toString(iArr));
final People p=new People(45);
p.setAge(23);
}
}
满足以下3个条件的类field,实例field,还是局部变量相当于一个直接量
1.使用final修饰符修饰
2在定义该final变量时指定了初始值
3该初始值可以在编译时就被确定下来
final方法
final修饰的方法不可被重写,如果出于某个原因,不希望子类重写父类的某个方法,则可以使用final修饰该方法
final类
final修饰的类不能有子类,为了保证某个类不被继承则可以使用final来修饰
- java学习笔记<八>final修饰符
- Java学习笔记:final修饰符
- java学习笔记14—— final修饰符
- Java学习笔记_17_static、final、abst修饰符
- 疯狂java笔记:关于final修饰符
- Java笔记之final修饰符
- Java Final修饰符
- Java final 修饰符
- Java final修饰符
- java修饰符:final
- java final 修饰符
- Java-final修饰符
- java修饰符final
- Java final 修饰符
- java--final修饰符
- Java final修饰符
- java学习笔记(三)java中的修饰符abstract、static与final
- Java菜鸟学习笔记--面向对象篇(十七):Final修饰符
- linux下让mysql数据库支持中文
- jlink烧写mini2440 nor flash
- soft排序
- druid介绍
- $250000投资的陷阱(转自创业孵化器Year One Labs的联合创始人Ben Yoskovitz)
- java学习笔记<八>final修饰符
- GO和C++代码对比,GO少个25%代码
- 山理工acm各位数相加
- 第三周:接口
- 网络编程(7)字节序对跨平台数据传输的影响
- JAVA读写资源文件
- NVelocity介绍
- JAVA UUID 生成
- Rust运行时指南(官方文档翻译)