第一 final修饰类
Final修饰的类没有子类,因为它不能被继承,例如java.lang.String类。Final类的所有方法都是final方法。
注意:final不能跟abstract关键字连用,因为重现的类或者方法必须被继承和覆盖才有意义。
第二 final修饰方法
Final方法可以被子类继承,但是不能被子类重写。有人说,父类的private方法是final方法,不过我不这么认为。因为,父类的private方法可以被子类继承,也能被子类覆盖。
第三 final修饰属性
Final属性属于常量,只能被初始化一次,之后不能改变。初始化的方式有两种:
1在声明时初始化
class Test{ final int age = 1; }
2在构造方法中初始化
class Test{ final int age; Father(){ age = 1; } }
如果final修饰的是个引用变量,如StringBuffer,可以通过调用对象的方法、设置属性等改变其值。但是引用变量本身不能变。示例如下:
//测试类 class Test{ public final StringBuffer sb = new StringBuffer("这是第一个字符串"); public String appendString(String str){ return this.sb.append(str).toString(); } } //演示类 class Demo{ public void mytest(){ Test t = new Test(); //错误,因为它对属性sb又一次赋值了 t.sb = "赋值为新字符串"; //正确,以为它并没有改变sb的引用地址 t.sb.append("添加点东西"); //正确,理由同上 t.appendString("又添了一点东西"); } }
第四 final修饰局部变量
Final局部变量,例如,在一个函数中声明的一个局部变量,JVM会在程序的栈内存中为该变量开辟空间。而堆内存是由GC(垃圾回收器)管理的,所以当函数结束时,该变量依然存在,可以被其他线程或程序段使用,不至于出现空指针异常。这个用法在多线程、定时器和内部类中较为常见。例如:
import java.util.Timer; import java.util.TimerTask; public class FinalTest { public static void test(){ final Timer timer = new Timer(); final int count = 1; timer.schedule(new TimerTask(){ @Override public void run(){ System.out.println("2,test方法,输出count=="+count); //.... //.... //这一句使用了timer变量 timer.cancel(); } },1000,2000); } public static void main(String[] args) { FinalTest.test(); System.out.println("1,这句话应该在test方法之后运行"); } }
运行结果是:
1,这句话应该在test方法之后运行
2,test方法,输出count==1
第五 final修饰方法参数
Final参数跟final属性差不多,都是不能更改其值。但是如果参数是引用变量的话可以设置其属性和调用其方法。
相关推荐
本文将详细总结 final 和 static 的使用方法和限制。 一、final 关键字 final 关键字可以用来修饰类、方法、变量等,它的主要作用是表明某个东西是“不可改变”的。下面是 final 关键字的使用方法和限制: 1、...
正确地使用`final`可以大大增强代码的可靠性和性能。 ### Java中的static关键字详解 #### 一、static的概述 `static`关键字在Java中主要用于创建静态成员,包括静态变量和静态方法。与普通成员不同,静态成员属于...
总结一下,`final`关键字用于防止继承、方法重写和变量值的改变,以确保代码的稳定性和设计意图。`static`关键字则用于定义类级别的成员,使其独立于对象实例存在,提高代码的复用性和效率。理解和熟练运用这两个...
`final`修饰的方法不能在子类中被重写,确保了方法实现的一致性和安全性。这对于那些不应被修改的核心算法或者安全相关的操作尤其有用。 示例: ```java public final void display() { System.out.println("This ...
### Java中static、this、super、final用法详解 #### 一、static关键字 `static`关键字在Java中主要用于声明类成员(变量或方法)为静态成员。这意味着这些成员不属于任何特定的对象实例,而是属于整个类本身。因此...
总结起来,`static`、`this`、`super`和`final`是Java中用于控制类、对象和继承的关键字,它们帮助开发者创建健壮、可维护的代码。理解并熟练运用这些关键字是Java程序员必备的技能。在实际开发中,根据具体需求灵活...
在Java编程语言中,`final` 和 `static` 是两个非常重要的关键字,它们分别具有不同的含义和用法,但都对代码的结构和行为产生深远影响。本文将深入探讨这两个关键字,并结合实际示例来解释它们的应用场景。 首先,...
### Final用法详解 #### 一、Final Constants(最终常量) 最终常量是指那些一旦被定义就不能再改变其值的变量。它们通常用于表示不会发生变化的值,比如圆周率π。在Java中,使用`final`关键字来声明一个最终常量...
在Java编程语言中,`static`、`final`、`abstract`和`...当我们希望限制类的继承或确保方法不被重写时,可以使用final;当需要定义类的静态属性或方法时,使用static;而抽象类和抽象方法则用于构建类的继承层次结构。
总结来说,final关键字在Java编程中扮演了多种角色,从确保常量的不变性,到防止方法重写,再到优化性能,它都发挥着至关重要的作用。合理利用final可以提高代码质量,减少逻辑错误,增强代码的可预测性和可维护性。
Java中final类的简单使用,并对Java关键字的使用做出了总结
- 当方法参数使用final修饰时,意味着在方法体内不能改变该参数的值。对于基本类型,这限制了参数值的变更;对于引用类型,它阻止了参数引用指向其他对象,但允许修改引用对象的内容。final参数主要用于防止方法...
本文将详细介绍 final 和 static 关键字的使用方法和注意事项。 一、final 关键字 final 关键字在 Java 中有多种用途,包括修饰类、方法和变量。 1. final 类 final 类是无法被继承的,final 类中的方法默认是 ...
在Java编程语言中,`final`关键字有着重要的作用,它能用于修饰类、方法和变量,以限制它们的使用方式。下面将详细解释`final`修饰类、方法和变量的具体含义及其应用场景。 **final 修饰类** `final`修饰类的作用...
本篇文章将深入探讨FinalData数据修复的核心原理、功能、使用方法以及注意事项。 一、FinalData概述 FinalData是由Grubin Software开发的一款专业级的数据恢复工具,它的主要功能是扫描硬盘、USB驱动器、SD卡等存储...
总结来说,`final`关键字在Java中扮演了多种角色,包括创建不可变变量、常量、对象和数组,确保方法和类的不可覆盖性,以及在多线程环境中的安全性。正确使用`final`能够提高代码的清晰度、稳定性和性能。
FinalData是一款广受欢迎的数据恢复工具,尤其以它的免安装版本为用户提供了极大的便利。这款软件在数据丢失或硬盘出现故障时,能有效地帮助...因此,了解并掌握FinalData的使用方法对于个人和企业来说都是十分重要的。