zoukankan      html  css  js  c++  java
  • 对java中final关键字的理解

    在java语言中,final关键字指的是“它是无法改变的”,使用到final关键字有三种情况:数据、方法和类。

    一个既是static又是final的字段只占据一段不能改变的存储空间。

    用final关键字定义的数据:

    1)如果是基本类型的数据,那么final使数值恒定不变;(八种基本类型:boolean,char,byte,short,int,long,float,double)

    2)如果是对象的引用,那么final使对象的引用恒定不变,也就是说一旦指向了某个对象的引用,就无法再把它指向其它对象了;但是对象本身是可以修改的。

    class Foo {
    private String fooName;

    public Foo() {
    // TODO Auto-generated constructor stub
    }

    public String getFooName() {
    return fooName;
    }

    public void setFooName(String fooName) {
    this.fooName = fooName;
    }
    }

    public class TestFoo
    {
    private final Foo foo;

    public TestFoo() {
    foo = new Foo();
    //默认设置fooname
    foo.setFooName("default Foo Name");
    }

    public Foo getFoo() {
    return foo;
    }
    //error,定义为final对象不能被修改
    /*
    public void setFoo(Foo f) {
    this.foo = f;
    }
    */

    public static void main(String[] args) {
    TestFoo tf = new TestFoo();
    Foo f = tf.getFoo();
    System.out.println(f.getFooName());//输出default Foo Name
    f.setFooName("test1");
    System.out.println(f.getFooName());//输出test1
    }
    }

    用final关键字修饰方法:

    1)把方法锁定,以防任何继承类修改(private声明的方法隐式的指定为final,private修饰的方法是无法继承的,可以在private方法上加final进行修饰,但没有任何额外的意义,反而是画蛇添足);

    2)提高效率。如果将一个方法指定为final,那么编译器将针对该方法的所有调用转为内嵌调用。

    用final关键字修饰类:

    当将某个类整体定义为final时,就表明了这个类不会被其它类继承,而且也不允许别人这样做。



  • 相关阅读:
    php mysql增删查改
    php文件上传代码解析
    php验证码
    html加javascript和canvas类似超级玛丽游戏
    javascript图片轮播
    php分页
    《Hadoop权威指南》笔记 第二章 Hadoop Streaming
    《Hadoop权威指南》笔记 第一章&第二章 MapReduce初探
    《深入理解Java虚拟机》笔记 第七章 虚拟机加载机制及双亲委派模型
    《深入理解Java虚拟机》笔记 第三章 内存分配与回收策略
  • 原文地址:https://www.cnblogs.com/linxyz/p/2396746.html
Copyright © 2011-2022 走看看