适用于手机的网站怎么建设,哪个网站可以做司考题,做个网站软件多少钱,宝安住房和建设局网站官网序言 即便平凡的日子仿佛毫无波澜#xff0c;但在某个特定的时刻#xff0c;执着的努力便会显现出它的价值和意义。 希望这篇文章能让你不仅有一定的收获#xff0c;而且可以愉快的学习#xff0c;如果有什么建议#xff0c;都可以留言和我交流 问题 思考一下这寄个问题但在某个特定的时刻执着的努力便会显现出它的价值和意义。 希望这篇文章能让你不仅有一定的收获而且可以愉快的学习如果有什么建议都可以留言和我交流 问题 思考一下这寄个问题我们将围绕这三个问题来开始学习 什么是枚举怎么定义枚举枚举的使用场景 1 什么是枚举 Java 枚举Enum是一种特殊的数据类型它是一组预定义的常量每个常量都有一个名称和一个值。 枚举类型在 Java 中被广泛使用它可以用来代替常量、标志位、状态码等使代码更加清晰、易读和易维护。 下面是 Java 枚举的详细介绍。 2 枚举的使用
定义枚举类型 在 Java 中可以通过关键字 enum 来定义枚举类型。枚举类型的定义格式如下 enum EnumName {Constant1,Constant2,Constant3,...
}其中 EnumName 是枚举类型的名称Constant1、Constant2、Constant3 等是枚举类型的常量。每个枚举常量都有一个名称和一个值枚举常量的名称通常采用大写字母命名多个单词之间用下划线分隔。 访问枚举常量 在 Java 中可以通过枚举类型的名称来访问枚举常量。例如假设有一个名为 Weekday 的枚举类型可以通过如下方式来访问枚举常量 Weekday monday Weekday.Monday;这里的 Weekday.Monday 表示 Weekday 枚举类型中的 Monday 常量。 枚举方法 枚举类型可以定义方法这些方法可以在枚举常量上调用。例如可以在 Weekday 枚举类型中定义一个 isWeekend 方法来判断当前枚举常量是否为周末 enum Weekday {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday;public boolean isWeekend() {return this Saturday || this Sunday;}
}在上面的例子中通过在枚举常量后面定义方法可以在每个枚举常量上调用这个方法。例如可以通过 Weekday.Saturday.isWeekend() 来判断 Saturday 是否为周末。 枚举构造器 枚举类型也可以定义构造器这些构造器只能在枚举常量的定义中被调用并且只能用来初始化枚举常量的值。例如可以在 Weekday 枚举类型中定义一个带参数的构造器来设置枚举常量的值 enum Weekday {Monday(星期一), Tuesday(星期二), Wednesday(星期三), Thursday(星期四), Friday(星期五), Saturday(星期六), Sunday(星期日);private String value;private Weekday(String value) {this.value value;}public String getValue() {return value;}
}在上面的例子中通过在枚举常量后面定义构造器可以在枚举常量的定义中为枚举常量设置值。例如可以通过 Weekday.Monday.getValue() 来获取 Monday 的值。 枚举实现接口 枚举类型也可以实现接口这样每个枚举常量都会自动实现接口中的方法。例如可以在 Weekday 枚举类型中定义一个接口并让枚举类型实现这个接口 interface Printable {void print();
}enum Weekday implements Printable {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday;Overridepublic void print() {System.out.println(Today is this.name());}
}在上面的例子中通过让 Weekday 枚举类型实现 Printable 接口使得每个枚举常量都自动实现了 print 方法。例如可以通过 Weekday.Monday.print() 来输出当前是星期几。 总结 总之Java 枚举是一种强类型的数据类型它提供了一种更加优雅、清晰和类型安全的方式来表示常量、状态码等。 枚举类型可以定义常量、方法、构造器和实现接口这使得枚举类型非常灵活和功能强大。枚举类型在 Java 中的使用非常广泛尤其在表示状态、选项等方面可以极大地提高代码的可读性和易维护性。 2 案例 假设我们有一个游戏游戏中有三个角色战士、法师和牧师。每个角色都有自己的属性血量、攻击力和防御力。 我们可以使用枚举类型来表示这三个角色代码如下 定义角色枚举
public enum Role {WARRIOR(战士, 100, 50, 30),MAGE(法师, 80, 70, 20),PRIEST(牧师, 60, 30, 50);private String name; // 角色名称private int hp; // 角色血量private int attack; // 角色攻击力private int defense; // 角色防御力// 构造方法private Role(String name, int hp, int attack, int defense) {this.name name;this.hp hp;this.attack attack;this.defense defense;}// getter方法public String getName() {return name;}public int getHp() {return hp;}public int getAttack() {return attack;}public int getDefense() {return defense;}
}在上面的代码中我们定义了一个名为Role的枚举类型其中包含了三个枚举常量WARRIOR、MAGE和PRIEST。每个枚举常量都有自己的属性名称、血量、攻击力和防御力。我们还定义了一个构造方法用于初始化这些属性。最后我们为每个属性定义了getter方法以便其他类可以访问这些属性。 定义角色 现在我们可以在其他类中使用Role枚举类型来表示游戏中的角色。例如我们可以编写一个Player类来表示游戏中的玩家代码如下 public class Player {private Role role; // 玩家角色public Player(Role role) {this.role role;}public void attack(Player target) {int damage this.role.getAttack() - target.getRole().getDefense();if (damage 0) {int newHp target.getRole().getHp() - damage;target.getRole().setHp(newHp);}}public Role getRole() {return role;}public void setRole(Role role) {this.role role;}
}在上面的代码中我们定义了一个名为Player的类用来表示游戏中的玩家。每个玩家都有一个角色我们使用Role类型的role字段来表示。在Player类的构造方法中我们需要传入一个Role类型的参数来初始化玩家的角色。 Player类还有一个attack方法用来实现玩家的攻击操作。在这个方法中我们通过调用getAttack和getDefense方法来获取玩家的攻击力和防御力然后计算出攻击造成的伤害。如果伤害值大于0就更新目标玩家的血量。Player类还有一些getter和setter方法用来访问和修改玩家的角色。 测试 现在我们可以编写一个简单的测试类来测试上面的代码代码如下 public class GameTest {public static void main(String[] args) {Player player1 new Player(Role.WARRIOR);Player player2 new Player(Role.MAGE);System.out.println(玩家1选择了 player1.getRole().getName());System.out.println(玩家2选择了 player2.getRole().getName());player1.attack(player2);System.out.println(玩家2的血量为 player2.getRole().getHp());}
}在上面的代码中我们创建了两个玩家一个选择了战士角色另一个选择了法师角色。然后我们让玩家1攻击玩家2并输出玩家2的血量。运行这个测试类输出结果如下 玩家1选择了战士
玩家2选择了法师
玩家2的血量为60从输出结果可以看出玩家1的攻击对玩家2造成了伤害玩家2的血量减少了攻击力减去防御力得到的伤害值变成了60。 总结 总的来说这个案例中使用了枚举类型来表示游戏中的角色每个角色都有自己的属性并且可以在其他类中使用枚举类型来表示角色。通过这个案例我们可以看到Java中枚举类型的使用非常灵活可以用来表示任何有限的常量集合。 图书推荐 Java28岁了当打之年并且还会打很多年。 为即将或正在使用Java的你推荐Java“此生错过必遗憾”系列书单。看看你还缺哪本请补齐。 图书列表 Java核心技术第12版开发基础高级特性套装共2册Java核心技术第11版基础知识高级特性套装共2册Java编程思想[Thinking in Java]Effective Java 中文版原书第3版Java语言程序设计基础篇进阶篇原书第12版套装共2册Java并发编程实战软件架构实践原书第4版 Java核心技术第12版开发基础高级特性套装共2册 “Java四大名著”之一Core Java最新版一键打包全套2册建议入门小白和准备升级到Java17的开发者购买。本书根据Java17新特性全面升级赠送作者亲授视频课海量代码集。 可先睹为快《Java核心技术第12版开发基础高级特性套装共2册》 Java核心技术第11版基础知识高级特性套装共2册 “Java四大名著”之一Core Java次新版一键打包全套2册建议实际生产环境仍在使用Java8、Java11开发且暂时没有升级版本打算的开发者购买。本书基于Java9-11编写赠送作者亲授视频课海量代码集。 先睹为快《Java核心技术 卷1 基础知识Java核心技术 卷2 高级特性(原书第11版) Java编程思想[Thinking in Java] “Java四大名著”之一需要有一定编程基础的人才可阅读即使很多内容还无法理解但每次读完一定会有所收获。本书单最前面推荐的《Java核心技术》侧重技术而《Java编程思想》侧重于“思想”本书为你剖析Java中各个内容的设计理念。这是一本伴随我们技术成长的好书买一本放在旁边摸着就有底气。 限时秒杀链接《Java编程思想第4版》 Effective Java 中文版原书第3版 Java之父James Gosling “我很希望我10年前就能拥有这本书。有人可能认为我不需要任何Java方面的书籍但是我需要这本书。” “Java四大名著”之一适合已经掌握Java核心技术的程序员想更加深入地了解Java编程语言的开发者阅读。针对如何编写高效、设计优良的程序提出了最实用、最权威的指导方针通过90条简短、独立的经验法则探索新的设计模式和语言习惯用法帮你更加有效地使用Java编程语言及其基本类库指引你少走弯路。这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。是Java开发人员案头上的一本不可或缺的参考书。 限时秒杀链接《Effective Java中文版原书第3版》 Java语言程序设计基础篇进阶篇原书第12版套装共2册 本套书相较于《Java核心技术》更加的基础如果你阅读《Java核心技术》有些吃力建议从本书读起。畅销20余年的“长城书”一键打包全套被世界各地的大学选作教材更新至Java9、10和11。本书通过示例讲解问题求解技巧提供大量的程序清单每章配有丰富的复习题和编程练习题帮助读者掌握编程技术并解决实际开发中遇到的问题。 限时秒杀链接《Java语言程序设计基础篇进阶篇原书第12版套装共2册》 Java并发编程实战 让注重实战的你更快领悟Java并发编程的要领快速构建大规模并发应用程序。“Java四大名著”之一《Effective Java》的作者Joshua Bloch参与编写。本书是Java并发编程领域的里程碑著作从并发编程的基本理论入手逐步介绍了在设计Java并发程序时各种重要的设计原则、设计模式与思维模式。另一本蚂蚁金服方腾飞老师写的《Java并发编程的艺术》也适合一并阅读。 限时秒杀链接《Java并发编程实战》 软件架构实践原书第4版 让你少走弯路的进阶架构师避坑指南图书届奥斯卡Jolt大奖双冠王作品全球10余个国家出版。卡内基梅隆等名校教材IEEE杂志10佳图书软件架构图书事实标准。 限时秒杀链接《软件架构实践原书第4版》 参与方式 图书数量本次送出 5 本 ⭐️⭐️⭐️ 活动时间截止到 2023-05-29 12:00:00 抽奖方式 3本留言该留言论赞数的前三名各获得一本2本评论区随机挑选小伙伴留言内容“祝Java28岁生日快乐。【你想要的书名】” 参与方式关注博主、点赞、收藏评论区留言 中奖名单 获奖名单 中奖名单请关注博主动态 名单公布时间2023-05-29 下午