参考链接: Java中的final关键字

文章目录

1 final关键字1.1 final修饰类1.2 final修饰方法1.3 final修饰属性---常量1.3.1 final修饰普通数据类型的成员变量1.3.2 final修饰引用数据类型的变量1.3.3 final与static final的区别

2 数据类型转换

1 final关键字

在Java中final被称为终结器,可以使用final来定义类、方法、属性。

1.1 final修饰类

当一个类被final关键字修饰表示该类不允许被继承,一旦一个类被final修饰,该类的所有方法都会默认加上final(成员变量不会加final)  工具类用final修饰比较安全,用户用到的工具方法都是一样的,不会被覆写。

1.2 final修饰方法

当一个方法被final修饰明确表示该方法不允许被覆写 当一个方法被private修饰后,相当于加了final关键字,即不可以覆写,所以方法覆写不能出现private关键字

1.3 final修饰属性—常量

1.3.1 final修饰普通数据类型的成员变量

被final修饰的成员变量必须在声明时(构造块,构造方法)初始化,并且初始化后值无法修改。

1.3.2 final修饰引用数据类型的变量

final修饰属性,无论是普通数据类型的成员变量,还是引用数据类型的变量其本质都是值不能被改变,对于引用数据类型即就是指向堆内存空间的栈内存空间的地址不变,但是堆内存空间里的内容却可以被改变。

class Person{

public String name="t";

public int age = 20;

}

public class Test{

public static void main(String[] args)

{

//final修饰属性 属性值不能被改变

//即指向Person对象的地址不能改,但是里面的内容却可以改

final  Person person = new Person();

person.name="w";

person.age=10;

System.out.println(person.name);

System.out.println(person.age);

}

}

class Person{

public String name="t";

public int age = 20;

}

public class Test{

public static void main(String[] args)

{

//final修饰属性 值不能被改变

//即指向Person对象的地址不能改,但是里面的内容却可以改

final  Person person = new Person();

person = new Person();

}

}

1.3.3 final与static final的区别

class Person{

public final int a = 10;

public static final int B = 10;

}

final变量–常量(值不能改变、每个对象都有自己的final变量、在对象产生时初始化) static final - 全局常量(所有对象共享此变量,并且在类加载时初始化、效率较高,通过类名调用) 可以用静态块初始化:

class Person{

public static final int B ;

static{

B=1;

}

}

全局常量命名规范:多个单词全大写,单词间用_分开

2 数据类型转换

  当使用+、-、*、/运算操作时,遵循如下规则:   只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型。   如果两个操作数中有一个是float类型,另一个将会被转换成float类型,并且结果也是float类型。   如果两个操作数有一个是long类型,另一个将会被转换成long类型,并且结果也是long类型。   否则(操作数为:byte、short、int、char),两个数都会被转换成int型,并且结果也是int型,但是final修饰的类型不会发生变化 范例:

public class Test2{

public static void main(String[] args)

{

byte b1=1,b2=2,b3,b6,b8;

final byte b4=4,b5=6,b7=9;

b3=(b1+b2); /*语句1*/

b6=b4+b5; /*语句2*/

b8=(b1+b4); /*语句3*/

b7=(b2+b5); /*语句4*/

}

}

[转载] Java中final关键字相关推荐

  1. java中final关键字的使用

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

  2. ACAC java中final关键字

    java中final关键字/*1.final关键字:java 中的一个关键字,最终的,不可变的可以修饰变量以及方法,还有类等.1.修饰的方法,修饰的类无法被覆盖,无法被重写,无法被继承写的方法不希望被 ...

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

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

  4. [转载] java中final,finally,finalize三者的作用和区别

    参考链接: Java中final,finally和finalize Final是一个修饰符: 当final修饰一个变量的时候,变量变成一个常量,它不能被二次赋值 当final修饰的变量为静态变量(即由 ...

  5. [转载] Java中的关键字含义以及介绍

    参考链接: C++和Java中static关键字的比较 Java关键字是有特别意义的标识符.用来表示一种数据类型,或者表示程序的结构等. Java关键字不能用作变量名.方法名.类名.包名和参数. 以下 ...

  6. [转载] JAVA中transient 关键字

    参考链接: Java中的transient关键字 今天学习到对象流,序列化反序列化的时候,老师用了一个transient关键字来防止某个属性被序列化,脑子一头懵逼,于是在网上看到了找了别人的博客,也不 ...

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

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

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

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

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

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

最新文章

  1. 【408预推免复习】操作系统之存储器管理
  2. python newspaper_第74天:Python newspaper 框架
  3. 高校计算机基础能力测试文字处理,高校计算机基础论文3篇(共8238字).doc
  4. 听说,高手都用记事本写C语言代码?
  5. 为了IT人的荣耀,请大力支持《中国人的紧箍咒》!理由如下——
  6. 踩坑:VScode 集成 eslint 插件
  7. Sequelize+MySQL存储emoji表情
  8. 学用MVC4做网站五:5.2我的文章
  9. Linux acpi off学习的必要
  10. Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au
  11. ASP.NET 使用application和session对象写的简单聊天室程序
  12. java应用程序字体太小_为什么在任何java应用程序中字体看起来都很糟糕?
  13. tar命令打包并压缩指定的文件夹并且排除指定的文件
  14. MTK平台设备和驱动的配置及使用--pmic驱动 pinctrl驱动
  15. 142个手机短信笑话
  16. Debian10 更换软件源 配置中文环境 安装中文输入法
  17. MAX40026 280ps高速比较器开发资料原理图源代码
  18. 计算机在会计专业的作用论文开题报告,会计电算化对传统会计的影响开题报告.docx...
  19. 2天线8状态空时网格码 c语言实现
  20. 软件构造博客之工厂模式

热门文章

  1. 【NOIP2017】【Luogu3954】成绩(模拟)
  2. C++奥赛一本通递归题解
  3. 对象创建的过程 java_Java 对象创建过程
  4. java heap space 解决方法_内存溢出错误:java堆空间
  5. Python入门--获取指定目录下的所有.py文件
  6. linux正则表达式_Linux 中几个正则表达式的用法
  7. 最短路径和最小生成树的区别
  8. 2013蓝桥杯C++B:第39阶台阶(递归法);前缀判断
  9. Educational Codeforces Round 53: E. Segment Sum(数位DP)
  10. Codeforces Round #518 (Div. 2): E. Multihedgehog(模拟)