new*_*ser 3 java string overriding
我按照以下说明骑着斗巴.我无法弄清楚如何使用toString()方法来打印我的数据值.我也不知道如何将颜色打印成字符串来表示"黑色"或"蓝色".我无法弄清楚如何使用布尔值来表示"已连接"或"已断开连接".
创建一个名为HeadPhone的Java类来表示耳机集.该课程包含:
•三个常量,分别为LOW,MEDIUM和HIGH,值为1,2和3,表示耳机音量.
•名为volume的私有int数据字段,用于指定耳机的音量.默认音量为MEDIUM.
•名为pluggedIn的私有布尔数据字段,用于指定是否插入耳机.默认值为false.
•名为manufacturer的私有字符串数据字段,用于指定耳机制造商的名称.
•名为headPhoneColor的私有颜色数据字段,用于指定耳机的颜色.
•所有数据字段的getter和setter方法.
•无参数构造函数,用于创建默认耳机.
•名为toString()的方法,返回描述耳机当前字段值的字符串.
•名为changeVolume(value)的方法,用于将耳机的音量更改为传递给方法的值
创建一个构造至少3个HeadPhone对象的TestHeadPhone类.
public class TestHeadPhone {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// construct an object
HeadPhone headPhone = new HeadPhone();
System.out.println("Manufacturer: " + headPhone.getManufacturer());
System.out.println("Color: " + headPhone.getColor());
System.out.println("Currently: " + headPhone.getStatus());
System.out.println("Volume: " + headPhone.getVolume());
if(headPhone.getStatus() == false){
System.out.println("Please plug the Head Phones into a device.");
}
headPhone.setNewHeadphone();
System.out.println("\n" + "Manufacturer: " +
headPhone.getManufacturer());
System.out.println("Color: " + headPhone.getColor());
System.out.println("Currently: " + headPhone.getStatus());
System.out.println("Volume: " + headPhone.getVolume());
if(headPhone.getStatus() == true){
System.out.println("Currently playing classical music.");
}
}
}
package testheadphone;
// import color class
import java.awt.Color;
/**
*
* @author
*/
public class HeadPhone {
// class variables
private static final int LOW = 1;
private static final int MEDIUM = 2;
private static final int HIGH = 3;
private int volume = MEDIUM;
private boolean pluggedIn = false;
private String manufacturer;
private Color headPhoneColor;
//default constructor method
public HeadPhone(){
this.manufacturer = "Bose";
this.headPhoneColor = Color.black;
this.volume = MEDIUM;
this.pluggedIn = false;
} // end default constructor
// getter method
public String getManufacturer(){
return manufacturer;
}
// getter method
public Color getColor(){
return headPhoneColor;
}
// getter method
public int getVolume(){
return volume;
}
// getter method
public boolean getStatus(){
return pluggedIn;
}
public int changeVolume(int change){
volume = change;
return volume;
}
// setter method
public void setNewHeadphone(){
manufacturer = "JVC";
headPhoneColor = Color.blue;
pluggedIn = true;
volume = HIGH;
}
// @Override
// public String toString(){
// return "Head Phone 1 has the folllowing parameters: " + "\n" +
// "Manufacturer: " + this.manufacturer + "\n" + "Color: Black" +
// "\n" + "Volume is set to: " + this.volume + "\n" +
// "Currently: disconnected" + "\n" + "Please plug the Head Phone"
// + " into a device";
// }
}
Run Code Online (Sandbox Code Playgroud)
我的输出: 制造商:Bose颜色:java.awt.Color [r = 0,g = 0,b = 0]目前:false体积:2请将Head Phones插入设备.
制造商:JVC颜色:java.awt.Color [r = 0,g = 0,b = 255]目前:true音量:3目前正在播放古典音乐.
所需输出: 制造商:Bose颜色:黑色当前:已断开连接音量设置为:MEDIUM请将Head Phones插入设备.
Head Phone 2具有以下参数:制造商:JVC颜色:蓝色当前:已连接音量设置为:LOW当前正在播放古典音乐播放列表
您可以覆盖toString()要打印的对象的方法.但是,有些对象已经toString()以人类可读的格式为您实现了它们的方法.即Color班级.
...
System.out.println("Color: " + headPhone.getColor().toString());
...
Run Code Online (Sandbox Code Playgroud)
另一方面,您可以自由指定String通过覆盖将对象显示为什么格式.(除非对可以/不可修改的内容有类限制,即final关键字.)