Survey类将有一个静态类变量,用于存储当前响应者的ID。当受访者完成调查时,此值将增加1。 Survey类将有一个实例变量来保存调查的标题。 Survey类应该有两个重载的构造函数。 第一个构造函数应该不带参数。它应将调查标题设置为默认值“客户调查”。 第二个构造函数应该接受调查标题的String值。它应该将静态响应者ID重置为零。它应该将调查标题设置为传递给构造函数的值。 调查类应该有一个generateRespondentId()方法,该方法返回响应者ID的下一个值。此方法应将响应者ID的静态实例变量增加一个。
public class Survey {
String surveyTitle = "";
static int respondentID = 0;
static int generateRespondentID(){
return ++respondentID;
}
public Survey(){
surveyTitle = "Customer Survey";
}
public Survey(String newSurveyTitle){
respondentID=0;
}
public static void main(String[] args) {
Survey s = new Survey();
System.out.println(s.getSurveyTitle());
System.out.println(s.generateRespondentID());
System.out.println();
Survey s2 = new Survey("My Survey");
System.out.println(s2.getSurveyTitle());
System.out.println(s2.generateRespondentID());
System.out.println();
System.out.println(s2.generateRespondentID());
System.out.println();
}
}
这是我到目前为止所拥有的。我正在努力与第二个构造函数,它应该将调查标题设置为传递给构造函数的值。
答案 0 :(得分:0)
我想这是你想要实现的,在阅读完你的代码之后,我能够理解你正在尝试学习如何使用带有getter和setter的Constructors,你遇到的问题是你没有声明财产调查标题
`
public class Survey {
private String surveyTitle;
public String getSurveyTitle() {
return surveyTitle;
}
static int respondentID = 0;
static int generateRespondentID(){
return ++respondentID;
}
public Survey(String surveyTitle) {
this.surveyTitle = surveyTitle;
}
public Survey() {
surveyTitle = "Customer Survey";
}
public static void main(String[] args) {
Survey s = new Survey();
System.out.println(s.getSurveyTitle());
System.out.println(Survey.generateRespondentID());
System.out.println();
Survey s2 = new Survey("My Survey");
System.out.println(s2.getSurveyTitle());
System.out.println(s2.generateRespondentID());
System.out.println();
System.out.println(s2.generateRespondentID());
System.out.println();
}
}
`
答案 1 :(得分:0)
第一类变量定义为private private
private String surveyTitle;
private static int respondentID
并通过其getter和setter访问它们
第二个构造函数将收到调查的标题,只应分配其先前声明的私有变量并获取您的getter
public Survey(String newSurveyTitle){
this.surveyTitle = newSurveyTitle;
this.respondentID=0;
}
答案 2 :(得分:0)
一些注意事项:
段:
public class Survey {
static AtomicInteger respondentID = new AtomicInteger(0);
final private String surveyTitle;
public Survey(String surveyTitle) {
this.surveyTitle = surveyTitle;
}
public Survey() {
this("Customer Survey");
}
static int generateRespondentID() {
return respondentID.incrementAndGet();
}
public String getSurveyTitle() {
return surveyTitle;
}
//Other methods...
}
答案 3 :(得分:0)
根据您的要求,以下代码应该有效。
public Survey(String newSurveyTitle){
respondentID=0;
SurveyTitle = newSurveyTitle;
}
您错过了在构造函数中设置调查标题的代码。
答案 4 :(得分:-1)
第二个构造函数应该接受调查标题的String值。
您需要将调查标题字段设置为String
值,该值是作为构造函数的参数提供的。如果您不知道如何执行此操作,我建议您对Java中的赋值运算符进行一些研究。