java定义一个乐器类
时间: 2023-10-02 08:06:24 浏览: 267
可以按照以下方式定义一个乐器类:
```java
public class Instrument {
private String name;
private String type;
public Instrument(String name, String type) {
this.name = name;
this.type = type;
}
public void play() {
System.out.println("Playing " + name + " - " + type);
}
public String getName() {
return name;
}
public String getType() {
return type;
}
public void setName(String name) {
this.name = name;
}
public void setType(String type) {
this.type = type;
}
}
```
在上面的代码中,我们定义了一个Instrument类,它包括乐器的名称和类型。我们还定义了一个play方法,它用于播放乐器,并且可以获取和设置乐器的名称和类型。
相关问题
1、定义一个泛型类Instrument,其中包括一个泛型方法void+play(E+ x)。定义两种乐器类:Cello、Violin可以进行演奏。定义一个测试类进 行测试。程序设计思路:定义两种乐器类
根据提供的引用内容,可以看出本题是关于Java中泛型类和泛型方法的问题。下面是回答:
在Java中,定义泛型类需要在类名后面加上尖括号<>,在尖括号中定义泛型参数。泛型类中的方法也可以是泛型方法,需要在方法返回类型前面加上尖括号<>,在尖括号中定义泛型参数。下面是定义一个泛型类Instrument,其中包括一个泛型方法void play(E x)的示例代码:
```java
public class Instrument<T> {
public void play(T t) {
System.out.println("Playing " + t.toString());
}
}
class Cello {
@Override
public String toString() {
return "Cello";
}
}
class Violin {
@Override
public String toString() {
return "Violin";
}
}
public class Test {
public static void main(String[] args) {
Instrument<Cello> cello = new Instrument<>();
cello.play(new Cello()); // 输出:Playing Cello
Instrument<Violin> violin = new Instrument<>();
violin.play(new Violin()); // 输出:Playing Violin
}
}
```
上述代码中,Instrument类是一个泛型类,其中的play方法是一个泛型方法,可以接受任何类型的参数。Cello和Violin类是两种乐器类,它们都重写了toString方法,用于输出乐器名称。Test类是一个测试类,用于测试Instrument类的play方法。
用Java编程实现一个抽象类的例子: (1)包括一个抽象基类:乐器类Instrument类,包括一个play()抽象方法。 (2)定义一个风琴类Wind类,继承于Instrument类,Wind类重写play方法。 (3)定义一个管弦类Brass类,继承于Instrument类,Brass类重写play方法。 (4)定义一个音乐类Music类,提供一个“public static void tune(Instrument i)”输出曲调的方法,该方法可以传入一个乐器类对象,并进行乐器的演奏(执行其play方法)。 (5)在Music类main方法中测试以上类和方法的使用。
以下是Java代码实现:
```java
abstract class Instrument {
public abstract void play();
}
class Wind extends Instrument {
@Override
public void play() {
System.out.println("Playing Wind instrument...");
}
}
class Brass extends Instrument {
@Override
public void play() {
System.out.println("Playing Brass instrument...");
}
}
class Music {
public static void tune(Instrument i) {
i.play();
}
public static void main(String[] args) {
Instrument wind = new Wind();
Instrument brass = new Brass();
tune(wind);
tune(brass);
}
}
```
在以上代码中,我们定义了一个抽象基类 `Instrument`,其中包括了一个抽象方法 `play()`。接着,我们定义了两个子类 `Wind` 和 `Brass`,分别继承自 `Instrument` 并重写了 `play()` 方法。
最后,我们在 `Music` 类中提供了一个静态方法 `tune(Instrument i)`,该方法接受一个 `Instrument` 对象作为参数,并执行该对象的 `play()` 方法。在 `Music` 类的 `main()` 方法中,我们创建了一个 `Wind` 对象和一个 `Brass` 对象,并分别传入 `tune()` 方法中进行演奏。
阅读全文