华恩JAVA班第20天

来源:互联网 发布:中国网络声乐艺术团 编辑:程序博客网 时间:2024/06/05 11:09

华恩JAVA班第20天

 根据上下文环境,java的关键字final也存在着细微的区别,但通常指的是“这是无法改变的。”不想改变的理由由两种:一种是效率,另一种是设计。由于两个原因相差很远,所以关键子final可能被吴用。

  接下来介绍一下使用到fianl的三中情况:数据,方法,类。

 

final(最终)是一个修饰符
1.final可以修饰类,函数,变量(成员变量,局部变量)
2.被final修饰后的类不可以被其他类继承
3.被final修饰后的函数不可以被重写
4.被final修饰后的变量不允许被再次赋值,final在对变量进行
修饰时一定要赋值,被final修饰的变量称为常量

注意:常量的命名规范:字母全部大写,如果这个名字是由多个单词组成,
在单词之间用 _ 隔开

  

   final数据

   许多编程语言都有某种方法,来向编译器告知一块数据是恒定不变的。有时数据的恒定不变是很有用的,例如:

1,一个编译时恒定不变的常量

2,一个在运行时初始化,而你不希望它被改变。

  对于编译期常量的这种情况,编译器可以将该常量值代入任何可能用到它的计算式中,也就是说,可以在编译期就执行计算式,这减轻了一些运行时的负担。在java中,这类常量必须是基本类型,并且以final表示。在对这个常量定义时,必须进行赋值。

  一个即是static又是fianl的域只占一段不能改变的存储空间。

  当final应用于对象引用时,而不是基本类型时,其含义有些让人疑惑。对基本类型使用fianl不能改变的是他的数值。而对于对象引用,不能改变的是他的引用,而对象本身是可以修改的。一旦一个final引用被初始化指向一个对象,这个引用将不能在指向其他对象。java并未提供对任何对象恒定不变的支持。这一限制也通用适用于数组,它也是对象。

 根据上下文环境,java的关键字final也存在着细微的区别,但通常指的是“这是无法改变的。”不想改变的理由由两种:一种是效率,另一种是设计。由于两个原因相差很远,所以关键子final可能被误用。

  接下来介绍一下使用到fianl的三中情况:数据,方法,类。

  

   final数据

   许多编程语言都有某种方法,来向编译器告知一块数据是恒定不变的。有时数据的恒定不变是很有用的,例如:

1,一个编译时恒定不变的常量

2,一个在运行时初始化,而你不希望它被改变。

  对于编译期常量的这种情况,编译器可以将该常量值代入任何可能用到它的计算式中,也就是说,可以在编译期就执行计算式,这减轻了一些运行时的负担。在java中,这类常量必须是基本类型,并且以final表示。在对这个常量定义时,必须进行赋值。

  一个即是static又是fianl的域只占一段不能改变的存储空间。

  当final应用于对象引用时,而不是基本类型时,其含义有些让人疑惑。对基本类型使用fianl不能改变的是他的数值。而对于对象引用,不能改变的是他的引用,而对象本身是可以修改的。一旦一个final引用被初始化指向一个对象,这个引用将不能在指向其他对象。java并未提供对任何对象恒定不变的支持。这一限制也通用适用于数组,它也是对象。

 

public class B3 { 
    staticRandom r =new Random(12); 
    final intint1= r.nextInt(100);//产生0-99的随机数 
    static finalint INT_2= r.nextInt(100); 
     
 
    publicstatic void main(String[] args) { 
       B3 b1=new B3(); 
       System.out.println("int1:"+b1.int1+"   INT_2:"+b1.INT_2); 
       B3 b2=new B3(); 
       //b2.INT_2=100;//错误的赋值 
       System.out.println("int1:"+b2.int1+"   INT_2:"+b2.INT_2); 
 
   
}

原创粉丝点击