JAVA语法基础-简单的接口

JAVA语法解析

这是一个猜数字的游戏,依据输入的数据提示大小,最终确定正确的数字。
System.out.println(“执行0”);//后台打印,多用于检查调试
LOGGER.debug(“the real number is \u001b[38;5;6m[{}]\u001b[m”, realNumber);//多用于代码检查

目录结构

在这里插入图片描述

Controller-TrainingController.java代码解析

package com.icetai.portal.flow.training.controllers; //在java文件夹下,controlle文件r所在位置(固定写法)

import com.icetai.portal.flow.training.model.GuestNumber;//引入工具类,,路径+引入的model名(固定写法),GuestNumber会在post接口中用到
import com.icetai.portal.flow.training.model.GuestResult;
import com.icetai.portal.flow.training.model.GuestStorage;
import org.slf4j.Logger;//引入libraries库工具,Maven通用类库,工具名+功能
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/guest")//接口名称,调用地址:http://localhost:8080/guest
public class TrainingController {//公共类,与文件名一致,文件命名采用驼峰式写法

  private static final Logger LOGGER = LoggerFactory.getLogger(TrainingController.class);
  private static final String GREATER_THAN = "输入的数字太大了";
  private static final String LESS_THAN = "输入的数字太小了"; //定义静态变量,final最终赋值。

  @PostMapping//建立post接口,对应的还有@GetMapping
  public @ResponseBody GuestResult result(@RequestBody GuestNumber guest) {//由构造函数GuestResult 来处理接受的参数,此外通过GuestNumber实例化并把地址传给 guest 相当于guest= new GuestNumber()
    int fillIn = guest.getNumber2();//调用实例化后的guest(GuestNumber类)里的getNumber2()
    int code = check(fillIn);//调用自由方法
    if (code > 0) {
      return new GuestResult(fillIn, GREATER_THAN);//调用model下的class GuestResult 的public GuestResult方法
    } else if(code < 0) {
      return new GuestResult(fillIn, LESS_THAN);
    } else {
      GuestStorage.getSingleton().refresh();//刷新标准值,在内存中调用GuestStorage,需要instance实例化
      return new GuestResult(fillIn, "You win");
    }
  }

  // todo://
  private int check(int number) {
    GuestStorage storage = GuestStorage.getSingleton();//类名 名称,表示stroage为GuestStorage类型,相当与GuestStorage=new GuestStorage() 和storage =GuestStorage,返回内存地址,对应下面代码2
    int realNumber = storage.getTemp();
    LOGGER.debug("the real number is \u001b[38;5;6m[{}]\u001b[m", realNumber);
    return Integer.compare(number, realNumber);
  }
}

model-GuestResult.java代码解析

package com.icetai.portal.flow.training.model;
public class GuestResult {
    private int number;//定义自有变量this.
    private String msg;
     public GuestResult(int number) {//定义构造方法,构造函数名称必须与类名(或文件名)一致,对象初始化new时即执行
        this.number = number;//自由变量赋值
    }
    public GuestResult(int number, String msg) {//new依据参数的数量选择执行不同的构造函数
        this.number = number;
        this.msg = msg;
    }
    public int getNumber() { //int表示返回值为int型,若无返回值则写void
        return number;
    }
    public void setNumber(int number) {//定义方法标签,需要调用才执行
        this.number = number;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
}

model-GuestStorage.java代码解析

package com.icetai.portal.flow.training.model;
import com.icetai.portal.flow.training.util.RandomUtil;
public class GuestStorage {
  private int temp;
  private static GuestStorage instance;//static表示加载GuestStorage类时即实例化GuestStorage =new GuestStorage (),同时对外暴露GuestStorage,即在内存中保留唯一地址,调用多次返回同一个对象,对应2
  private GuestStorage(int num) {
    this.temp = num;
  }
  public static GuestStorage getSingleton() {//static 表示无需实例化new即可调用
    if (instance == null) {
      synchronized (GuestStorage.class) {//synchronized 同步
        if (instance == null) {
          instance = new GuestStorage(RandomUtil.generateRandomNum());
        }
      }
    }
    return instance;//返回GuestStorage内存地址,实现链式操作,如GuestStorage.getSingleton().refresh();
  }
  public void refresh() {//void 表示该方法无返回值
    this.temp = RandomUtil.generateRandomNum();
  }
  public int getTemp() {
    return temp;
  }
}

model-GuestResult.java代码解析

package com.icetai.portal.flow.training.model;
public class GuestResult {
    private int number;
    private String msg;
    public GuestResult(int number, String msg) {
        this.number = number;
        this.msg = msg;
        System.out.println("执行0");
    }
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
}

接口调试

利用postman测试接口,接口地址为:localhost:8080/guest,post方法,传输对象{“number”:1,“number2”:2}
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GY程序源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值