java基础-Junit 注解 枚举-day12
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;
}
}
}