当前位置:网站首页>final关键字和枚举类型
final关键字和枚举类型
2022-07-28 08:46:00 【lilshork】
目录
final是什么
final的表面意思是不可更改的、恒量、最终的、不可变的的意思,指的是无法改变的量。
在java中final修饰的就是常量,而且变量名要大写。
例如:
public static final double PI = 3.14;
final怎么用
①修饰变量,被final修饰的变量必须要初始化,赋初值后不能再重新赋值。
final int x1= 10000;
②修饰方法,被final修饰的方法不能重写。
创建了一个动物类,里面有吃饭和睡觉的方法,其中睡觉的方法用final修饰。
public class Animal {
public void eat(){
System.out.println("动物吃东西");
}
public final void sleep(){
System.out.println("动物睡觉");
}
}然后创建了一个狗类继承动物类。
public class Dog extends Animal{
}之后在狗类中对父类的方法重写

可以看到,狗类中只能对没有被final修饰的方法重写,但是可以调用父类中被final修饰的方法。
public class Dog extends Animal{
@Override
public void eat() {
System.out.println("狗吃东西");
}
}public class AnimalTest {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sleep();
dog.eat();
}
}
③修饰类,被final修饰的类,不能被继承。
④修饰局部变量,变量只能赋值一次。
⑤修饰实例成员变量,只能赋值一次且一定要赋值。
final注意事项
①被final修饰的常量名称,一般都有书写规范,所有字母都大写。
②接口中的变量都是public static final 的。
③注意不要将final与finally、finalize()等搞混。
枚举类型是什么
在Java中,被 enum 关键字修饰的类型就是枚举类型,它是一种特殊的数据类型,之所以特殊是因为它既是一种类类型却又比类类型多了些特殊的约束,因此这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。枚举一般用于以下情况:定义常量、添加新方法、与switch结合使用、实现接口、使用接口组织枚举。
枚举类型的格式
public enum 枚举名{
枚举实例,这些实例直接写大写名字。
}
例如:
public enum Sex{
BOY,GIRL;
}
枚举类型举例
枚举类型与switch的综合应用:
创建一个枚举类型的week类:
public enum Week {
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
}创建一个测试类,里面有展示星期几的方法。
public class WeekTest {
public static void main(String[] args) {
show(Week.MONDAY);
}
public static void show(Week week){
switch (week){
case MONDAY:
System.out.println("星期一");
break;
case TUESDAY:
System.out.println("星期二");
break;
case WEDNESDAY:
System.out.println("星期三");
break;
case THURSDAY:
System.out.println("星期四");
break;
case FRIDAY:
System.out.println("星期五");
break;
case SATURDAY:
System.out.println("星期六");
break;
case SUNDAY:
System.out.println("星期天");
break;
}
}
}
边栏推荐
- App加速读取显示IPFS图片的解决方案和实现
- Machine learning: self paced and fine tuning
- Oracle-11gR2默认的系统JOB
- ES6 let and Const
- 关闭页面时向后台发送消息
- TXT文本文件存储
- Magic Bracelet-【群论】【Burnside引理】【矩阵快速幂】
- 如何在多线程环境下使用 GBase C API ?
- Linux initializes MySQL with fatal error: could not find my-default.cnf
- (IROS 2022) 基于事件相机的单目视觉惯性里程计 / Event-based Monocular Visual Inertial Odometry
猜你喜欢

技术分享| 快对讲综合调度系统

看得清比走得快更重要,因为走得对才能走得远

How to obtain the subordinate / annotation information of KEGG channel

Go synergy

【592. 分数加减运算】

Sentinel

linux初始化mysql时报错 FATAL ERROR: Could not find my-default.cnf

oracle 创建用户且只有查询权限

【vscode】vscode使用

Bluetooth technology | it is reported that apple, meta and other manufacturers will promote new wearable devices, and Bluetooth will help the development of intelligent wearable devices
随机推荐
【多线程】println方法底层原理
站在大佬的肩膀上,你可以看的更远
[附下载]推荐几款暴力破解和字典生成的工具
TXT text file storage
修改虚拟机IP地址
478-82(56、128、718、129)
leetcode 452. Minimum Number of Arrows to Burst Balloons 用最少数量的箭引爆气球(中等)
使用 GBase C API 执行存储过程是怎样的?
shell 实现harbor v1/v2的备份/恢复/迁移等功能
Oracle-11gR2默认的系统JOB
Marketing play is changeable, and understanding the rules is the key!
推荐一个摆脱变量名纠结的神器和批量修改文件名方法
一款入门神器TensorFlowPlayground
正负数值的正则表达式
opencv4.60版本安装和配置
RGB-T追踪——【多模态融合】Visible-Thermal UAV Tracking: A Large-Scale Benchmark and New Baseline
Promise学习笔记
Map of China province > City > level > District > Town > village 5-level linkage download [2019 and 2021]
2022年危险化学品经营单位安全管理人员上岗证题目及答案
【单细胞高级绘图】07.KEGG富集结果展示