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 12:54 百钱白鸡问题 发布于: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设计模式 - 观察者模式

观察者模式用于在一个对象被修改时通知其相关对象。

观察者模式是一种行为模式类别。

例子

import java.util.ArrayList;
import java.util.List;

class MyValue {
   private List<Observer> observers 
      = new ArrayList<Observer>();
   private int state;

   public int getState() {
      return state;
   }

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

   public void attach(Observer observer){
      observers.add(observer);    
   }

   public void notifyAllObservers(){
      for (Observer observer : observers) {
         observer.update();
      }
   }   
}
abstract class Observer {
   protected MyValue subject;
   public abstract void update();
}
class PrinterObserver extends Observer{
   public PrinterObserver(MyValue subject){
      this.subject = subject;
      this.subject.attach(this);
   }

   @Override
   public void update() {
      System.out.println("Printer: " + subject.getState() ); 
   }
}
class EmailObserver extends Observer{

   public EmailObserver(MyValue subject){
      this.subject = subject;
      this.subject.attach(this);
   }

   @Override
   public void update() {
     System.out.println("Email: "+ subject.getState() ); 
   }
}
class FileObserver extends Observer{

   public FileObserver(MyValue subject){
      this.subject = subject;
      this.subject.attach(this);
   }

   @Override
   public void update() {
      System.out.println("File: " + subject.getState()); 
   }
}

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

      new FileObserver(subject);
      new EmailObserver(subject);
      new PrinterObserver(subject);

      subject.setState(15);

      subject.setState(10);
   }
}

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

File:15
Email:15
Printer:15
File:10
Email:10
Printer:10
由JSRUN为你提供的Java在线运行、在线编译工具
        JSRUN提供的Java 在线运行,Java 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。