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

    一、种类

    1、类

    2、方法

    3、局部变量

    4、成员变量

    二、类

    1、作用

    将该类变成最终类,不能被继承(太监类)

    注意:该类的方法不能被overrider

    2、语法

    修饰符 final class 类名{}

    3、例子

    1 package cn.wt.day11;
    2 
    3 public final class Person {
    4 
    5     public void show(){
    6         System.out.println("我是一个人");
    7     }
    8 }
    Person.java
    1 package cn.wt.day11;
    2 // 继承报错
    3 public class Student extends Person {
    4 }
    Student.java

    三、方法

    1、作用

    将该方法变成最终方法,不可以被overrider

    2、语法

    修饰符 final 返回值类型 方法名称(参数列表){
       方法体  
    }

    3、注意

    final和abstract不能共存。原因:final不能overrider,而abstract一定要overrider

    4、例子

    1 package cn.wt.day11;
    2 
    3 public class Person {
    4 
    5     public final void show(){
    6         System.out.println("我是一个人");
    7     }
    8 }
    Person.java
    1 package cn.wt.day11;
    2 
    3 public class Student extends Person {
    4     // override 报错
    5     @Override
    6     public void show() {
    7 
    8     }
    9 }
    Student.java

    四、局部变量

    1、分类

    基本数据类型:变量的值不变

    引用数据类型:变量的储存地址不变

    2、语法

    final 基本数据类型 变量名 = 值;
    final 引用数据类型 对象名称 = new 引用数据类型()

    3、例子

    基本数据类型

    package cn.wt.day11;
    
    public class Demon {
        public static void main(String[] args) {
            final int num = 10;
            // 基本数据类型赋值报错
            num = 30;
        }
    }

    引用数据类型

    package cn.wt.day11;
    
    public class Demon {
        public static void main(String[] args) {
            final Person person = new Person("黄蓉");
            System.out.println(person);
            System.out.println(person.getName());
            person.setName("郭靖");
            System.out.println(person);
            System.out.println(person.getName());
        }
    }

    五、成员变量

    1、注意

    成员变量一定要赋值,原因:成员变量有默认值,若不复制的话,使用final后,变量的值就无法改变,那么这个变量就没原因

    2、语法

    修饰词 final 变量名称 = 值;

    注意:也可以通过构造方法赋值,但不常用

  • 相关阅读:
    UIStoryBoard 中修改控件borderColor
    iOS自定义AlertView 与 ActionSheet 遮罩提示+弹出动画
    iOS开发 UIWebView+JavaScript 交互总结
    【注入攻击】SQL注入(不完整总结)
    [内存溢出]栈溢出基础版
    [Windows驱动开发]之内存管理
    [找工作]程序员面试宝典【笔记】(part 1)
    [Windows安装]安装程序无法创建新的系统分区,也无法定位现有系统分区
    M1卡分析
    [逆向/壳]脱壳方法
  • 原文地址:https://www.cnblogs.com/wt7018/p/12232454.html
Copyright © 2011-2022 走看看