码迷,mamicode.com
首页 > 编程语言 > 详细

Java——final关键字

时间:2019-11-09 11:36:31      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:中国   public   局部变量   vat   stat   不能被继承   img   ota   安全性   

3.3 final关键字

3.3.1 final的定义

在Java中声明类、属性和方法时,可使用关键字final来修饰,表示“最终”。

final标记的类不能被继承。提高安全性,提高程序的可读性。

String类、System类、StringBuffer类

final标记的方法不能被子类重写。

Object类中的getClass()。

final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次。

final标记的成员变量不能使用默认初始化,必须在声明的同时或在每个构造方法中或代码块中显式赋值,然后才能使用。final double PI=3.14;

变量用static final修饰:全局常量。比如:Math 类的PI。

④要与finally finalize()区分开。

3.3.2 final基础语法

final修饰类

final class A{

}

class B extends A{     //错误,不能被继承。

}

中国古代,什么人不能有后代,就可以被final声明,称为太监类

final修饰方法

class A{

       public final void print(){

                System.out.println(“A”);

       }

}

class B extends A{    

        public void print(){   //错误,不能被重写。

                  System.out.println(“尚硅谷”);

         }

}

final修饰变量——常量

class  A{

        private final String INFO = “atguigu”;  //声明常量

        public void print(){

                  //INFO = “尚硅谷”;

         }

}

常量名要大写,内容不可修改。——如同古代皇帝的圣旨。

 

final修饰的成员变量:一般和static联用。

class MyMath{

       //常量.java规范中要求所有的常量“大写”

       //常量:值不可再改变的变量.

       public static final double PI = 3.14;

}

⑤关键字final应用举例:

public final class Test{

              public static int totalNumber = 5 ;

              public final int ID;

              public Test(){

                     ID = ++totalNumber;  //可在构造方法中给final变量赋值

              }

            public static void main(String[] args) {

                     Test t = new Test();

                     System.out.println(t.ID);             

                     final int I = 10;

                     final int J;

                     J = 20;

                     J = 30;  //非法

                  }

}

技术图片

 

 

⑥深入final

final修饰的引用类型,该引用不可再重新指向其他的java对象。但是fianl修饰的引用,该引用指向的对象的属性是可以修改的。

public class Test02{

       public static void main(String[] args){

              final Customer c = new Customer("JACK",15);

              //c是final的,无法重新赋值。

              //c = new Customer("LUCY",20);//Error

              c.name = "李四";

              c.age = 25;

              System.out.println(c.name);

              System.out.println(c.age);

       }

}

class Customer{

       String name;

       int age;

       Customer(String name,int age){

              this.name = name;

              this.age = age;

       }

}

Java——final关键字

标签:中国   public   局部变量   vat   stat   不能被继承   img   ota   安全性   

原文地址:https://www.cnblogs.com/superjishere/p/11824440.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!