[转载] Java中final关键字
参考链接: 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关键字相关推荐
- java中final关键字的使用
final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰 类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...
- ACAC java中final关键字
java中final关键字/*1.final关键字:java 中的一个关键字,最终的,不可变的可以修饰变量以及方法,还有类等.1.修饰的方法,修饰的类无法被覆盖,无法被重写,无法被继承写的方法不希望被 ...
- Java中final关键字的简介说明
下文笔者讲述java中final关键字的功能简介说明,如下所示 final关键字功能 final关键字修饰的类.方法.变量都会产生特殊的意义 如:final关键字修饰过后的类不能被子类继承final关 ...
- [转载] java中final,finally,finalize三者的作用和区别
参考链接: Java中final,finally和finalize Final是一个修饰符: 当final修饰一个变量的时候,变量变成一个常量,它不能被二次赋值 当final修饰的变量为静态变量(即由 ...
- [转载] Java中的关键字含义以及介绍
参考链接: C++和Java中static关键字的比较 Java关键字是有特别意义的标识符.用来表示一种数据类型,或者表示程序的结构等. Java关键字不能用作变量名.方法名.类名.包名和参数. 以下 ...
- [转载] JAVA中transient 关键字
参考链接: Java中的transient关键字 今天学习到对象流,序列化反序列化的时候,老师用了一个transient关键字来防止某个属性被序列化,脑子一头懵逼,于是在网上看到了找了别人的博客,也不 ...
- 关于Java中final关键字的详细介绍
Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...
- Java中final关键字的几种用法
在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面大家跟随动力节点java ...
- java中final关键字、权限修饰符、内部类(成员内部类、局部内部类、匿名内部类)
final关键字: final表示最终的不可变的,在java中可以用来修饰类或方法.局部变量.成员变量. // 1.final关键字修饰类需要放在class关键字前面,表示不可变的类,需要注意,这里表 ...
最新文章
- 返璞归真 asp.net mvc (2) - 路由(System.Web.Routing)
- React官方文档学习笔记(二)
- ABAP Subscreen and tabstrip controls
- 人造肉真的上市了,这对养殖业会有什么影响?
- MATLAB_平面几何_判断两平面矩形是否干涉
- 学会了PowerBI简单的托托拽拽,是时候学习下DAX了
- Dockerfile 学习:Docker Alpine PHP 安装扩展
- 什么是云计算,云计算运营方式和部署方式介绍
- 由2003年的一篇讲座笔记
- 港科百创 | 决赛成功举办!2021香港科大商学院-国科京东方人工智能百万奖金国际创业大赛在北京圆满收官!...
- java_vinson_01:eclipse下载
- NUC的型号说明及其他的一些信息
- 机器人电焊电流电压怎么调_电焊电流的调节技巧
- 制作Wi-Fi Ducky远程HID攻击设备
- 【Linux】四、Linux 进程概念(上篇)
- 【python】习题第9周
- web版文件管理系统_Vue.js与Lumen组合框架的大创项目管理系统架构方案
- XC6206P332MR的典型应用电路(稳定输出3.3v)
- Java Scoket编程
- 转载linux图形界面编程基本知识(X11, xorg, gdm/gnome)
热门文章
- linux用cmake编译,CMake使用简介(forLinux)
- java.servlet js,调用servlet方法
- koolshare离线插件下载_还记得那个提速8倍的IDEA插件吗?VS Code版本也发布啦
- java面向对象的特征封装_Java总结-Java面向对象的基本特征之一:封装性
- JAVA→异常、异常类体系结构、try→catch→finally处理异常、throw new Exception(“重构异常“);、throws Exception{ }、自定义异常
- android 组件生命周期,Android组件化开发实践(五):组件生命周期管理
- Flask报错RuntimeError: No application found. Either work inside a view function or push an applicatiio
- [leetcode]529. 扫雷游戏 DFS递归、BFS、DFS栈实现
- 从Qt的图片文件传输来看Qt 中UDP的收发消息writeDatagram和readDatagram
- bzoj 1800: [Ahoi2009]fly 飞行棋