Java desde a entrada até os exercícios do capítulo mestre - Capítulo Treze
Exercício 1 Enumeração do arco-íris
Exercício abrangente 1: Enumeração do arco-íris Escreva uma enumeração do arco-íris, que tem 7 cores de "vermelho, laranja, amarelo, verde, azul, índigo e roxo".
package org.hj.chapter13;
public enum RainbowEnum {
RED("红色"),
ORANGE("橙色"),
YELLOW("黄色"),
GREEN("绿色"),
BLUE("蓝色"),
INDIGO("靛色"),
PURPLE("紫色");
private String colorName;
RainbowEnum(String colorName) {
this.colorName = colorName;
}
public String getColorName() {
return colorName;
}
}
Ao usar esse tipo de enumeração, você pode acessar diretamente o nome da cor correspondente por meio do valor de enumeração. Por exemplo, você pode usar RainbowEnum.RED.getColorName() para obter o nome da cor vermelha.
Exercício 2 enumeração de gênero
Exercício Abrangente 2: Enumeração de Gênero Projete uma aula de toalete, forneça um método de entrada e exija que os meninos entrem apenas no banheiro masculino e as meninas apenas no banheiro feminino.
package org.hj.chapter13;
public enum GenderEnum {
//0代表女性,1代表男性
Female(0),
Male(1);
private Integer gender;
GenderEnum(Integer gender) {
this.gender = gender;
}
public Integer getGender() {
return gender;
}
public static void main(String[] args) {
int Female = 0;
int Male = 1;
Toilet.inlet(Female);
Toilet.inlet(Male);
}
}
class Toilet {
//进入方法
public static void inlet(Integer gender) {
if (GenderEnum.Female.getGender().equals(gender)) {
System.out.println("女生进入女厕所");
return;
}
System.out.println("男生进入男厕所");
}
}
Exercício 3 Dicas de Canal
Exercício Abrangente 3: Prompt de Canal Crie uma classe de canal, que tenha um método de entrada, e se um cliente entrar no canal, ele solicitará "Olá cliente, tenha cuidado ao escorregar". Não há conteúdo de prompt se o funcionário entrar no canal. Crie dois objetos de canal, um é um canal público e o outro é um canal de funcionário. Os clientes não podem entrar no corredor dos funcionários.
O tipo de canal e o tipo de pessoal podem ser definidos manualmente.
package org.hj.chapter13;
import java.util.Scanner;
public enum ChannelPromptEnum {
customer(0,"顾客您好,小心地滑"),
staff(1,""),
;
private final Integer identity;
private final String tip;
ChannelPromptEnum(Integer identity, String tip) {
this.identity = identity;
this.tip = tip;
}
public Integer getIdentity() {
return identity;
}
public String getTip() {
return tip;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入创建通道类型(0为公共通道,1为员工通道):");
int i = scanner.nextInt();
Thoroughfare thoroughfare = new Thoroughfare(i);
System.out.println("请输入身份(0为顾客,1为员工)");
int i1 = scanner.nextInt();
thoroughfare.inlet(i1);
}
}
class Thoroughfare {
//通道类型:0为公共通道;1为员工通道
private final Integer thoroughfareType;
public Thoroughfare(Integer thoroughfareType) {
this.thoroughfareType = thoroughfareType;
}
public Integer getThoroughfareType() {
return thoroughfareType;
}
//进入方法
public void inlet(Integer identity) {
//消费者,且通道类型为公共通道,消费者才能进入
if (getThoroughfareType().equals(1)) {
if (ChannelPromptEnum.customer.getIdentity().equals(identity)) {
System.out.println("此通道为员工通道,游客止步");
return;
}
System.out.println("员工进入员工通道");
return;
}
if (ChannelPromptEnum.customer.getIdentity().equals(identity)) {
System.out.println(ChannelPromptEnum.customer.getTip());
}
}
}
Exercício 4 configurações de permissão
Exercício Abrangente 4: Configuração de Autoridade Simule o módulo de configuração de autoridade da Tomorrow Academy, 0 significa turista, 1 significa usuário registrado, 2 significa membro VIP, 3 significa administrador, após inserir qualquer número de 0 a 3 no console, a saída de cada autoridade "privilégio". Visitantes: assistam a alguns vídeos, naveguem por todos os cursos, registrem-se, façam login; usuários registrados: assistam a todos os vídeos gratuitamente, alguns exercícios de apoio, cursos favoritos, perguntas em tempo real, configurações pessoais; Membros VIP: assistam a todos os vídeos gratuitamente, naveguem por todos exercícios e respostas, download do código-fonte e interação on-line regular; administrador: todos os módulos de gerenciamento em segundo plano e todos os módulos funcionais na recepção.
package org.hj.chapter13;
import java.util.Scanner;
public enum PermissionEnum {
tourist(0, "观看部分视频、浏览所有课程、注册、登录"),
users(1, "免费观看所有视频、部分配套习题、收藏课程、实时提问、个人设置"),
vip(2, "免费观看所有视频、浏览所有习题及答案、源码下载、定期在线互动交流"),
admin(3, "后台所有管理模块、前台所有功能模块"),
;
private final Integer perm;
private final String privilege;
PermissionEnum(Integer perm, String privilege) {
this.perm = perm;
this.privilege = privilege;
}
public Integer getPerm() {
return perm;
}
public String getPrivilege() {
return privilege;
}
public static void main(String[] args) {
boolean loop = true;
//可一直循环查询,输入4后退出程序
while (loop) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入0~3数字查看权限、输入4退出:");
int i = scanner.nextInt();
//利用枚举判断输入数字对应的权限
if (i == 4) {
loop = false;
}
if (PermissionEnum.tourist.getPerm().equals(i)) {
System.out.println(PermissionEnum.tourist.getPerm() + "对应权限为:" + PermissionEnum.tourist.getPrivilege());
}
if (PermissionEnum.users.getPerm().equals(i)) {
System.out.println(PermissionEnum.users.getPerm() + "对应权限为:" + PermissionEnum.users.getPrivilege());
}
if (PermissionEnum.vip.getPerm().equals(i)) {
System.out.println(PermissionEnum.vip.getPerm() + "对应权限为:" + PermissionEnum.vip.getPrivilege());
}
if (PermissionEnum.admin.getPerm().equals(i)) {
System.out.println(PermissionEnum.admin.getPerm() + "对应权限为:" + PermissionEnum.admin.getPrivilege());
}
}
}
}
Exercício 5 Registro de Exame Físico
Exercício Abrangente 5: Registros do Exame Físico Siga as etapas abaixo para concluir a simulação do registro do exame físico:
(1) Crie uma enumeração de gênero com dois itens de enumeração, masculino e feminino.
(2) Crie uma classe de teste com três tipos genéricos: A, B e C. Use esses 3 tipos genéricos para criar 3 variáveis de membro, respectivamente. Escreva um construtor que possa atribuir valores às 3 variáveis de membro.
(3) Crie a primeira data de objeto de classe de teste, que é usada para registrar a data, e as três variáveis de membro, respectivamente, registram os números inteiros que representam o ano, mês e dia e imprimem todos os valores de atributo do objeto de data no console.
(4) Crie um segundo objeto de classe de teste tom, que é usado para registrar informações de personagem, e três variáveis de membro registram nome, altura e sexo, respectivamente. Name é uma string, height é um inteiro e gender usa a enumeração fornecida em (1). Imprima todos os valores de atributo do objeto tom no console.
package org.hj.chapter13;
/**
* @description 体检记录
*/
public class MedicalRecordEnum {
public static void main(String[] args) {
//date
TestClass<Integer, Integer, Integer> date = new TestClass<>();
date.setA(2023);
date.setB(04);
date.setC(27);
System.out.println(date);
//tom
TestClass<String, Integer, String> tom = new TestClass<>();
tom.setA("tom");
tom.setB(170);
tom.setC(Gender.Male.getGender());
System.out.println(tom);
}
}
/**
* 性别枚举
*/
enum Gender {
Male("男性"),
Female("女性");
private final String gender;
Gender(String gender) {
this.gender = gender;
}
public String getGender() {
return gender;
}
}
class TestClass<A, B, C> {
private A a;
private B b;
private C c;
public void setA(A a) {
this.a = a;
}
public void setB(B b) {
this.b = b;
}
public void setC(C c) {
this.c = c;
}
@Override
public String toString() {
return "TestClass{" +
"a=" + a +
", b=" + b +
", c=" + c +
'}';
}
}