[转载] 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关键字前面,表示不可变的类,需要注意,这里表 ...
最新文章
- 【408预推免复习】操作系统之存储器管理
- python newspaper_第74天:Python newspaper 框架
- 高校计算机基础能力测试文字处理,高校计算机基础论文3篇(共8238字).doc
- 听说,高手都用记事本写C语言代码?
- 为了IT人的荣耀,请大力支持《中国人的紧箍咒》!理由如下——
- 踩坑:VScode 集成 eslint 插件
- Sequelize+MySQL存储emoji表情
- 学用MVC4做网站五:5.2我的文章
- Linux acpi off学习的必要
- Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au
- ASP.NET 使用application和session对象写的简单聊天室程序
- java应用程序字体太小_为什么在任何java应用程序中字体看起来都很糟糕?
- tar命令打包并压缩指定的文件夹并且排除指定的文件
- MTK平台设备和驱动的配置及使用--pmic驱动 pinctrl驱动
- 142个手机短信笑话
- Debian10 更换软件源 配置中文环境 安装中文输入法
- MAX40026 280ps高速比较器开发资料原理图源代码
- 计算机在会计专业的作用论文开题报告,会计电算化对传统会计的影响开题报告.docx...
- 2天线8状态空时网格码 c语言实现
- 软件构造博客之工厂模式
热门文章
- 【NOIP2017】【Luogu3954】成绩(模拟)
- C++奥赛一本通递归题解
- 对象创建的过程 java_Java 对象创建过程
- java heap space 解决方法_内存溢出错误:java堆空间
- Python入门--获取指定目录下的所有.py文件
- linux正则表达式_Linux 中几个正则表达式的用法
- 最短路径和最小生成树的区别
- 2013蓝桥杯C++B:第39阶台阶(递归法);前缀判断
- Educational Codeforces Round 53: E. Segment Sum(数位DP)
- Codeforces Round #518 (Div. 2): E. Multihedgehog(模拟)