Java の入門からマスターまでの章の演習 - 第 13 章

演習 1 虹の列挙

総合演習1:虹の列挙 「赤、オレンジ、黄、緑、青、藍、紫」の7色からなる虹の列挙を書きます。

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;
    }
}

この列挙型を使用すると、列挙値を通じて対応する色の名前に直接アクセスできます。たとえば、RainbowEnum.RED.getColorName() を使用して、赤の色の名前を取得できます。

演習 2 性別の列挙

総合的な演習 2: 性別の列挙 トイレ クラスを設計し、入場方法を提供し、男子には男子トイレのみに、女子には女子トイレのみに入るように要求します。

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("男生进入男厕所");
    }

}

演習 3 チャネルのヒント

総合的な演習 3: チャネル プロンプト エントリ メソッドを持つチャネル クラスを作成します。顧客がチャネルに入ると、「こんにちは、滑りに注意してください」というプロンプトが表示されます。従業員がチャネルに入った場合、プロンプトコンテンツはありません。2 つのチャネル オブジェクトを作成してください。1 つはパブリック チャネル、もう 1 つは従業員チャネルです。お客様は従業員通路には立ち入りできません。

チャネルタイプと担当者のタイプは手動で設定できます。

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());
        }
    }
}

演習 4 権限の設定

総合演習 4: 権限設定 Tomorrow Academy の権限設定モジュールをシミュレートします。0 は観光客、1 は登録ユーザー、2 は VIP メンバー、3 は管理者を意味します。コンソールに 0 ~ 3 の任意の数字を入力すると、各権限の出力が表示されます。 "特権"。訪問者: いくつかのビデオを視聴、すべてのコースを閲覧、登録、ログイン; 登録ユーザー: すべてのビデオを無料で視聴、いくつかのサポート演習、お気に入りのコース、リアルタイムの質問、個人設定; VIP メンバー: すべてのビデオを無料で視聴、すべてを閲覧演習と解答、ソース コード ダウンロードと定期的なオンライン インタラクション、管理者: バックグラウンドのすべての管理モジュールとフロント デスクのすべての機能モジュール。

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());
            }
        }
    }
}

演習 5 身体検査記録

総合的な演習 5: 身体検査記録 以下の手順に従って、身体検査記録のシミュレーションを完了します。
(1) 男性と女性の 2 つの列挙項目を含む性別の列挙を作成します。
(2) 3 つのジェネリック型 (A、B、C) を持つテスト クラスを作成します。これら 3 つのジェネリック型を使用して、それぞれ 3 つのメンバー変数を作成します。3 つのメンバー変数に値を代入できるコンストラクターを作成します。
(3) 日付を記録するために使用される最初のテスト クラス オブジェクト date を作成し、3 つのメンバー変数はそれぞれ年、月、日を表す整数値を記録し、日付オブジェクトのすべての属性値をコンソール。
(4) 文字情報を記録するために使用される 2 番目のテスト クラス オブジェクト tom と、名前、身長、性別をそれぞれ記録する 3 つのメンバー変数を作成します。名前は文字列、高さは整数、性別は (1) で指定された列挙型を使用します。トムオブジェクトのすべての属性値をコンソールに出力します。

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 +
                '}';
    }
}

おすすめ

転載: blog.csdn.net/dedede001/article/details/130369970