记一次Maven项目改造成SpringBoot项目的过程实践
355
2022-07-27
目录一、理解二、作用1. 修饰-类pZEIKzp2. 修饰-方法3. 修饰-变量3.1 修饰-成员变量(属性)3.2 修饰-局部变量三、经典题目
一、理解
final:最终的
二、作用
final 可以用来修饰的结构:类、方法、变量
1. 修饰-类
final 用来修饰一个类,表示此类不能被其它类所继承,提高安全性,提高程序的可读性。
比如:String类、System类、StringBuffer类…
代码演示:
final class A{}class B extends A{ //错误,不能被继承。}
2. 修饰-方法
final 用来修饰方法:表明此方法不能被子类重写。
比如:Object类中getClass();
代码演示:
class A {
public final void print() {
System.out.println("A");
}
}
class B extends A {
public void print() {
// 错误,不能被重写。
}
}
3. 修饰-变量
final 修饰的变量(成员变量或局部变量)称为常量。名称大写,且只能被赋值一次。
static final 用来修饰属性:全局常量。
代码演示:
class A {
private final String INFO = "嘻嘻"; //声明常量
public void print() {
//INFO = "哈哈";
//The final field A.INFO cannot be assigned
}
}
3.1 修饰-成员变量(属性)
final 标记的成员变量必须在声明(显式初始化)时或在 每个构造器中或代码块中显式赋值,然后才能使用。
如:final double MY_PI = 3.14;
3.2 修饰-局部变量
使用 final 修饰局部变量时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值以后,就只能在方法体内使用此形参,且不能进行重新赋值。
三、经典题目
//题目一:
public class Test1 {
public int addOne(final int x) {
// return ++x;
//Cannot assign a value to final variable 'x'
return x + 1;
}
}
//题目二:
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
// o = new Other();
o.i++;
}
}
class Other {
public int i;
}
//题目三:
class Root{
static{
System.out.println("Root的静态初始化块");
}
{
System.out.println("Root的普通初始化块");
}
public Root(){
super();
System.out.println("Root的无参数的构造器");
}
}
class Mid extends Root{
static{
System.out.println("Mid的静态初始化块");
}
{
System.out.println("Mid的普通初始化块");
}
public Mid(){
super();
System.out.println("Mid的无参数的构造器");
}
public Mid(String msg){
//通过this调用同一类中重载的构造器
this();
System.out.println("Mid的带参数构造器,其参数值:"
+ msg);
}
}
class Leaf extends Mid{
static{
System.out.println("Leaf的静态初始化块");
}
{
System.out.println("Leaf的普通初始化块");
}
public Leaf(){
//通过super调用父类中有一个字符串参数的构造器
super("小老师ir");
System.out.println("Leaf的构造器");
}
}
public class LeafTest{
public static void main(String[] args){
new Leaf();
System.out.println();
new Leaf();
}
}
/*output:
Root的静态初始化块
Mid的静态初始化块
Leaf的静态初始化块
Root的普通初始化块
Root的无参数的构造器
Mid的普通初始化块
Mid的无参数的构造器
Mid的带参数构造器,其参数值:小老师ir
Leaf的普通初始化块
Leaf的构造器
Root的普通初始化块
Root的无参数的构造器
Mid的普通初始化块
Mid的无参数的构造器
Mid的带参数构造器,其参数值:小老师ir
Leaf的普通初始化块
Leaf的构造器
*/
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~