一、final类

描述:

  • 'final'修饰的类不能被继承,没有子类。
  • 例如,我们是无法写一个类去继承String类,然后对String类型扩展的,因为API中已经将String类定义为'final'的了。

示例:

public final class Person {
}
/*
以下代码编译报错
class Student extends Person{
}
*/

二、final方法

描述:

  • 'final'修饰的方法可以被子类继承,但是不能被子类重写
  • 例如,每个类都是Object类的子类,继承了Object中的众多方法,在子类中可以重写toString方法、equals方法等,但是不能重写getClass方法、wait方法等,因为这些方法都是使用fianl修饰的。

示例:

public class Person {
public final void print() {
}
} class Student extends Person {
/*
以下代码编译报错
public void print() {
}
*/
}

三、常量

描述:

  • 'final'修饰的变量表示常量只能被赋值一次,赋值后值不能再被改变。

注意:

  1. 修饰形式参数时,因为在调用方法传参的时候会赋值,所以不能在方法体里再赋值。

    public class Person {
    public void print(final int num) {
    /*
    以下代码编译报错
    num = 1;
    */
    }
    }
  2. 修饰成员变量时,可以选择在声明的同时赋值,或在匿名代码块中赋值 ,或在构造器中赋值(类中出现的所有构造器都要写)。

    public class Person {
    Person() {
    num = 1;
    } Person(int num) {
    this.num = num;
    } private final int num;
    }
  3. 修饰静态变量时,可以选择在声明的同时赋值,或在静态代码块中赋值 。

    public class Person {
    static {
    INT_NUM = 1;
    }
    /* 静态常量命名规范为:全部字母大写,单词用下划线分隔。 */
    private static final int INT_NUM;
    }
  4. 修饰引用变量时,不能改变引用保存的对象内存地址,但可以改变对象的属性值。

    public class Person {
    
        private int age;
    
        public int getAge() {
    return age;
    } public void setAge(int age) {
    this.age = age;
    } public static void main(String[] args) {
    final Person person = new Person();
    person.setAge(1);
    person.setAge(2);
    person.setAge(3);
    /*
    以下代码编译报错
    person = new Person();
    */
    }
    }

最新文章

  1. [每日电路图] 9、介绍一种低价简单的4.2V锂电池充电及稳压(LDO)电路——RT9193,SD8017
  2. maven创建的Web工程,Eclipse 内 tomcat容器不识别的处理方法
  3. Matlab(2) -- Find()函数
  4. Jsp与servlet的区别
  5. 呵呵!手把手带你在 IIS 上运行 Python(转)
  6. weblogic启动报错
  7. activiti自定义流程之自定义表单(二):创建表单
  8. PHP扩展迁移为兼容PHP7记录
  9. ASP.NET MVC 4 SimpleMembership Provider (1)
  10. 查看哪些ip破解你ssh密码以及次数
  11. VC MFC 屏蔽ESC和ENTER键关闭对话框
  12. VMwareTools安装失败提示找不到C headers和gcc目录
  13. Django Form表单学习总结
  14. 有引用外部jar包时(J2SE)生成jar文件
  15. Elixir东游记/上:intro/1
  16. Centos6.5搭建grok匹配测试网站
  17. mybtis逆向工程实战教程--条件查询
  18. ssh工具自动化命令
  19. php 加密 解密 密码传输
  20. tomcat 启动报错 Invalid character found in method name. HTTP method names must be tokens

热门文章

  1. Flink-v1.12官方网站翻译-P017-Execution Mode (Batch/Streaming)
  2. I - Swap(交换行列是对角线都为1)
  3. Educational Codeforces Round 97 (Rated for Div. 2)【ABCD】
  4. Codeforces Global Round 7 D1. Prefix-Suffix Palindrome (Easy version)(字符串)
  5. 博弈论入门——Nim游戏引入
  6. Codeforces 102394I Interesting Permutation 思维
  7. AtCoder Beginner Contest 170 D - Not Divisible (数学)
  8. 2019-2020 ACM-ICPC Brazil Subregional Programming Contest Problem A Artwork (并查集)
  9. Pdf和Office相关归集
  10. CF1475-C. Ball in Berland