为什么我不必申报一个“a”;新";Java中的对象?
为这可能是一个简单的问题道歉。我找不到任何直接的答案来回答这个问题。在下面的代码中,为什么不要求我创建“新”对象?我到底在给sequencer分配什么为什么我不必申报一个“a”;新";Java中的对象?,java,Java,为这可能是一个简单的问题道歉。我找不到任何直接的答案来回答这个问题。在下面的代码中,为什么不要求我创建“新”对象?我到底在给sequencer分配什么 import javax.sound.midi.*; public class MusicTest1 { public void play() { Sequencer sequencer = MidiSystem.getSequencer(); System.out.println("We got a
import javax.sound.midi.*;
public class MusicTest1 {
public void play() {
Sequencer sequencer = MidiSystem.getSequencer();
System.out.println("We got a sequencer");
} // close play
public static void main(String[] args) {
MusicTest1 mt = new MusicTest1();
mt.play();
}
}
如果您指的是
Sequencer Sequencer=MidiSystem.getSequencer()
,则调用类MidiSystem
的静态方法,该方法返回Sequencer
的实例。静态方法为您执行newsequencer()
。函数getSequencer
创建一个新对象并返回它。如果它已经创建了一个对象,则可能返回相同的对象。这就是所谓的单例模式。有一个类似的问题:如果没有看到该方法的代码,您无法确定它是单例模式(可能是工厂),但基于类名,它是有意义的。他们会将工厂称为.newSequencer()或.defaultSequencer()……啊,我明白了。谢谢你的迅速回复。