java中final_Java中final关键字的作用

本文详细介绍了Java中的final关键字在修饰类、字段、方法和局部变量时的不同作用。final修饰的类不能被继承,如System类;final修饰的字段一旦初始化后不可修改,常用于创建常量;final修饰的方法不能被重写;final修饰局部变量则一旦初始化后无法再次赋值。此外,final还可以修饰方法的形参,确保其在方法体内不能改变。
摘要由CSDN通过智能技术生成

Java中final关键字的作用

final关键字修饰类, 修饰字段, 修饰方法,修饰局部变量,修饰方法的形参

final修饰类,表示最终类, 不能被继承,不能作为父类存在

final修饰字段,在定义时必须显示初始化, 不能被修改, 一般与static同时使用,所有字母都大写,称为final常量

final修饰方法,不能被覆盖(重写)

final修饰局部变量, 一旦初始化就不能再修改, 注意final修饰引用类型变量,是指这个变量不能再指向 其他对象 , 可以修改它的字段值

final修饰方法形参, 在方法体中不能修改final参数的值

package com.bjpowernode.chapter01.demo04.p1;

/**

* 1) final修饰类,表示这个类是最终类, 不能被继承

* 如System类/String类就是使用final修饰的

* 当定义的类不想被别的类继承时, 就可以使用final修饰

* @author Administrator

*

*/

public final class Father {

}

package com.bjpowernode.chapter01.demo04.p2;

/**

* 2) final修饰字段

* final字段必须初始化,要么在定义时赋初值,要么在构造方法中赋初值

* final字段不能重新赋值

* 一般情况下,final修饰字段时, 同时使用static一起修饰, 称为final常量 , 所有字母都大写

* @author Administrator

*

*/

public class Father2 {

int xx;

int yy = 20;

final int oo = 456; //final字段在定义时显示初始化

final int zz;//final字段在构造方法中显示初始化

final static double PI = 3.14;//final常量

public Father2() {

zz = 121;

}

public void mm() {

xx = 123;

yy = 202;

//zz = 789; //he final field Father2.zz cannot be assigned

//oo = 369;//final字段不能被重新赋值

}

}

package com.bjpowernode.chapter01.demo04.p3;

/**

* 3) final修饰方法, 不 能被子类重写(覆盖)

* 注意:子类可以继承到final方法, 只是不能重写

* @author Administrator

*

*/

public class Father3 {

public void m1(int xx) {

System.out.println("父类的实例方法,可以子类覆盖");

}

public final void m2(int x, int y ) {

System.out.println("使用final修饰的方法, 不能被子类重写");

}

}

package com.bjpowernode.chapter01.demo04.p4;

import com.bjpowernode.chapter01.demo03.Book;

/**

* 4) final修饰局部变量

* 一旦初始化完成, 就不能再重新赋值

* @author Administrator

*

*/

public class Test {

public static void main(String[] args) {

//定义局部变量

int x ;

x = 10;

int y = 20;

//final修饰局部变量

final int z;

z = 30;

final int t = 40;

//可以给局部变量重新赋值

x = 101;

y = 202;

//z = 303; //不能给final局部变量重新赋值

//final修饰引用类型变量

final Book book1 = new Book("java入门", "勇哥", "动力节点", 66.6);

//final关键字修饰的是book1变量,不能给book1变量重新赋值,可以对象的字段值

//book1 = new Book("java高级", "勇哥", "动力节点", 88.8);

book1.name = "java高级技术";

}

}

package com.bjpowernode.chapter01.demo04.p5;

/**

* 5) final修饰方法形参

* final形参不能被赋值

* @author Administrator

*

*/

public class Test {

public static void main(String[] args) {

m1(10, 20); //在调用方法时, 给final形参初始化

}

public static void m1( int x, final int y ) {

x = 101;

//y = 202;//final形参不能被赋值

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值