java基础-Junit 注解 枚举-day12

发布时间 2023-09-18 23:36:17作者: chenwen0511

1. Junit

白盒测试 黑盒测试 自行baidu了解

java单元测试

package com.msb01;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 21:14
 * @Description: com.msb01
 * @version: 1.0
 */
public class CalculatorTest {

    @Before
    public void beforeMethod(){
        System.out.println("Before method");
    }

    @After
    public void afterMethod(){
        System.out.println("After method");
    }

    @Test
    public void testAdd(){
        Calculator cal = new Calculator();
        int res = cal.add(1, 3);
        Assert.assertEquals(4, res);

    }

    @Test
    public void testMinus(){
        Calculator cal = new Calculator();
        int res = cal.minus(9, 12);
        Assert.assertEquals(-3, res);


    }
}

package com.msb01;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 21:13
 * @Description: com.msb01
 * @version: 1.0
 */
public class Calculator {

    public int add(int a, int b){
        return a+b;
    }

    public int minus(int a, int b){
        return a-b;
    }
}

2. 注解 annotation

注解是比较重要的内容 后续还会深入学习 这里是是引入

注解其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过使用注解,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息

一定程度上可以说 :框架=注解+反射+设计模式。
后续会学习各种框架

3. 枚举

星期一--星期天
春夏秋冬
男女
有限的取值

 package com.msb.enum01;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:00
 * @Description: com.msb.enum01
 * @version: 1.0
 */
public class Season {
    private final String seasonName;
    private final String seasonDesc;

    private Season(String seasonName, String seasonDesc) {
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    public static final Season Spring = new Season("春", "春暖花开");
    public static final Season Summer = new Season("夏", "夏日炎炎");
    public static final Season Autumn = new Season("秋", "秋高气爽");
    public static final Season Winter = new Season("冬", "冰天雪地");

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    @Override
    public String toString() {
        return "Season{" +
                "seasonName='" + seasonName + '\'' +
                ", seasonDesc='" + seasonDesc + '\'' +
                '}';
    }
}

package com.msb.enum01;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:05
 * @Description: com.msb.enum01
 * @version: 1.0
 */
public class Test {
    public static void main(String[] args) {
        Season autumn = Season.Autumn;
        System.out.println(autumn.getSeasonDesc());
        System.out.println(autumn.getSeasonName());

        System.out.println(autumn);
    }
}

枚举类

package com.msb.enum02;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:00
 * @Description: com.msb.enum01
 * @version: 1.0
 */
public enum  Season {
    Spring("春", "春暖花开"),
    Summer("夏", "夏日炎炎"),
    Autumn("秋", "秋高气爽"),
    Winter("冬", "冰天雪地");


    private final String seasonName;
    private final String seasonDesc;

    private Season(String seasonName, String seasonDesc) {
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }


    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    @Override
    public String toString() {
        return "Season{" +
                "seasonName='" + seasonName + '\'' +
                ", seasonDesc='" + seasonDesc + '\'' +
                '}';
    }
}

package com.msb.enum02;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:05
 * @Description: com.msb.enum01
 * @version: 1.0
 */
public class Test {
    public static void main(String[] args) {
        Season autumn = Season.Autumn;
        System.out.println(autumn.getSeasonDesc());
        System.out.println(autumn.getSeasonName());

        System.out.println(autumn);
    }
}

        // enum关键字对应的枚举类的上层父类是 :java.lang.Enum
        System.out.println(Season.class.getSuperclass().getName());

更简单的写法

package com.msb.enum03;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:00
 * @Description: com.msb.enum01
 * @version: 1.0
 */
public enum Season {
    Spring,
    Summer,
    Autumn,
    Winter;
}

package com.msb.enum03;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:12
 * @Description: com.msb.enum03
 * @version: 1.0
 */
public class test {
    public static void main(String[] args) {
        Season autumn = Season.Autumn;
        System.out.println(autumn);

        Season[] values = Season.values();
        for (Season value : values) {
            System.out.println(value.toString());
        }
        Season aut = Season.valueOf("Autumn");
        System.out.println(aut);
    }
}

实现类

package com.msb.enum03;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:00
 * @Description: com.msb.enum01
 * @version: 1.0
 */
public enum Season implements SeasonShow {
    Spring{
        @Override
        public void show() {
            System.out.println("春天");
        }
    },
    Summer{
        @Override
        public void show() {
            System.out.println("夏天");
        }
    },
    Autumn{
        @Override
        public void show() {
            System.out.println("秋天");
        }
    },
    Winter{
        @Override
        public void show() {
            System.out.println("冬天");
        }
    };
}

package com.msb.enum03;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:16
 * @Description: com.msb.enum03
 * @version: 1.0
 */
public interface SeasonShow {
    void show();
}

package com.msb.enum03;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:12
 * @Description: com.msb.enum03
 * @version: 1.0
 */
public class test {
    public static void main(String[] args) {
        Season autumn = Season.Autumn;
        System.out.println(autumn);

        Season[] values = Season.values();
        for (Season value : values) {
            System.out.println(value.toString());
        }
        Season aut = Season.valueOf("Autumn");
        System.out.println(aut);
        aut.show();
    }
}

实际应用

package com.msb.enum04;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:22
 * @Description: com.msb.enum04
 * @version: 1.0
 */
public enum Gender {
    男,
    女;
}

package com.msb.enum04;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:22
 * @Description: com.msb.enum04
 * @version: 1.0
 */
public class Person {
    private int age;
    private String name;
    private Gender sex;

    public Person(int age, String name, Gender sex) {
        this.age = age;
        this.name = name;
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Gender getSex() {
        return sex;
    }

    public void setSex(Gender sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Person{" +
                "age=" + age +
                ", name='" + name + '\'' +
                ", sex=" + sex +
                '}';
    }
}


package com.msb.enum04;

/**
 * @Auther: jack.chen
 * @Date: 2023/9/18 - 09 - 18 - 23:23
 * @Description: com.msb.enum04
 * @version: 1.0
 */
public class test {
    public static void main(String[] args) {
        Person p = new Person(19,"lili", Gender.男);
        System.out.println(p);

        Gender g = p.getSex();

        switch (g){
            case 男:
                System.out.println("男人");
                break;
            case 女:
                System.out.println("女人");
                break;
        }

    }
}