• Java学习笔记 -关键字final


    1.final 是Java语言中的一个关键字
    2.final表示最终的,不可变的
    3.final修饰的类无法被继承
    4.final修饰的方法无法被覆盖
    5.final修饰的变量: 只能赋一次值

    //final修饰类
    final class A{
    	
    }
    class B extends A{
    	
    }
    //final修饰方法
    class C{
    	public final void doSome(){
    		System.out.println("C doSome");
    	}
    }
    class D extends C{
    	public void doSome(){
    		System.out.println("D doSome");
    	}
    }
    public class Test{
    	public static void main(String[] args){
    		B b = new B();
    		D d = new D();
    		d.doSome();
    		//final 修饰局部变量
    		final int i;
    		i = 10;
    		final int j = 100;
    		j = 300;
    	}
    }
    
    


    6.对于引用,final修饰引用指向对象A后,不能再指向对象B,但是对象A内部的数据可以修改
    7.final修饰实例变量必须手动赋值(手动赋值的含义:变量后赋值,构造方法赋值)

    • 实例变量如果没有手动赋值的话,系统会赋默认值
    • 且final修饰的变量: 只能赋一次值
    • 所以final修饰的实例变量,系统不管赋默认值,要求程序员必须手动赋值
    • 显然Java设计者不愿意背这个锅。
    • 手动赋值:在语法上有直接写出、构造方法两种,但是都是在对象创建的时候赋值
    class User{
    	//final修饰实例变量
    	//会报错,没有为age赋值
    	//final int age;
    	final double height = 1.8;
    	final double weight;
    	
    	//在构造方法中为finalx修饰的实例变量赋值会报错吗?
    	public User(){
    		weight = 90;
    	}
    }
    

    复习:实例变量在对象创建的时候赋值。
    所以无论是height还是weight都是在一个User对象创建的时候赋初值


    8.final修饰实例变量,表示这个变量不会随着对象变化而变化,
    所以结论:final修饰的实例变量,一般添加static声明为静态变量以节省内存
    终极结论:static final联合声明的变量称为”常量“,常量名建议全部大写,每个单词之间采用下划线连接

    class Chinese{
    	String id;
    	String name;
    	static final String COUNTRY = "中国";
    }
    
  • 相关阅读:
    asp.net基础开发中常用代码大全
    IPv6網絡開發范例
    [轉]现场:是谁在住救灾帐篷者?
    运送救灾物资路上的感人画面纪实
    DataGridView新特色、常用操作
    [ZT]定制自己的Windows CE 5.0 ARM中文模拟器
    LoadRunner参数化功能详解
    [轉]灾区那么大,王十为什么直奔遵道镇,不去别处?
    [理想?夢想?]ERP项目怎么管
    乞讨老人为地震灾区捐款105元(图)
  • 原文地址:https://www.cnblogs.com/zy200128/p/12708407.html
Copyright © 2020-2023  润新知