zoukankan      html  css  js  c++  java
  • final关键字的使用

    public class FinalDome extends Final{
    private final double PI = 3.1415926;//常量,不可改变
    private int num = 20;

    public void test(){
    /*
    * 用final修饰引用类型的变量,那么该变量只能始终引用这一个对象。
    * 但是可以改变对象的内容。
    */
    final FinalDome fDome = new FinalDome();
    fDome.num = 100;
    FinalDome fDome2 = new FinalDome();
    //fDome = fDome2;报错
    fDome2 = fDome;
    }

    /**
    * @param args
    */
    /*
    * 内部类的实例化(new InClass();)存放在堆内存,系统的回收机制会不定时的查看
    * ,如长时间没有引用指向他,就回收。
    * 而方法的形参 存放在栈内存,当方法运行结束就回收。
    * 为了延长形参(局部变量)的生命周期,即用final修饰
    * 使得内部类对象的调用参数存在,不报错
    *
    * */
    //定义一个方法,新的JDK8好像不需要用final修饰,内部已经实现这个功能
    public void learning(final String str){
    //定义一个内部类
    class InClass{
    //内部类的构造函数
    public InClass(){
    System.out.println("内部类的final变量:"+str);
    }
    }
    InClass ic = new InClass();//在方法内实话化内部类
    }
    //父类的final修饰的方法不能被重写,但可以直接通过对象调用
    //public final void sleep(){}


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    FinalDome fd = new FinalDome();
    fd.learning("TheStar");
    fd.sleep();//父类的方法

    }

    }
    class Final{

    public final void sleep(){
    System.out.println("父类的final修饰的方法");
    }
    }

  • 相关阅读:
    Brunch with a Friend 与朋友共进午餐
    Linux使用tcpdump抓取网络数据包示例
    Linux LVM逻辑卷配置过程详解
    Linux不停往外发包
    jumpserver遇到的坑
    Python3.5 使用Sqlite3
    git rebase小计(转)
    pip3 更改安装源
    jquery ajax(3).post
    jquery ajax (2)实例 .GET
  • 原文地址:https://www.cnblogs.com/nn369/p/7403263.html
Copyright © 2011-2022 走看看