【发布时间】:2016-02-29 11:10:24
【问题描述】:
我在优化代码中的用户输入时遇到问题,并且在创建基于 Monthnum 字段中包含的数字返回月份名称的新方法 (GetMonthName) 时遇到问题。我的教授还指出:接受 Month 对象作为参数的 equals 方法。如果 参数对象保存与调用对象相同的数据,此方法应返回 真的。否则,它应该返回 FALSE。我不确定参数对象是否与调用对象拥有相同的数据以及如何处理。我的代码如下:
import java.util.Scanner;
public class testObjectsAndClasses {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.println("Please enter a month number");
int monthNumber = input.nextInt();
Monthnum inputMonthName = new Monthnum(monthNumber);
System.out.println("Enter Month Name, Please Capitalize first Letter");
String monthName = input.next();
Monthnum inputMonthNumber = new Monthnum(monthName);
}
}
class Monthnum{
public int Monthnum;
public String monthName;
public Monthnum(){
Monthnum = 1;
monthName = "January";
}
public Monthnum(int whichMonth){
Monthnum = whichMonth;
if (whichMonth == 1){
monthName = "January";
System.out.println("January");
}
else if (whichMonth == 2){
monthName = "February";
System.out.println("February");
}
else if (whichMonth == 3){
monthName = "March";
System.out.println("March");
}
else if (whichMonth == 4){
monthName = "April";
System.out.println("April");
}
else if (whichMonth == 5){
monthName = "May";
System.out.println("May");
}
else if (whichMonth == 6){
monthName = "June";
System.out.println("June");
}
else if (whichMonth == 7){
monthName = "July";
System.out.println("July");
}
else if (whichMonth == 8){
monthName = "August";
System.out.println("August");
}
else if (whichMonth == 9){
monthName = "September";
System.out.println("September");
}
else if (whichMonth == 10){
monthName = "October";
System.out.println("October");
}
else if (whichMonth == 11){
monthName = "November";
System.out.println("November");
}
else if (whichMonth == 12){
monthName = "December";
System.out.println("December");
}
else {
System.out.println("Invalid input. Please Capitalize the first letter of the month");
}
} //end of cons
public Monthnum(String whichMonth){
if (whichMonth.equals("January")){
Monthnum = 1;
System.out.println(Monthnum);
}
else if (whichMonth.equals("February")){
Monthnum = 2;
System.out.println(Monthnum);
}
else if (whichMonth.equals("March")){
Monthnum = 3;
System.out.println(Monthnum);
}
else if (whichMonth.equals("April")){
Monthnum = 4;
System.out.println(Monthnum);
}
else if (whichMonth.equals("May")){
Monthnum = 5;
System.out.println(Monthnum);
}
else if (whichMonth.equals("June")){
Monthnum = 6;
System.out.println(Monthnum);
}
else if (whichMonth.equals("July")){
Monthnum = 7;
System.out.println(Monthnum);
}
else if (whichMonth.equals("August")){
Monthnum = 8;
System.out.println(Monthnum);
}
else if (whichMonth.equals("September")){
Monthnum = 9;
System.out.println(Monthnum);
}
else if (whichMonth.equals("October")){
Monthnum = 10;
System.out.println(Monthnum);
}
else if (whichMonth.equals("November")){
Monthnum = 11;
System.out.println(Monthnum);
}
else if (whichMonth.equals("December")){
Monthnum = 12;
System.out.println(Monthnum );
}
else
System.out.println("Invalid input");
}
int GetMonthnum (int currentMonthNumber){
Monthnum = currentMonthNumber;
return currentMonthNumber;
}
//public String getMonthName (String monthName)
}
【问题讨论】: