zoukankan      html  css  js  c++  java
  • 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 = "中国";
    }
    
  • 相关阅读:
    小程序 循环遍历 传参数 获取参数的方法
    小程序技巧 盒子布局
    小程序的初体验
    python制作网易云免费下载器
    数据结构实验报告之三元组顺序存储的稀疏矩阵练习(代码版)
    JavaFX作业8
    用JavaFX显示一个转动的风扇
    用JavaFX模拟一个交通信号灯
    数据结构作业周三必交
    大数据的就业观与考研观
  • 原文地址:https://www.cnblogs.com/zy200128/p/12708407.html
Copyright © 2011-2022 走看看