`
yahaitt
  • 浏览: 756496 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

final应用说明

 
阅读更多

1、final用在类上表示该类不能被继承

2、final用在方法上表示该方法不能被重写(override)

3、final用在变量上表示该变量一旦被赋值后它的值将不能被改变

 

对于final类型的成员变量的初始化方式

1、声明变量时直接赋值

2、在构造方法中完成赋值

3、对于static的final类型的成员变量,只能通过在变量声明时直接赋值,不能通过在构造方法中完成赋值,因为static的变量是优先于构造方法执行的,而static的final类型的成员变量在声明时有点特殊:不会被设置成默认的值(如int a;本应该在声明时会自动设置成默认的值"0")

4、对于final类型的引用变量来说,所谓的不能改变指的是该引用不能被改变,而不是该引用的内容不能被改变

在构造方法中完成赋值的注意点:

如果一个类有多个构造方法,那么必须在每个构造方法中对final类型的成员变量赋值,否则将通不过编译

java 代码
  1. package com.test;   
  2.   
  3. public class FinalTest {   
  4.        
  5.     private final int a;   
  6.     private String name;   
  7.        
  8.     public FinalTest()   
  9.     {   
  10.         //如果final成员变量未在声明时直接赋值,那么每个构造方法里必须要对它进行赋值,否则将通不过编译   
  11.         a = 3;   
  12.     }   
  13.        
  14.     public FinalTest(String name)   
  15.     {   
  16.         //如果final成员变量未在声明时直接赋值,那么每个构造方法里必须要对它进行赋值,否则将通不过编译   
  17.         a = 5;   
  18.         this.name = name;   
  19.     }   
  20.        
  21.     public static void main(String[] args){   
  22.         FinalTest ft = new FinalTest();   
  23.         FinalTest ft2 = new FinalTest("hello");   
  24.     }   
  25. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class FinalTest {   
  4.        
  5.     private static final int a = 3;   
  6.     //private final int a;   
  7.     private String name;   
  8.        
  9.     public FinalTest()   
  10.     {   
  11.         //如果final成员变量未在声明时直接赋值,那么每个构造方法里必须要对它进行赋值,否则将通不过编译   
  12.         //a = 3;   
  13.     }   
  14.        
  15.     public FinalTest(String name)   
  16.     {   
  17.         //如果final成员变量未在声明时直接赋值,那么每个构造方法里必须要对它进行赋值,否则将通不过编译   
  18.         //a = 5;   
  19.         this.name = name;   
  20.     }   
  21.        
  22.     public static void main(String[] args){   
  23.         FinalTest ft = new FinalTest();   
  24.         FinalTest ft2 = new FinalTest("hello");   
  25.     }   
  26. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class FinalTest {   
  4.        
  5.     private static final StringBuffer s = new StringBuffer();   
  6.     //private static final int a = 3;   
  7.     //private final int a;   
  8.     private String name;   
  9.        
  10.     public FinalTest()   
  11.     {   
  12.         //如果final成员变量未在声明时直接赋值,那么每个构造方法里必须要对它进行赋值,否则将通不过编译   
  13.         //a = 3;   
  14.     }   
  15.        
  16.     public FinalTest(String name)   
  17.     {   
  18.         //如果final成员变量未在声明时直接赋值,那么每个构造方法里必须要对它进行赋值,否则将通不过编译   
  19.         //a = 5;   
  20.         this.name = name;   
  21.     }   
  22.        
  23.     public static void main(String[] args){   
  24.         //此时可以通过编译,因为改变的只是引用内容,而不是引用的内存地址,但是如果这里的代码是 s = new StringBuffer();就通不过编译了,因为如果这样的话,s指向了新的引用地址,这是final所不允许的   
  25.         s.append("hello");   
  26. //      FinalTest ft = new FinalTest();   
  27. //      FinalTest ft2 = new FinalTest("hello");   
  28.     }   
  29. }   
分享到:
评论

相关推荐

    FLOWSIC600操作说明中文版final.pdf

    此外还包含了关于为满足特殊应用而进行的系统能力、选项和配置方面的优化 的详细描述。 本手册覆盖了那些满足特定技术数据的标准应用。额外的信息以及针对特殊应 用的技术支持可以从 SICKMAIHAK 的代理处获得。...

    FinalData3.0汉化版

    这里可以使用文件恢复软件Finaldata(此软件可以通过网络下载获取)举例说明恢复文件的方法。 (1)打开Finaldata应用程序,单击【文件】→【打开】,弹出【选择驱动器】对话框。 (2)在【逻辑驱动器】中选择文件是...

    finaldata3.0汉化版

    这里可以使用文件恢复软件Finaldata(此软件可以通过网络下载获取)举例说明恢复文件的方法。 (1)打开Finaldata应用程序,单击【文件】→【打开】,弹出【选择驱动器】对话框。 (2)在【逻辑驱动器】中选择文件...

    yamdb_final:yamdb_final

    入门这些说明指导您完成部署和预配置应用程序以在Docker中运行。先决条件要安装该应用程序,您需要安装Docker以及bash shell和PostgreSql数据库。正在安装在应用程序目录中,创建一个.env文件,设置用于连接数据库的...

    final_parse:Mechanic Finder网络应用程序

    机械查找器应用程序使独立力学更容易找到的应用这是使用Angular,jQuery,Sass,Bootstrap,Gulp,Bower构建的安装说明git clone [link] cd final_parse npm install bower install gulp watch这将在浏览器的端口...

    智慧城市数据应用创业大赛-城市交通流量时空预测项目python源码+项目实现过程详细文档.zip

    智慧城市数据应用创业大赛-城市交通流量时空预测项目python源码+项目实现过程详细文档.zip 【资源介绍】 预处理说明 ​ 原始数据没有流量的信息,通过预处理函数来统计卡口每5min内的车流量。 为了能够顺利调用...

    final-captions-pro:一个MacOS应用程序,可在Final Cut Pro X中自动生成可自定义的开放式字幕

    最终字幕专业版 一个MacOS应用程序,可在Final Cut Pro X中自动生成可自定义的开放字幕。

    搜索动力2010(asp+access) v4.Final (纪念版)

    搜索动力2010(asp+access) Ver 4.Final (纪念版): 1. 更新云端默认搜索引擎 2. 更新云端搜索引擎链接 3. 更新十二月节日温馨提示 文字说明: 在线搜盟云搜索全天候关注各搜索引擎动态, 在第一时间修复死链; ...

    Serv-U FTP Server 6.3.0.1 final

    Serv-U FTP Server 6.3.0.1 final <br/>Serv-U 是一种被广泛运用的FTP服务器端软件,支持 9x/ME/ NT/2K 等全Windows系列。它设置简单,功能强大,性能稳定。 FTP 服务器用户通过它用 FTP协议能在 ...

    dsa-final-project

    Restaurapp 是在 Castelldefels 电信与航空航天工程学院 (EETAC) 的“服务和应用设计”课程中开发的教育项目。 Restaurapp 是一个非常简单的服务,具有使用 Bootstrap 和 jQuery 开发的 Web 前端,以及一个 android ...

    final_app:Cascadia CC Campus Direction Android 应用程序(2014 年冬季)

    校园路线卡斯卡迪亚校园的路线应用程序我们的应用程序说明:对于我们的应用程序,当有人想找到前往卡斯卡迪亚特定房间的路线时,他们进入目标房间,然后扫描附近的二维码,该二维码会通知用户当前位置的应用程序....

    final_acc-react

    可在找到有关Node.js和Node Package Manager的安装说明。 安装API密钥后,您可以通过从终端中应用程序的根目录中运行以下命令之一来安装应用程序的依赖项: ### Linux/Mac ### npm install && npm start ### ...

    FINAL_YEAR_PROJECT:在线预订车辆服务的Web应用程序

    本沙服务 ... 安装和设置说明 克隆该存储库。 您将需要在计算机上全局安装node和npm 。 安装: npm install 要运行测试套件: npm test 要启动服务器: npm start 要访问应用程序: localhos

    android手机音乐播放器实训报告final.doc

    课程负责人签名: 年 月 日 目录 第一章 引言 6 1.1 目的及范围 6 第二章 需求说明 7 2.1 系统参与者 7 2.2 系统用例 7 2.3领域模型分析 8 第三章 架构设计说明 11 3.1 逻辑视图 11 3.2 进程视图 11 3.3 开发视图 ...

    基于python实现的城市交通流量时空预测-山东省数据应用创新创业大赛+源代码+文档说明+数据+模型

    预处理说明 ​ 原始数据没有流量的信息,通过预处理函数来统计卡口每5min内的车流量。 为了能够顺利调用预处理函数,需要统一data的目录结构(需手动创建)。项目的data目录未上传,结构如下;其中first是初赛数据...

    Final_App

    Final_App原始应用程序设计项目-自述模板目录概述描述此应用程序是个人理财应用程序,可帮助用户预算其收入。 我还将拥有一个stcok市场监视列表功能,有兴趣进行投资的用户可以使用该功能。应用评估[通过以下属性...

    系统安装引导(WinNTSetup) V3.7.5 Final 官方正式版.zip

    WinNTSetup说明: WinNTSetup 是非常强大的系统安装器,它与nt6 hdd installer相比,则具有更加完善友好用户界面。支持在Windows及PE环境下运行,并且允许用户在系统安装前即对系统进行性能优化、集成驱动程序、...

    TCP示例程序(聊天,无协议,final)

    实现TCP的连接建立、文件传送和连接释放的三个阶段,并将任一文件传送到服务器端,编程完成该应用程序的设计(编程语言不限)。实验报告要求有实现过程的流程图,对主要的函数及其参数给予说明,要有实现过程的主要...

    drools-distribution-7.10.0.Final

    Welcome to Drools ================= Third party jars ---------------- Following third party jars are ...并遵循以下说明: https://github.com/kiegroup/droolsjbpm-build-bootstrap/blob/master/README.md

Global site tag (gtag.js) - Google Analytics