Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4461078
  • 博文数量: 1214
  • 博客积分: 13195
  • 博客等级: 上将
  • 技术积分: 9105
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-19 14:41
个人简介

C++,python,热爱算法和机器学习

文章分类

全部博文(1214)

文章存档

2021年(13)

2020年(49)

2019年(14)

2018年(27)

2017年(69)

2016年(100)

2015年(106)

2014年(240)

2013年(5)

2012年(193)

2011年(155)

2010年(93)

2009年(62)

2008年(51)

2007年(37)

分类: Java

2012-03-08 23:12:17

文章来源:%DE%C8%BD%A3%C6%AE%B3%BE/blog/item/1cd9f1268e0956fb8b139960.html

java 中引入了final 关键字,这个关键字在c/c++中没有,另外java中不再有const关键字,虽然const仍旧是java中的保留字,但是java并没有实现它1.final变量:

     final修饰变量时 有两层意思:

     1>:表示一个编译期间的常量(c++中用const来实现)

     2>:表示一个变量一旦初始化了,其值便不能改变了

      1、final变量(常量)

     final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。 
    一旦给final变量初值后,值就不能再改变了。 
         final修饰的是内部类型的时候,表示其值无法改变,但是当final修饰的是一个用户定义的类型的引用时,final 的意思略有不同,它表示该变量不能再引用别的对象,但是被引用的对象是可以改变的!另外可以有frank final变量(空白final),及定义该final变量的时候可以不给出初始值,但必须保证其值在使用之前初始化,但是,final空白在final关键字final的使用上提供了更大的灵活性,为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。另外也可以有static 的final变量,这个时候它占据一个无法修改的内存!另外不能有空白的static final 变量,在定义的时候必须给出其初值!对于final变量java解释器都不提供初值!

    2.final方法

       final方法的表示该方法在包含该方法的类被继承时候,该方法不能被覆盖,另外private方法也默认为final的.

      如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。 
      使用final方法的原因有二:
      第一、把方法锁定,防止任何继承类修改它的意义和实现。 
      第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。

    3.final 类

      如果final修饰一个类的时候,表示这个类不能被继承,final类中的变量可以选择是否为final变量,final类的成员方法没有机会被覆盖.但是其中的方法都默认为final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为final类。

  4、final参数 
当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。

阅读(781) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~