美文网首页
Java中final

Java中final

作者: WilsonMing | 来源:发表于2016-04-17 17:02 被阅读123次

谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。

  • 在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。
  1. 修饰类
    • 当用final修饰一个类时,表明这个类不能被继承。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。


      示例代码
  2. 修饰方法
  • 摘自《Java编程思想》第四版第143页:

"使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。"

因此,如果想明确禁止指定方法在子类中不被重写,就将该方法设置为final(类的private方法会隐式地被指定为final方法)

  1. 修饰变量:对于修饰为final的变量,它就不能再赋值。
    • 如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;


      示例代码

      上面的一段代码中,对变量i和obj的重新赋值都报错了。

    • 如果是引用类型的变量,则在对其初始化之后便不能在赋值,但该对象行为不被final影响,也就是对象里面
public class Year {
    private int year;
    private String name;

    public Year(int year, String name) {
        this.year = year;
        this.name = name;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Year{" +
                "year=" + year +
                ", name='" + name + '\'' +
                '}';
    }

    public static void main(String[] args) {
        final Year year=new Year(1,"2");
        System.out.println(year.toString());
        year.setYear(3);
        System.out.println(year.toString());
    }

}

输出

Year{year=1, name='2'}
Year{year=3, name='2'}

相关文章

  • java - final 关键字

    java - final 关键字 java - final 关键字 在 java 中,final 关键字可以修饰类...

  • 2018-11-14号相关学习资料

    java中final关键字的作用深入理解Java中的final关键字java中的final如何使用和理解PPT和1...

  • Java中的final修饰符

    Java中的final修饰符 Java中final修饰符既可以修饰变量、方法,也可以修饰类。用final修饰的变量...

  • Java中final关键字

    Java中的final关键字非常重要,它可以应用于类,方法和变量; 什么是final? final是java中的一...

  • 列举几个Java包中的final类

    final为Java中常用的关键字,被final修饰的类不可被继承 下面列举几个Java包中的final类(): ...

  • final、abstract以及接口

    final关键字 final 关键字可以用来修饰类,属性和方法。 final修饰类 Java 中 final 修饰...

  • Java中final

    谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的...

  • JAVA中final

    作用于:属性,方法,类 A属性: 1)一个 永不改变的编译时常量 2)一个在运行时被初始化的值,而不希望他被改变 ...

  • Java中的static和final

    java中的static和final 此篇文章是记录我在学习Java中static和final关键字的笔记。 st...

  • 看完这篇 final、finally 和 finalize 和面

    前言 final 是 Java 中的关键字,它也是 Java 中很重要的一个关键字,final 修饰的类、方法、变...

网友评论

      本文标题:Java中final

      本文链接:https://www.haomeiwen.com/subject/qxbolttx.html