final关键字

来源:互联网 发布:pika软件下载 编辑:程序博客网 时间:2024/05/16 01:43

final : 最终 

  final 的类

     1) 不能再被子类继承.

     2) 不能被子类修改了!

     3) 很少使用final类! 影响"动态代理"实现.

     Java API 中的final类: String  IntegerDouble Long

     Math

    

    class MyString extends String{}//编译错误

 

  final 的方法

    1) 不能被子类重写

    2) 可以避免在子类中修改这个方法!

    3) 很少使用! 影响"动态代理"实现.

     

  fianl 变量 : 只能初始化一次, 不能再修改的变量!

package day04;/** * fianl 变量    1) 只能初始化一次, 不能再修改的变量! */public class Demo04 {    public static void main(String[] args) {       final int a;//声明/定义变量       int b;       a = 1;//初始化, 第一次赋值       b= 1;       //a = 8;//编译错误, 赋值       b= 8;       //哪行有编译错误: A.8 B.9 C.10 D.11 E.12 F.13       final int c = 9;//声明同时初始化       test(0,9);       test(9,9);//方法调用       final int[] ary = null;       //ary = new int[5];//编译错误    }    //方法的参数, 在调用方法传递参数时候初始化的!    public static void test(final int a, int b){       //a = 8;//编译错误!       b = 8;    }}


 

 

  static final 用来修饰常量

  1) 常量一般使用大写字母书写, 多个单词使用_分隔

  2) 在广义上, 不严格区分  常量 和 字面量, 都称为常量!

 

  常量 和 字面量

 

  常量: 是固定不变的量的名字: ROWS, COLS

  字面量/直接量: 是直接写出的常数: 10, 20

     

  public static final int ROWS = 20;

  public static final int COLS = 10;

 

Java 源文件的结构

  package {0,1}

  import{0,n}

  public class{0,1} 只能有一个公有类

  class{0,n} 默认类/同包类, 可见范围: 当前包

  文件名必须有公有类类名一致, 如果没有公有类和某个类名一致

 

 一般情况下: 一个文件一个公有类