java ネストした型やインターフェースの例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java ネストした型やインターフェースの例相关的知识,希望对你有一定的参考价值。
package sample16;
// ネストした型やインターフェースの例
// タイマーアプリ
public class Timer {
interface Observer { // 画面出力用クラス
void update();
}
class Observable { // Observerへ表示の更新を通知する
java.util.List observers = new java.util.LinkedList();
void addObserver(Observer o) {
observers.add(o);
}
void notifyObservers() {
for (int i=0 ; i<observers.size() ; i++) {
Observer o = (Observer)observers.get(i);
o.update();
}
}
}
class ProgressView implements Observer {
int count = 0;
String printValue = "";
public void countUp(int v) {
count += v;
printValue = String.valueOf(count);
}
@Override
public void update() {
System.out.print("\n\n経過時間:");
System.out.print(printValue + "[sec]");
}
}
class ResultView implements Observer {
public long getStartTime() {
return startTime;
}
public void setStartTime(long startTime) {
this.startTime = startTime;
}
public long getStopTime() {
return stopTime;
}
public void setStopTime(long stopTime) {
this.stopTime = stopTime;
}
public int getStartValue() {
return startValue;
}
public void setStartValue(int startValue) {
this.startValue = startValue;
}
long startTime;
long stopTime;
int startValue;
public void update() {
System.out.println("");
System.out.println("開始時刻:" + startTime);
System.out.println("カウント:" + startValue);
System.out.println("終了時刻:" + stopTime);
}
}
final static long INTERVAL = 1000;
ResultView resultView = new ResultView(); //
ProgressView progressView = new ProgressView(); //
Observable view = new Observable(); //
int count; //
// コンストラクタ
Timer() {
count = 12;
resultView.setStartValue(count);
view.addObserver(progressView); //
view.addObserver(resultView); //
}
public void execute() throws Exception {
resultView.setStartTime(System.currentTimeMillis()); //
while (count > 0) {
Thread.sleep(INTERVAL);
count--;
progressView.countUp(1); //
view.notifyObservers(); //
}
resultView.setStopTime(System.currentTimeMillis()); //
view.notifyObservers(); //
}
public static void main(String[] args) throws Exception {
Timer app = new Timer();
app.execute();
}
}
以上是关于java ネストした型やインターフェースの例的主要内容,如果未能解决你的问题,请参考以下文章
java 継承とインターフェースの使い方阶层が1つのポリモーフィズム
java 継承とインターフェースの使い方复数レベルのポリモーフィズム
Apex スケジューラを使用したジョブのスケジュール
markdown ネストしたリレーションで,亲を保存したときに子も保存されるようにする
Python语音合成(日文翻译)
csharp IPickupインターフェースを持つコンポーネンををInjectする例