final详解
final的含义?
final:java中的关键字,意为“终态的”或者“无法改变的”。可用来修饰类、变量、方法。
变量(成员变量、静态变量、局部变量)
注意:
1、final变量即为常量,通常常量名大写。
2、final成员变量必须在声明时初始化或在构造器中初始化。
3、静态final成员变量必须在声明时初始化。
4、局部变量必须在声明时赋值。
5、final变量赋值后不能被修改。
6、final修饰方法中的参数时,参数在方法体中不能重新赋值。
7、接口中的变量可以不用明确的声明为final,因为变量默认为public static final。
代码:
public class ClassA {
public final String S1 = "this is S1 in ClassA";// 成员变量,声明时初始化
public final String S2;// 成员变量,在构造器中初始化
public static final String S3 = "this is S3 in ClassA";// 静态变量
public ClassA() {
S2 = "this is S2 in ClassA";
}
public String method1() {
final String S = "this is method1 in ClassA";// 局部变量
return S;
}
public String method2(final String S) {// final修饰方法中的参数
return S;
}
}
测试1:
public class MainClass {
public static void main(String[] args) {
ClassA a1 = new ClassA();
System.out.println(a1.S1);// this is S1 in ClassA
System.out.println(a1.S2);// this is S2 in ClassA
System.out.println(a1.S3);// this is S3 in ClassA
System.out.println(a1.method1());// this is method1 in ClassA
System.out.println(a1.method2("test"));// test
}
}
方法
注意:
1、final修饰的方法不能被子类重写。
2、final不能用来修饰抽象方法。
代码:
public class ClassA {
public final String method1() {
return "this is method1 in ClassA";
}
}
测试2:
public class MainClass {
public static void main(String[] args) {
ClassA a1 = new ClassA();
System.out.println(a1.method1());// this is method1 in ClassA
}
}
类
注意:
1、final修饰的类不能被继承。
2、final不能修饰抽象类和接口。
代码:
public final class ClassA {
public String s1 = "this is s1 in ClassA";
}
测试3:
public class MainClass {
public static void main(String[] args) {
ClassA a1 = new ClassA();
System.out.println(a1.s1);// this is s1 in ClassA
}
}
final详解的更多相关文章
- 11、final详解
1.final修饰成员变量 即该成员被修饰为常量,意味着不可修改. 对于值类型表示值不可变:对于引用类型表示地址不可变 其初始化可以在三个地方 ①:定义时直接赋值 ②:构造函数 ③:代码块{}或者静态 ...
- java关键字native、static、final详解
native: native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中.Java语言本身不能对操作系统底层进行访问和操作,但是可 ...
- java 关键字final static native详解
java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...
- 最强Java并发编程详解:知识点梳理,BAT面试题等
本文原创更多内容可以参考: Java 全栈知识体系.如需转载请说明原处. 知识体系系统性梳理 Java 并发之基础 A. Java进阶 - Java 并发之基础:首先全局的了解并发的知识体系,同时了解 ...
- 多线程之 Final变量 详解
原文: http://www.tuicool.com/articles/2Yjmqy 并发编程网:http://ifeve.com/java-memory-model/ 总结: Final 变量在并发 ...
- java提高篇(十)-----详解匿名内部类 ,形参为什么要用final
在java提高篇-----详解内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.如何初始 ...
- “全栈2019”Java第五十一章:继承与final关键字详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- abstract关键字、final关键字、static关键字、访问修饰符详解
abstract关键字.final关键字.static关键字.访问修饰符详解 abstract关键字: final关键字: static关键字: 访问修饰符:
- 详解 final 和 static
在我们上一篇博文中提到了 fianl 这个关键字,对于这个关键字,本人在初学时也耗费了极大地心血,甚至和师兄进行了激烈的讨论,并且,在我们讨论.尝试 以及 翻阅各种资料,最终得出了合适.易懂的解释. ...
随机推荐
- 【坑】解决maven管理SSM中mybatis的mapper文件扫描失败的问题
文章目录 前言 改进方式来替换原始的使用方式 后记 好久没有写博客了,11月底来到公司实习,上个月写个小demo,趁此回顾下SSM,今天将最近的积累记录下: 前言 在学习 mybatis 的时候,都知 ...
- PHP和Memcached - Memcached的安装
1.现有扩展对比 memcache memcached 实现方式 原生 局域libmemcached的类库,性能高 编程方式 面向过程.对象 面向对象 CAS命令 NO YES php7 NO Y ...
- python中检测某个变量是否有定义
目录 第一种方法使用内置函数locals() 第二种方法使用内置函数dir() 第三种方法使用内置函数vars() 第一种方法使用内置函数locals() 'testvar' in locals(). ...
- CentOS 7.X 静默安装Oracle 12C数据库
环境 System : CentOS 7.x jrxxfwb-zrgldb://> uname -a Linux jrxxfwb-zrgldb 3.10.0-693.17.1.el7.x86_6 ...
- Sonya and Bitwise OR CodeForces - 1004F (线段树,分治)
大意: 给定序列$a$, 给定整数$x$. 两种操作(1)单点修改 (2)给定区间$[l,r]$,求有多少子区间满足位或和不少于$x$. 假设不带修改. 固定右端点, 合法区间关于左端点单调的. 可以 ...
- Base64编码为什么会使数据量变大
现在工作中把视频转成base64发现数据量过大无法下载. 1.为什么base64编码会使数据量变大呢? Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.它将需要编码的数据 ...
- (八)装配Bean(2)
二.在Java类中进行显式的装配 显式配置有两种: 1. 一种是在java(本文讲解) 2. 另一种是xml配置文件(第一章有讲) 案例一: 使用java显式装配+@autowired自动装配的方 ...
- Swagger 实践 <一>
参考 :https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-nswag?view=aspnetcor ...
- 创建多线程时,为何创建后需要Sleep?
后面的线程用到了前面线程初始的结构,sleep一下只是做到了使前一个线程初始化完成后后一个线程才开始运行.但这样不严格,需要同步机制.在么多个线程都要用的数据结构不要放到子线程内部去初始化,程序启动时 ...
- Java后端HttpClient Post提交文件流 及服务端接收文件流
客户端将文件转换为流发送: 依赖的包: <dependency> <groupId>org.apache.httpcomponents</groupId> < ...