Java Observable setChanged()方法与示例

可观察类setChanged()方法

  • setChanged()方法在java.util包中可用。

  • setChanged()方法用于将此Observable对象状态设置为已更改。

  • setChanged()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • setChanged()方法在设置更改状态时不会引发异常。

语法:

    protected void setChanged();

参数:

  • 它不接受任何参数。

返回值:

该方法的返回类型为void,不返回任何内容。

示例

//Java程序演示示例 
//setChanged()Observable的void方法的说明

import java.util.*;

//实现观察者类 
class Observers implements Observer {
    public void update(Observable obj, Object ob) {
        System.out.println("Obs is added");
    }
}

//实施观察类
class Observed extends Observable {
    //函数调用setChanged()
    void setChange() {        setChanged();
        System.out.println("setChanged(): " + hasChanged());        notifyObservers();
    }

    //函数调用
    void unsetChange() {
        System.out.println("unsetChanged(): " + hasChanged());        notifyObservers();
    }
}

public class SetChanged {
    //实现主要方法
    public static void main(String args[]) {
        Observed observed = new Observed();
        Observers obs = new Observers();
        observed.addObserver(obs);
        observed.setChange();
        observed.unsetChange();
    }
}

输出结果

setChanged(): true
Obs is added
unsetChanged(): false