在Java接口内设置内容
我只是在学习这个界面,现在我面临着如何在界面内提供内容的问题 我读了这篇文章 它的内容让我想到了一些事情——当他在里面使用界面时在Java接口内设置内容,java,oop,Java,Oop,我只是在学习这个界面,现在我面临着如何在界面内提供内容的问题 我读了这篇文章 它的内容让我想到了一些事情——当他在里面使用界面时 public interface SlotListener { void hasChanged(Slot slot); } 他也创造了这个 private void notifyListeners() { for (SlotListener slotListener : slotListeners) { slotListener.hasC
public interface SlotListener {
void hasChanged(Slot slot);
}
他也创造了这个
private void notifyListeners() {
for (SlotListener slotListener : slotListeners) {
slotListener.hasChanged(this);//this is Slot class
}
}
如何为hasChanged()方法提供内容?
我真的不明白这个界面的意思。。。
我的意思是,hasChanged()中没有任何内容(当然是因为它是am接口),但为什么它指向Slot类?这种方法需要什么内容,如何使用
也许你需要看看上面关于这个问题的链接
我已经在谷歌上学习了界面,但我只找到了一些基本的教程,没有像这样的案例。我已经在一些社区询问过这个问题,但没有结果。一个
接口
不是一个真正的类。它只是有一些方法签名。实类通过实现接口
中的所有方法来实现接口
SlotListener是一个接口。当您想要实现这个接口时,您应该创建一个具有hasChanged(Slot-Slot)
方法的类
public class realClass implements SlotListener {
public void hasChanged(Slot slot){
//Some code here...
}
}
有关接口的更多信息,请阅读。
这是观察者设计模式的典型案例。在这个设计模式中,您有一个监听器集合(您的SlotListener)和一个对象(您的Slot),当某些内容发生更改时,该对象将通知他的监听器。 Slot类还应该包含一个方法
addListener(SlotListener sl)
,该方法将向slotListeners列表中添加一个侦听器。
之后,您只需创建一个实现SlotListener
public class MyListener implements SlotListener{
void hasChanged(Slot slot){
System.out.println("Slot " + slot.toString() + " has changed");
}
}
请看这里:
当您创建一个接口时,您在其他地方有一个实现该接口的类。然后,实现类为接口方法提供具体的方法
查看类:它@Override并实现接口方法:
public class SlotActor extends ImageButton implements SlotListener {
// some other code
@Override
public void hasChanged(Slot slot) {
setStyle(createStyle(skin, slot));
}
}
java接口必须由类实现。只需创建一个实现SlotListener接口的新类。然后,您的新类必须提供void hasChanged(槽);方法实现。是的,Slot类中有addlistener方法。所以现在我必须做的是在该方法中提供内容,在IPElement slot listener的另一个类中创建slot类的对象,然后从那里访问它?你说的“在该方法中提供内容”是什么意思?我的意思是内容是hasChanged()中的代码。我的意思是在Slot类中,方法slotListener.hasChanged(这个);调用(有一个像你说的addlistener),然后如果我想在这个slot类“hasChanged”内提供内容,我必须创建另一个实现slotlistener的类,然后在另一个类内创建slot对象,所以当我调用这个slot.addlistener()时,hasChanged inside slot将引用另一个类内的hasChanged。我说得对吗?我想你说的很复杂,但我明白:)试着用java做一个项目,使用这种模式或在互联网上搜索信息