Observable은 프로그램의 다른 섹션이 관찰할 수 있는 하위 클래스를 구성할 수 있는 Java 프로그래밍 언어의 클래스입니다. 관찰 클래스는 이 서브클래스의 객체가 변경되면 알림을 받습니다. 관찰자에게 변경 사항이 통보되면 update() 메서드가 호출됩니다. Observable 클래스는 java.util 패키지에서 사용할 수 있습니다. 클래스의 하위 클래스는 애플리케이션이 관찰해야 하는 객체를 설명하는 데 사용될 수 있으며, 관찰 가능한 객체에 하나 이상의 관찰자가 있을 수도 있습니다. 관찰 클래스는 관찰 클래스가 구현해야 하는 update() 메서드를 지정하는 Observer 인터페이스를 구현해야 합니다.
광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사관찰 대상은 두 가지 기본 규칙을 준수해야 합니다.
update() 전에 관찰된 객체는 setChanged() 및 informObservers() 메서드를 모두 호출해야 합니다.
Observable 클래스 선언
java.util.Observable 클래스 선언은 다음과 같습니다.
public class Observable extends Object
관찰 가능 클래스 생성자
아래는 관찰 가능한 클래스의 생성자입니다.
Observable 클래스의 메서드는 다음과 같습니다.
프로그램 내에서 관찰 대상과 관찰자 간의 상호 작용은 일반적으로 다음과 같은 일련의 이벤트 형식을 취합니다.
아래는 Java Observable의 예입니다.
setChanged() 메소드 유무에 관계없이 변경을 수행하기 위한 Java의 Observable의 예
코드:
import java.util.*; // This is the observer class class ObserverEx implements Observer { public void update(Observable obj, Object arg) { System.out.println("Update in an observer side."); } } // This is the obsrvable class class ObservableEx extends Observable { void change_with_setChanged() { setChanged(); System.out.println("Change the status with setChanged : " + hasChanged()); notifyObservers(); } void change_without_setChanged() { System.out.println("Change status with setChanged : " + hasChanged()); notifyObservers(); } } public class HelloWorld { public static void main(String args[]) { ObservableEx Observable = new ObservableEx(); ObserverEx observer1 = new ObserverEx(); ObserverEx observer2 = new ObserverEx(); Observable.addObserver(observer1); Observable.addObserver(observer2); Observable.change_with_setChanged(); Observable.change_without_setChanged(); int no = Observable.countObservers(); System.out.println("The number of observers for this Observable are : " + no); } }
출력:
위 프로그램과 마찬가지로 Observable 클래스를 확장하여 Observable 사용자 정의 클래스 ObservableEx를 생성하고, 업데이트 구현을 제공하는 클래스인 Observer 인터페이스를 구현하여 Observer 사용자 정의 클래스 ObserverEx를 생성합니다( ) 방법. 다음으로, ObservableEx 클래스에는 두 가지 메서드인change_with_setChanged()와change_without_setChanged()가 포함되어 있습니다.
The method change_with_setChanged() call the setChanged() and then notify all the observer, which means the changes done here with setChanged will be notified to all the observer.Whereas the method change_without_setChanged() does not call the setChanged() and notify all the observers, which means the changes done here without setChanged will not show to all the observer.
Then, in the main function, one Observable and two Observer objects are created, and also add both the Observer object to this Observable. Next, on Observer objects, the change_with_setChanged() method is called, which notifies both the observers and called the update() method, which prints the message, whereas the change_without_setChanged() method does not call the update() method of the observers. And next finding and printing the number of observers, as we can see in the above output.
Example for Observable in Java to perform changes with or without clearChanged() method.
Code:
import java.util.*; // This is the observer class class ObserverEx implements Observer { public void update(Observable obj, Object arg) { System.out.println("Update in an observer side."); } } // This is the obsrvable class class ObservableEx extends Observable { void change_with_clearChanged() { setChanged(); System.out.println("Removes all the changes made by setChanged method."); // clearChanged method clearChanged(); notifyObservers(); } void change_without_clearChanged() { setChanged(); System.out.println("Does not removes all the changes made by setChanged method. "); notifyObservers(); } } public class HelloWorld { public static void main(String args[]) { ObservableEx Observable = new ObservableEx(); ObserverEx observer1 = new ObserverEx(); ObserverEx observer2 = new ObserverEx(); Observable.addObserver(observer1); Observable.addObserver(observer2); Observable.change_with_clearChanged(); Observable.change_without_clearChanged(); int no = Observable.countObservers(); System.out.println("The number of observers for this Observable are : " + no); Observable.deleteObserver(observer2); no = Observable.countObservers(); System.out.println("The number of observers after delete for this Observable are : " + no); } }
Output:
As in the above program, the classes ObservableEx and ObserverEx are created. Next, the class ObservableEx contains two methods change_with_clearChanged() and change_without_clearChanged(). The method change_with_clearChanged() call the setChanged(), clearChanged() which removes all the changes made by setChanged method. Whereas the method change_without_clearChanged() does not call the clearChanged() which means the changes made by setChanged method will not remove.
Then, in the main function, one Observable and two Observer objects are created, and also add both the Observer object to this Observable. Next, on Observer objects, the change_with_clearChanged() method is called, which does not call the update() method of the observers, whereas the change_without_setChanged() method calls the update() method of the observers. And next, delete the observer1 and finding reaming Observer and printing, as we can see in the above output.
The Observable class is available in java.util package. An Observable is a class in Java that allows the creation of an Observable subclass that other sections of the program can observe.
위 내용은 Java에서 관찰 가능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!