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;
}
}
}
java基础-Junit 注解 枚举-day12的更多相关文章
- Java基础教程:枚举类型
Java基础教程:枚举类型 枚举类型 枚举是将一具有类似特性的值归纳在一起的方法.比如,我们可以将周一到周日设计为一个枚举类型.彩虹的七种颜色设计为一个枚举类型. 常量实现枚举 我们通过定义常量的方式 ...
- Java基础教程——注解
注解 JDK 5开始,Java支持注解. 注解,Annotation,是一种代码里的特殊标记,这些标记可以在编译.类加载.运行时被读取并执行,而且不改变原有的逻辑. 注解可以用于:生成文档.编译检查. ...
- 【Java基础】关于枚举类你可能不知道的事
目录 谈谈枚举 1. 枚举类的定义 2. 枚举类的底层实现 3. 枚举类的序列化实现 4. 用枚举实现单列 5. 枚举实例的创建过程是线程安全的 谈谈枚举 如果一个类的对象个数是有限的而且是不变的,我 ...
- 【转载】JAVA基础:注解
原文:https://www.cnblogs.com/xdp-gacl/p/3622275.html#undefined 一.认识注解 注解(Annotation)很重要,未来的开发模式都是基于注解的 ...
- Java基础加强-(注解,动态代理,类加载器,servlet3.0新特性)
1. Annotation注解 1.1. Annotation概述 Annotation是JDK 5.0以后提供对元数据的支持,可以在编译.加载和运行时被读取,并执行相应的处理.所谓Annota ...
- Java基础加强-注解
/*注解(Annotation)*/(注解相当于一个特殊的类,注解类@interface A) 了解注解及java提供的几个基本注解 1. @SuppressWarnings 指示应该在注释元素(以及 ...
- Java基础篇——注解和反射
注解 注解Annotation可以被其他程序(编译器)读取,常见的有@override 内置注解 @Override 适用于修饰方法,表明重写父类中的一个方法 @Deprecated 用于修饰类.方法 ...
- java基础篇---注解(Annotation)
一.概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类.方法.成员变量等)进行关 ...
- Java基础教程(15)--枚举类型
枚举类型定义了一个枚举值的列表,每个值是一个标识符.例如,下面的语句声明了一个枚举类型,用来表示星期的可能情况: public enum Day { SUNDAY, MONDAY, TUESDAY ...
- java基础之注解
包含成员变量及方法的注解称之为元数据, 不包含任何成员的注解称之为标记. 用@interface定义注解, 使用类似于接口方法的方式来定义注解的属性,其中返回值成为属性的类型,方法名为属性的名称. p ...
随机推荐
- CPU的组成 运算器与控制器
计算机结构 CPU结构
- 解决opencv测试时OpenCV Error: Unspecified error (The function is not implemented.的问题
在安装好opencv时,出现如下的报错信息: OpenCV Error: Unspecified error (The function is not implemented. Rebuild the ...
- k8s安装网络插件calico出现error validating "calico.yaml": error validating data: invalid object to validate; if you choose to ignore these errors, turn validation off with --validate=false
解决办法:使用下面版本的calico curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O
- 记一次 .NET某工控 宇宙射线 导致程序崩溃分析
一:背景 1. 讲故事 为什么要提 宇宙射线, 太阳耀斑 导致的程序崩溃呢?主要是昨天在知乎上看了这篇文章:莫非我遇到了传说中的bug? ,由于 rip 中的0x41变成了0x61出现了bit位翻转导 ...
- 监控工具nmon使用方法
https://blog.csdn.net/linabc123000/article/details/70833427
- SSH默认端口从22修改为其他端口
1.在终端中使用root权限登录到您的Linux服务器. 2.打开终端,并使用适合您的文本编辑器(如vi.nano等)打开SSH配置文件.例如,通过运行以下命令之一: vi /etc/ssh/sshd ...
- kylin&CDH理论基础
Kylin&CDH理论基础 一.维度与度量 维度是观察数据的角度.比如电商的销售数据,可以从时间维度来观察,进一步细化时间和地区维度来观察. 度量是被聚合的统计值,也是聚合运算的结果.知道维度 ...
- 【华为云技术分享】LwM2M协议的学习与分享
[摘要] 本文主要对于LwM2M协议进行了简单的介绍,包括协议的体系架构以及特性.对象.资源.接口的定义等,希望对你有所帮助. 1协议简介 LwM2M(Lightweight Machine-To-M ...
- 面试官问我:CSS有哪些属性可以继承?
摘要:本文带大家学习一下关于CSS属性的继承. 本文分享自华为云社区<关于CSS有哪些属性可以继承?>,作者:黛琳ghz. 前言 今天遇到一个很有意思的题目,通过题目可以顺便学习一下关于C ...
- 昇腾CANN:为你开启机器人开发的Buff 加成
摘要:昇腾AI提供了全栈技术和产品,构筑人工智能的算力基座,赋能上层应用 本文分享自华为云社区<昇腾CANN:为你开启机器人开发的Buff 加成>,作者:华为云社区精选 . 昇腾AI基础软 ...