Java在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
冒泡排序和选择排序 发布于:2023-09-22 09:24 百鸡百钱问题 发布于:2023-09-21 23:04 this is 选择排序 发布于:2023-09-21 21:52 this is 冒泡排序 发布于:2023-09-21 21:50 这是选择排序 发布于:2023-09-21 21:02 这是冒泡排序 发布于:2023-09-21 21:01 利用蛮力法解决百鸡百钱问题: 百钱百鸡问题是一道数学题,出自《张邱建算经》, 问题描述如下:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏一,值钱一;百钱买百鸡,则翁、母、雏各几何? 发布于:2023-09-21 20:46 百钱百鸡问题是一道数学题,出自《张邱建算经》,问题描述如下:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏一,值钱一;百钱买百鸡,则翁、母、雏各几何? 发布于:2023-09-21 20:46 产需对齐计算 发布于:2023-09-22 11:46 百钱白鸡问题 发布于:2023-09-21 13:45 选择排序、 发布于:2023-09-20 23:49 选择排序-20052244 发布于:2023-09-20 21:36 百钱百鸡nn 发布于:2023-09-20 21:23 选择排序算法 发布于:2023-09-20 21:14 选择排序测试 发布于:2023-09-20 21:07 选择排序。 发布于:2023-09-20 21:15 寻找数组中的最大值 发布于:2023-09-20 20:54 冒泡排序。 发布于:2023-09-20 21:15 冒泡排序测试 发布于:2023-09-20 20:31 冒泡排序法 发布于:2023-09-20 20:21 20230920-冒泡排序 发布于:2023-09-20 20:26 个位数比百位数大,百位数比十位数大,各数之和等于各数之积,求这个百位数 发布于:2023-09-20 20:15 冒泡排序456321-20052244SQ 发布于:2023-09-20 20:33 冒泡排序432156 发布于:2023-09-20 20:30 有一个三位数,个位数字比百位数字大 发布于:2023-09-20 20:06 搜索小于100,且能被3整除的数 发布于:2023-09-20 19:47 1-10能被3整除 发布于:2023-09-20 19:46 找出能被3整除的数 发布于:2023-09-20 19:44 1-10被3整除的数 发布于:2023-09-20 19:43 抽象加接口 发布于:2023-09-20 16:11 接口Java 发布于:2023-09-20 16:17 定义接口 interface 发布于:2023-09-20 15:27 BOLOOOD 9.20 2.0版本 发布于:2023-09-20 14:53 --- BOLOOL JK 9.20 发布于:2023-09-20 12:28 代码实现选择排序 发布于:2023-09-19 22:13 选择排序。 发布于:2023-09-19 16:50 选择排序算法 发布于:2023-09-19 16:50 冒泡排序算法 发布于:2023-09-19 16:49 冒泡排序算法&&选择排序算法 发布于:2023-09-19 16:50 不完整版对象(待修改)9.19 发布于:2023-09-19 15:27 9.18 算法时间 发布于:2023-09-18 15:18 数组算法课 发布于:2023-09-18 15:16 时间复杂性 发布于:2023-09-18 09:51 对象2023916 发布于:2023-09-16 13:58 请说出你的数字 发布于:2023-09-15 19:43 public class Main { public static void main(String[] args) { String formula = "2*x^2 + 3*x + 4"; Expression expression = new Expression(formula); System.out.println("Formula: " + formula); System.out.println("Parsed expression: " + expression.toString()); } } 发布于:2023-09-15 17:09 mh和zzj 发布于:2023-09-13 16:22 多态的实列 发布于:2023-09-13 15:06 多态的例子 发布于:2023-09-13 15:04 多态编程xx 发布于:2023-09-13 14:55 [更多]
显示目录

状态模式



Java设计模式 - 状态模式

在状态模式中,类行为基于其状态而改变。

状态模式是一种行为模式。

当使用状态模式时,我们创建各种状态对象和上下文对象,其行为随着其状态对象改变而变化。


例子

interface State {
  public void doAction(Context context);
}

class StartState implements State {
  public void doAction(Context context) {
    System.out.println("In start state");
    context.setState(this);
  }

  public String toString() {
    return "Start State";
  }
}

class StopState implements State {

  public void doAction(Context context) {
    System.out.println("In stop state");
    context.setState(this);
  }

  public String toString() {
    return "Stop State";
  }
}

class PlayState implements State {
  public void doAction(Context context) {
    System.out.println("In play state");
    context.setState(this);  
  }
  public String toString() {
    return "Play State";
  }
}

class Context {
  private State state;

  public Context() {
    state = null;
  }

  public void setState(State state) {
    this.state = state;
  }

  public State getState() {
    return state;
  }
}

public class Main {
  public static void main(String[] args) {
    Context context = new Context();

    StartState startState = new StartState();
    startState.doAction(context);

    System.out.println(context.getState().toString());

    PlayState playState = new PlayState();
    playState.doAction(context);

    StopState stopState = new StopState();
    stopState.doAction(context);

    System.out.println(context.getState().toString());
  }
}

上面的代码生成以下结果。

In start state
Start State
In play state
In stop state
Stop State
由JSRUN为你提供的Java在线运行、在线编译工具
        JSRUN提供的Java 在线运行,Java 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。