🚀 个人简介:某大型国企资深软件开发工程师,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~
💟 作 者:码喽的自我修养🥰
📝 专 栏:Java入门到实战 🎉🌈 创作不易,如果能帮助到带大家,欢迎 收藏+关注 哦 💕
🌈🌈文章目录
final的意义
final的使用
1. final修饰类
2. final修饰方法
3. final修饰变量
练习
final的意义
final:最终的,不可更改的
final的使用
1. final修饰类
表示这个类不能被继承,没有子类。提高安全性,提高程序的可读性。
例如:String类、System类、StringBuffer类
final class Eunuch{//太监类}
class Son extends Eunuch{//错误}
2. final修饰方法
表示这个方法不能被子类重写。
例如:Object类中的getClass()
class Father{public final void method(){System.out.println("father");}
}
class Son extends Father{public void method(){//错误System.out.println("son");}
}
3. final修饰变量
final修饰某个变量(成员变量或局部变量),一旦赋值,它的值就不能被修改,即常量,常量名建议使用大写字母。
例如:final double MY_PI = 3.14;
如果某个成员变量用final修饰后,没有set方法,并且必须初始化(可以显式赋值、或在初始化块赋值、实例变量还可以在构造器中赋值)
修饰成员变量
public final class Test {public static int totalNumber = 5;public final int ID;public Test() {ID = ++totalNumber; // 可在构造器中给final修饰的“变量”赋值}public static void main(String[] args) {Test t = new Test();System.out.println(t.ID);}
}
修饰局部变量:
public class TestFinal {public static void main(String[] args){final int MIN_SCORE ;MIN_SCORE = 0;final int MAX_SCORE = 100;MAX_SCORE = 200; //非法}
}
错误演示:
class A {private final String INFO = "atguigu"; //声明常量public void print() {//The final field A.INFO cannot be assigned//INFO = "尚硅谷"; }
}
练习
题1:排错
public class Something {public int addOne(final int x) {return ++x; //错误写法// return x + 1;//正确写法}
}
题2:排错
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;
}
到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家,希望大家点点收藏+关注 ~💕
更多专栏订阅推荐:
🥕 JavaScript深入研究
👍 前端工程搭建
💕 vue从基础到起飞✈️ HTML5与CSS3
🖼️ JavaScript基础
⭐️ uniapp与微信小程序
📝 前端工作常见问题与避坑指南
✍️ GIS地图与大数据可视化
📚 常用组件库与实用工具
💡 java入门到实战