java中final关键字/*1、final关键字:java 中的一个关键字,最终的,不可变的可以修饰变量以及方法,还有类等。1、修饰的方法,修饰的类无法被覆盖,无法被重写,无法被继承写的方法不希望被子类修改,就加final2、final控制不了能不能调用的问题,final修饰的表示最后的,不能变的,不是说你加了个final,就不能调用(父类中final是不能覆盖修改的,但是可以调用,子类中用final无意义,)而是说你不想这个方法被修改一句话概括:final修饰的方法不能被修改,可以被调用3、final修饰的变量:final int i = 100;i = 200;错误: 无法为最终变量i分配值说明一旦用final 修饰变量,则是程序员不希望,final重新赋值,一句话概括:final修饰的变量只能赋一次值b类继承A类,想当于对A类的功能进行拓展,如果不希望别人对A类进行拓展可以给A类添加final关键字,这样A类就无法继承。H:\Java\Javajdk\bin调用子类特有的方法是,要想下转型A  a = new B();if( a instanceof B){B b = (B) a;b.teyoufangfa();}*/class A{public final void sum(int a,int b){int c = a +b;System.out.println("final修饰方法,进行求和:"+ a + "+ " + b + "=" + c);}public static void main(String[] args){//final int i = 100;// i = 200;A c = new A();int a = 100;int b = 200;c.sum(a,b);B d = new B();d.sum(a,b);}
}
class B extends A{}=======================================================/*final 修饰的变量,如果这个变量是一个“引用”会怎样?”引用“是不是一个变量呢? 是的错误: 无法为最终变量p2分配值final修饰的引用:该引用只能指向一个对象,并且他只能永远指向该对象,无法再指向其他对象并且在该方法执行过程中,该引用指向对象之后,不会被垃圾回收器回收直到当前方法结束,才会释放空间局部变量没有初始值,只能手动赋值,成员变量有初始值*/
public class FinalTest02{public static void main(String[] args){Person p1 = new Person(12);System.out.println(p1.age);//代码怎么变化,p 也是一个变量(不过这里他叫引用)final Person p2 = new Person(20);p2.age = 40;//这样是可以的,因为并没有指向其他对象,可以修改内部的数据/*p2.Person(40);错误: 找不到符号p2.Person(40); 注意:构造方法不能用对象调用构造方法直接new Person(123)的时候用*///p2 = new Person(20);//错误: 无法为最终变量p2分配值}
}
class Person{int age;public Person(int age){this.age = age;}
}=================================================/*final修饰的实例变量呢?万变不离其宗,final修饰的变量只能赋值一次实例变量如果没有手动赋值的话,系统会赋默认值但实例变量的话,必须手动赋值不赋值的话:final int age;age 未在默认构造器中初始化*/
public class FinalTest03{   public static void main(String[] args){}}class User {final int age = 12; final int he;public User(){//只要赶在系统赋默认值之前赋值就行this.he = 180;//系统什么时候赋默认值???//系统赋默认值是这个时候(是在执行系统默认的无参构造方法的时候进行赋值),并不是说声明 int a 的时候赋值// he = 0;}//这样也可以}
=====================================================/*实例变量的缺点:实例变量在堆中,一个对象一份,声明一百个,每次为这个实例变量开一个空间,它本身又不能变,浪费内存既然实例变量用final修饰,说明该实例变量的值不会随着对象的变化而变化final修饰的实例变量,一般用static修饰,存储在方法区,节省内存结论:static final 联合修饰的变量称为“常量”常量名建议全部大写,每个单词间用下划线衔接```j常量:实际上和静态变量一样,区别:常量的值不能变常量和静态变量都储存在方法区,都是在类加载时初始化常量一般是公开的:public的,因为改不了*/public class FinalTest04{public static void main(String[] args){}
}class Chinese{public static final String COUNTRY = "中国";
}/*总结:final 修饰的类无法继承final 修饰的方法无法覆盖final 修饰的变量只能赋一次值final 修饰的引用一旦指向某个对象,则不能再重新指向其他对象,但该引用指向的对象内部的数据可以更改final 修饰的实例变量不能被系统默认赋值,只能手动赋值final 修饰的实例变量一般和static联合,称为常量*/

ACAC java中final关键字相关推荐

  1. java中final关键字的使用

    final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰  类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...

  2. Java中final关键字的简介说明

    下文笔者讲述java中final关键字的功能简介说明,如下所示 final关键字功能 final关键字修饰的类.方法.变量都会产生特殊的意义 如:final关键字修饰过后的类不能被子类继承final关 ...

  3. [转载] Java中final关键字

    参考链接: Java中的final关键字 文章目录 1 final关键字1.1 final修饰类1.2 final修饰方法1.3 final修饰属性---常量1.3.1 final修饰普通数据类型的成 ...

  4. 关于Java中final关键字的详细介绍

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...

  5. Java中final关键字的几种用法

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面大家跟随动力节点java ...

  6. java中final关键字、权限修饰符、内部类(成员内部类、局部内部类、匿名内部类)

    final关键字: final表示最终的不可变的,在java中可以用来修饰类或方法.局部变量.成员变量. // 1.final关键字修饰类需要放在class关键字前面,表示不可变的类,需要注意,这里表 ...

  7. final关键字_夯实基础:Java中final关键字的几种用法

    导语 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构. 关于static请查 ...

  8. Java中final关键字的作用与用法

    一.特点 1.final从字面上理解含义为"最后的,最终的". 2.final可以用来修饰变量(包括类属性.对象属性.局部变量.形参),方法(包括类方法和对象方法)以及类. 二.用 ...

  9. Java中final关键字的作用

    final关键字可以用来修饰引用.方法和类. 1.用来修饰一个引用 如果引用为基本数据类型,则该引用为常量,该值无法修改: 如果引用为引用数据类型,比如对象.数组,则该对象.数组本身可以修改,但指向该 ...

最新文章

  1. Node.js 开发指南笔记
  2. XXL-JOB v2.0.1 发布,分布式任务调度平台
  3. Eclipse常用功能键
  4. 大数据时代,如何才能提高自身竞争力?
  5. 同步考勤数据 钉钉_作为学校,我为何选择微校wxiao考勤打卡?
  6. C语言图形库——EasyX常用函数
  7. vue项目调用jssip_JsSIP和FreeSWITCH整合
  8. 2015年4月27日---C语言:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!...
  9. Kubernetes学习总结(10)—— 何为云原生,与 kubernetes 是什么关系
  10. 网站前后端交互学习有感
  11. 第二节:使用反射构建动态可扩展应用程序
  12. 虚拟化--vsphere排错组件归纳
  13. Testbench编写
  14. 软件项目总结报告范文
  15. python selenium 下载附件通过oss上传
  16. ghost.py 使用实例
  17. 热度php代码,爬取知乎热度搜索标题并数据分析及可视化(示例代码)
  18. PPT 问题 PowerPoint 储存此文件时发生错误
  19. 大屏可视化的适配方案
  20. 谭浩强C++ 第十章

热门文章

  1. 中病毒spoolsv.exe
  2. NSString中的rangeOfString
  3. 轴承产生震动是什么原因?
  4. 30岁是全新的20岁?---《20岁时光不再来》
  5. UML用例图-用例图
  6. js毫秒转换年月日时分秒
  7. 简介一些黑盒测试的方法
  8. Java使用Graphics2D添加文字水印碰见的坑(给透明底图片加半透明水印)
  9. java批量生成pdf
  10. OpenCL学习笔记一