A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© James_01 中级黑马   /  2016-6-24 11:03  /  464 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。
在使用匿名内部类的时候可能会经常用到final关键字
Java中的String类就是一个final类

/*final 修饰 类*/
当用final修饰一个类时,表明这个类不能被继承
final类中的所有成员方法都会被隐式地指定为final方法
在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用
来继承或者出于安全的考虑,尽量不要将类设计为final类

/*final 修饰 方法 */
如果不想让本类的方法被覆盖,则可将方法定义为 final

/*final 修饰 变量*/
final 用的最多的还是用来修饰变量,
final 修饰的变量有两种:
1、修饰基本数据类型的变量,则变量的数值一旦被初始化后便不能更改,
可以当成一个常量来使用
2、修饰引用数据类型的变量,则在对其初始化后便不能再让其指向另一个对象
//举例:
class Man {
        private final int i = 0;        // i 相当于常量
       
        public Man() {
                //! i = 1;        //i被final修饰,不能再被赋值

                final Object obj = new Object();
                //! obj = new Object();                //obj被final修饰,不能再改变引用的指向
        }
}

/*
总结:
final修饰 类的成员变量时,必须在定义是或构造器中进行初始化赋值
final修饰的引用变量,虽然不能再指向其他对象,但是,它指向的对象的
内容是可变的

匿名内部类(是局部内部类)只能访问其所在方法中的final变量,因为:
匿名内部类不会随着定义的方法的弹栈而销毁,将局部变量声明为final,就会在
内部类中得到一份变量的拷贝,这份拷贝不会再变化。
*/

1 个回复

倒序浏览
重要的知识点自己总结以后会理解更透彻
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马