博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
final关键字
阅读量:5111 次
发布时间:2019-06-13

本文共 1590 字,大约阅读时间需要 5 分钟。

final可以用来修饰变量,可以用来修饰类,可以修饰方法

1、final 变量的值不能被改变

  final的成员变量

  final的局部变量

2、final的 方法不能够被重写

3、final的类不能被继承

 

下面 看一下这个程序进行学习:

一、

public class TestFinal {    public static void main(String[] args) {        T t = new T();        t.i = 9;  //在这里是错误的,不可以改变i的值,因为是i是final的    }}final class T {    final int i = 8; }

 

  在上面的代码中 我先定义了一个变量i,是final的,在main函数里 将T的对象进行实例化,t.i=9 进行改变i的值,这是不可以的。

二、

 

在上述代码中:

public class TestFinal {    public static void main(String[] args) {        T t = new T();            }}final class T {    final int i = 8;     public void m(final int j) {        j = 9;    }}
我定义了一个方法m, 形参是final的,意思就是说,当传进这个方法m中的j不能够在m方法里面进行改变 ,所以上面的书写也是错误的,这个有什么用途呢,假如说将上面的几行代码写成这样: pulic void m (final Cat c){
// } 这个将final int i改成了 final Cat c,说明在这个m方法中,Cat c 不能将这个引用指向其他的猫 三、
public class TestFinal {    public static void main(String[] args) {        T t = new T();            }} class T {    final int i = 8;     public final void m() {        //j = 9;    }} class TT extends T {    /*     * 这里TT类继承T类,不能重写m方法,因为在父类中m方法     * 被修饰成final的     */    public void m() {            }

 

这段代码进行证明了final的 方法是不能够被重写的

四、

public class TestFinal {    public static void main(String[] args) {        T t = new T();            }}final class T {    final int i = 8;     public final void m() {        //j = 9;    }} class TT extends T {    /*     * 这里TT类不能够继承T类,因为final修饰的类不能被继承     */    public void m() {            }     }
这里将T类被修饰成final,下面TT子类是不能被继承T类的,因为,被final修饰的类不能被继承的 总的来说final的语法还是比较简单的。
posted on
2018-12-27 10:44  阅读(
...) 评论(
...) 收藏

转载于:https://www.cnblogs.com/white-the-Alan/p/10183672.html

你可能感兴趣的文章
算法和数据结构(三)
查看>>
Ubuntu下的eclipse安装subclipse遇到没有javahl的问题...(2天解决了)
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>
Repeater + Resources 列表 [原创][分享]
查看>>
WCF揭秘——使用AJAX+WCF服务进行页面开发
查看>>
【题解】青蛙的约会
查看>>
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
【转】 FPGA设计的四种常用思想与技巧
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
新手算法学习之路----二叉树(在一个二叉查找树中插入一个节点)
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>