码迷,mamicode.com
首页 > 其他好文 > 详细

final

时间:2018-08-20 23:26:00      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:构造   代码   ast   system   etag   lin   构造方法   data-   使用   

 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;
 }






final

标签:构造   代码   ast   system   etag   lin   构造方法   data-   使用   

原文地址:https://www.cnblogs.com/xiaolige/p/9508761.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!