final


 final修饰符:  最终的意思,不能改变  * final修饰类不可以被继承,但是可以继承其他类。(太监类)  * 使用方式没有变化,可以继承其他的类,也可以实现其他接口,也可以创建对象,调用类中的方法  * 被final修饰的Fu类,子类不能继承      * final修饰的方法,是一个最终方法,不能改变  * final修饰的方法可以被继承,不可以被重写,但父类中没有被final修饰的方法,子类重写后可以加final修饰。   /*    * 可以使用final修饰局变量:称之为常量-->一次赋值,终身不变    * final也是局部变量唯一的修饰符    */   //final修饰基本数据类型变量   final int a = 100;//固定住变量的值,值不能改变   //a = 20;//The final local variable a cannot be assigned.       /*    * final修饰引用数据类型变量:固定住变量的地址值,地址值不能改变    * 引用数据类型变量赋值赋的值对象的堆内存中的地址值    */   final Person p = new Person("颜如玉", 18);//0xda6bf4   //p = new Person("黄金屋", 20);//0x222 -->The final local variable p cannot be assigned.    //p = null;//The final local variable p cannot be assigned.    System.out.println(p);//cn.itcast.demo08.Person@da6bf4   /*    * 引用类型变量的属性是可以变化的,不会改变地址值    */   p.setName("黄金屋");   p.setAge(20);   System.out.println(p);//cn.itcast.demo08.Person@da6bf4   System.out.println(p.getName()+"..."+p.getAge());    * final修饰成员变量:必须在创建对象前赋值(构造方法执行完毕之前)  * 成员变量堆内存中的默认值,不是final修饰的成员变量的值  * 赋值方式:  * 1.直接赋值  * 2.使用构造代码块赋值,优选于构造方法执行  * 3.使用构造方法赋值  * 注意:final修饰的变量,是一个常量,只能赋值一次 //1.直接赋值  final int a = 10;  final int b;  final int c;  //构造代码块  {   //2.使用构造代码块赋值,优选于构造方法执行   b = 20;  }  public Student() {   //3.使用构造方法赋值   c = 30;  }    

       



来自为知笔记(Wiz)