zoukankan      html  css  js  c++  java
  • Java------ final 关键字

    一、什么是 final 关键字

                  final 字面意思是:不可变的,不可更改的;

                  所以从字面代入进 java 中可以得到一个结论:final 关键字在进行修饰 java 程序时也不会变成不可更改的状态,但是值得注意的是,final 关键字在修饰不同的 java 程序会得到什么样的结果呢?

    二、final 关键字的用法 

            1、fianl 关键字是否可以修饰基本数据类型,如果可以,那么被修饰的变量有哪些改变?

                  可以,被 fianl 关键字所修饰的基本数据类型会变为不可更改状态,无法重新赋值,所以这里就引申出了一个重要的点: 在进行定义一个被 final 修饰的变量时要对其直接手动初始化赋值,如果没有这样操作,其后果是系统自动初始化,定义的变量变为一个垃圾值;

     1 public class Test33 {
     2     
     3     final int y = 1; // 手动初始化赋值,赋值后的变量无法更改
     4     
     5     public static void main(String[] args) {
     6 
     7             final int x = 2;
     8             System.out.println(x);
     9             // x = 3;  // 出现错误,x 值不允许重新赋值
    10     }
    11 }    
    View Code

             2、fianl 关键字是否可以修饰普通方法和构造方法,如果可以,那么被修饰的方法有哪些改变?

                   final 关键字只能修饰普通方法,无法修饰构造方法,但可以修饰构造方法中的变量。其内容可以重新赋值;而构造方法中被修饰的变量是无法被更改的。

     1 public class Test33 {
     2     
     3     public static void main(String[] args) {
     4         
     5         Test33 t = new Test33(1);
     6         t.fun();  // 被 final 修饰过的普通方法,其内部的值可以被改变(string 和 包装类除外)
     7     }
     8     
     9     final public void fun () {
    10         int i = 1;
    11         // System.out.println(i);
    12         i = 2;
    13         System.out.println(i);
    14     }
    15     public Test33(final int a){
    16         int i = a;
    17         // a = 3;  错误,无法重新再赋值,final 可以修饰构造方法内的变量,且修饰后无法更改
    18         System.out.println(i);
    19     }
    20 }
    View Code

             3、final 关键字与 static 关键字的融合:

                   final 与 static 两者同时修饰一个基本数据类型变量,其结果是这个变量变成常量,而且这个常量的标识符一定要大写且两个单词之间要加_;

            格式:final static int Max_i = 1;

             4、final 关键字是否可以修饰引用数据类型,如果可以,那么被修饰的引用数据类型会发生什么改变?

                   final 可以修饰引用数据类型,但是修饰后的引用数据类型其地址无法在更改,但其内容可以重新赋值。

             5、final 关键字是否可以修饰类,如果可以,那么被修饰的类会发生什么改变?

                   可以,被 final 修饰的类可以继承其他类,但其本身无法被其他类继承,也就是说被 final 修饰的类只能作父类,无法作子类

  • 相关阅读:
    c#设计模式工厂模式
    海量数据,SQL查询优化
    正则判断字符串是否为数字
    NSString的用法
    HTML常用标签及属性图
    ADO的东西还是很多啊!
    MVC3中的tempdata,viewdata,viewbag总结
    sql 查询,删除重复的记录
    MVC3 Razor语法
    Winform TreeView 节点CheckBox选中,取消
  • 原文地址:https://www.cnblogs.com/evething-begins-with-choice/p/12796959.html
Copyright © 2011-2022 走看看