如何解决在构造函数上声明日期
刚开始学习Java并完成练习。
我有以下代码:
package exercise1;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Singer {
//Class Parameters
int id;
String name;
String address;
Date dob;
int nAlbums;
//Overloaded Constructors
public Singer()
{
}
public Singer(int id)
{
this.id = id;
}
public Singer(int id,String name)
{
this.id = id;
this.name = name;
}
public Singer(int id,String name,String address)
{
this.id = id;
this.name = name;
this.address = address;
}
public Singer(int id,String address,Date dob)
{
this.id = id;
this.name = name;
this.address = address;
this.dob = dob;
}
public Singer(int id,Date dob,int nAlbums)
{
this.id = id;
this.name = name;
this.address = address;
this.dob = dob;
this.nAlbums = nAlbums;
}
//All Setters
public void setId (int id)
{
this.id = id;
}
public void setName (String name)
{
this.name = name;
}
public void setAddress (String address)
{
this.address = address;
}
public void setDOB (Date dob)
{
this.dob = dob;
}
public void setNAlbums (int nAlbums)
{
this.nAlbums = nAlbums;
}
public void setSinger (int id,int nAlbums)
{
this.id = id;
this.name = name;
this.address = address;
this.dob = dob;
this.nAlbums = nAlbums;
}
//All Getters
public int ID ()
{
return id;
}
public String Name ()
{
return name;
}
public String Address ()
{
return address;
}
public Date DOB ()
{
return dob;
}
public int NAlbums ()
{
return nAlbums;
}
public String Display()
{
return "\nID: " + id + "\nName: " + name + "\nAddress: " + address + "\nBirthday: " +dob+ "\nNumber of Albums: "+nAlbums;
}
public static void main(String[] args) {
String pattern = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Singer singer1 = new Singer();
System.out.println("\nID (singer1): "+ singer1.id);
System.out.println("\nName (singer1) :"+ singer1.name);
System.out.println("\nAddress (singer1) :"+ singer1.address);
System.out.println("\nBirthday (singer1) :"+ singer1.dob);
System.out.println("\nNumber of Albums (singer1) :"+ singer1.nAlbums);
singer1.setSinger(1,"Davy Jones","12 Main Street",sdf.parse("1947-01-08"),27);
System.out.println("\nsinger1 Details: "+ singer1.Display());
}
}
因此发生了两个错误:
- 要我扔一个假面;
- 即使我接受更正,我也会通过以下格式接收日期:
singer1 Details:
ID: 1
Name: Davy Jones
Address: 12 Main Street
Birthday: Wed Jan 08 00:01:00 EST 1947
Number of Albums: 27
使用Eclipse
谢谢您的帮助!
编辑
感谢您的帮助,这是最终代码:
package exercise1;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Singer {
//Class Parameters
int id;
String name;
String address;
LocalDate dob;
int nAlbums;
//Overloaded Constructors
public Singer()
{
}
public Singer(int id)
{
this.id = id;
}
public Singer(int id,LocalDate dob)
{
this.id = id;
this.name = name;
this.address = address;
this.dob = dob;
}
public Singer(int id,LocalDate dob,int nAlbums)
{
this.id = id;
this.name = name;
this.address = address;
this.dob = dob;
this.nAlbums = nAlbums;
}
//All Setters
public void setId (int id)
{
this.id = id;
}
public void setName (String name)
{
this.name = name;
}
public void setAddress (String address)
{
this.address = address;
}
public void setDOB (LocalDate dob)
{
this.dob = dob;
}
public void setNAlbums (int nAlbums)
{
this.nAlbums = nAlbums;
}
public void setSinger (int id,int nAlbums)
{
this.id = id;
this.name = name;
this.address = address;
this.dob = dob;
this.nAlbums = nAlbums;
}
//All Getters
public int ID ()
{
return id;
}
public String Name ()
{
return name;
}
public String Address ()
{
return address;
}
public LocalDate DOB ()
{
return dob;
}
public int NAlbums ()
{
return nAlbums;
}
public String Display()
{
return "\nID: " + id + "\nName: " + name + "\nAddress: " + address + "\nBirthday: " +dob+ "\nNumber of Albums: "+nAlbums;
}
public static void main(String[] args) {
Singer singer1 = new Singer();
System.out.println("\nID (singer1): "+ singer1.id);
System.out.println("\nName (singer1) :"+ singer1.name);
System.out.println("\nAddress (singer1) :"+ singer1.address);
System.out.println("\nBirthday (singer1) :"+ singer1.dob);
System.out.println("\nNumber of Albums (singer1) :"+ singer1.nAlbums);
singer1.id = 1;
singer1.name = "Davy Jones";
singer1.address = "12 Main Street";
String string = "January 08,1947";
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("MMMM dd,yyyy",Locale.ENGLISH);
LocalDate date = LocalDate.parse(string,pattern);
singer1.dob = date;
singer1.nAlbums = 27;
System.out.println("\nAll singer properties set\n");
System.out.println("\nsinger1 Details: "+ singer1.Display());
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。