• java之final关键字


    一、final关键字的功能概述

     final关键字可以用来修饰引用、方法和类。

     1、用来修饰一个引用

    1. 如果引用为基本数据类型,则该引用为常量,该值无法修改;

    2.  如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。

    3.  如果引用时类的成员变量,则必须当场赋值,否则编译会报错。

    例子:

     1 final class Person {
     2     String name ="zs";
     3     //3. 此处不赋值会报错
     4     //final int age;
     5     final int AGE = 10;  
     6 }
     7 public class Demo01 {
     8     public static void main(String[] args) {
     9         //1. 基本数组类型为常量,无法修改
    10         final int i = 9;
    11         //i = 10;
    12        
    13         //2. 地址不能修改,但是对象本身的属性可以修改
    14         Person p = new Person();
    15         p.name = "lisi";
    16         final int[] arr = {1,2,3,45};
    17         arr[3] = 999;
    18         //arr = new int[]{1,4,56,78};
    19     }
    20 }

    2.用来修饰一个方法

     当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。

     1 class Person {
     2     public final void say() {
     3         System.out.println("说....");
     4     }
     5     public void eat() {
     6         System.out.println("吃...");
     7     }
     8 }
     9 class Teacher extends Person {
    10     //1. final修饰的方法不能被重写,但此方法仍然被继承
    11     /*@Override
    12     public void say() {
    13         System.out.println("老师在一本正经的说...");
    14     }*/
    15     
    16     public void eat() {
    17         System.out.println("老师在大口大口的吃...");
    18     }
    19 }
    20 public class Demo02 {
    21     public static void main(String[] args) {
    22         Teacher t = new Teacher();
    23         t.say();
    24     }    
    25 }

    3.用来修饰类

     当用final修改类时,该类成为最终类,无法被继承。简称为“断子绝孙类”。

     比如常用的String类就是最终类。

     在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类

  • 相关阅读:
    Android UI 如何让TextView中的文字居中显示
    Android日志服务例子,将日志保存在文件中并每天产生一个日志文件
    Android 获取屏幕尺寸与密度
    Android 学习Tabhost
    Android与服务器端数据交互(http协议整合struts2+android)
    Android的计量单位px,in,mm,pt,dp,dip,sp
    Java struts2中StrutsPrepareAndExecuteFilter 异常
    Http Module 介绍
    Http 请求处理流程
    HttpRuntime2
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12542185.html
Copyright © 2020-2023  润新知