第一 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属性差不多,都是不能更改其值。但是如果参数是引用变量的话可以设置其属性和调用其方法。
相关推荐
Java中final类的简单使用,并对Java关键字的使用做出了总结
在Java中,final可以别用来修饰类、修饰方法、修饰变量和修饰参数等,这里就来简单作一个Java中final关键字的用法总结:
自己总结了一下java中static、final、abstract和interface的用法
NULL 博文链接:https://zkf60553.iteye.com/blog/1307592
final方法不能被子类的方法覆盖,但可以被...用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块,下面通过本文给大家分享Java关键字final、static使用总结,感兴趣的朋友一起看看吧
7、bitmap的用法小结 BitmapFactory.Options option = new BitmapFactory.Options(); option.inSampleSize = 2; //将图片设为原来宽高的1/2,防止内存溢出 Bitmap bm = BitmapFactory.decodeFile("",option);//文件...
static 可以修饰初始化代码块扩充内容三、final(最终的,最后的)1.final可以修饰变量2.final可以修饰方法3.final可以修饰类总结abstract、static、final可以修饰的内容abstract、static、final是否可以修饰构造...
主要给大家介绍了关于Java中final关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
java定义一个学生类 class A{ private double a; A(){} ... [public /protected /private /static /final /abstract] 返回值类型 方法名字(参数){ //如果返回值类型不是void,必须有return语句 } }
本文实例为大家分享了android afinal使用方法,供大家参考,具体内容如下 1.注解功能 1)继承:FinalActivity ( 需要复制 afinal_0.5.1_bin.jar到lib下) 2)@ViewInject() public class AfinalActivity extends ...
主要介绍了Java中static关键字的作用和用法详细介绍,主要讲了静态方法、静态变量、静态类、static和final一块用等内容。需要的朋友可以参考下
JAVA基础知识精华总结 收藏 1、 对象的初始化 (1) 非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。 基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。 ※在...
因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,同一个类的不同...
JavaLearnSummary java学习总结 JAVA基础知识 1. final关键字 Ø 修饰类,代表该类不能被继承;final类比普通类有更高的效率 ...因此使用final修饰局部变量时,既可以在定义时指定默认值(后面的代码不能再对变
JavaSE 星辰学习笔记 简介 如何高效的学习Java 案例:创建一个博客网站typecho 基础 Java程序运行机制 数据类型 变量 变量作用域 常量final 变量的命名规范 ...Java的方法 1、何谓方法 2、方法的定义 ...小结
JDK的主要包,import(导入类),package(包机制),继承(extends)使用要点,implements,方法的重写(override),final(关键字)使用,instanceof(关键字),组合的核心,super本质是什么,封装(encapsulation),封装的简单规则,访问...
六、参考文献 Final Cut Pro 6苹果专业非线形编辑软件标准教材(中文版) 摄像机的基本使用方法 ----------------------- 微电影实验报告全文共2页,当前为第1页。 微电影实验报告全文共2页,当前为第2页。
前提格式使用方式第四章 引用类型用法总结4.1 class作为成员变量4.2 interface作为成员变量4.3 interface作为方法参数和返回值类型 第一章 final关键字 1.1 概述 学习了继承后,我们知道,子类可以在父类的基础上...
null 只是-种特殊的值使用 Null-Safe 方法null 判断 关于思维导图 Java.IO Java.lang Java.math Java.net Java 基础核心总结 V2.0 IO 传统的 BIO BIO NIO 和 AIO 的区别什么是流 流的分类 节点流和处理流 Java ...
1.4 小结 第2章 Bug、规范和实现方案 2.1 bug的概念 2.2 一体性规范 2.2.1 C++ 2.2.2 Python 2.2.3 ML 2.2.4 Pascal 2.3 规范的好处 2.4 实现方案与规范的差异 2.5 利用素材建立经济有效的规范 2.5.1 ...