Java 创建对象以记录用户分数
我正在创建一个测验类型的控制台应用程序,根据答案的正确与否记录用户的分数。我想知道(因为有多个类别),创建一个score类而不是将它单独放在方法中是不是更好。如果是这样的话,实施这一点的最佳方式是什么。外部资源也非常受欢迎 当前代码如下所示Java 创建对象以记录用户分数,java,Java,我正在创建一个测验类型的控制台应用程序,根据答案的正确与否记录用户的分数。我想知道(因为有多个类别),创建一个score类而不是将它单独放在方法中是不是更好。如果是这样的话,实施这一点的最佳方式是什么。外部资源也非常受欢迎 当前代码如下所示 import java.util.Scanner; public class DummyQuiz { static Scanner input = new Scanner(System.in); static int score = 0;
import java.util.Scanner;
public class DummyQuiz {
static Scanner input = new Scanner(System.in);
static int score = 0;
public static void category1()
{
int answer1;
System.out.println("Question 1");
System.out.println("1) answer 1");
System.out.println("2) answer 2");
answer1 = input.nextInt();
if(answer1 == 1)
{
System.out.println("Correct!\n");
score++;
}
else
{
System.out.println("Incorrect\n");
}
}//category1
public static void main(String []args){
category1();
// Output final score here
}
}
我将在两种情况下将值封装在新类中:
在你的例子中,它只是一个递增的
int
,所以你应该很好,尤其是对于这样一个小项目。但是无论如何,创建一个类也不会错。考虑这样做:
public static int category1()
{
int answer1;
System.out.println("Question 1");
System.out.println("1) answer 1");
System.out.println("2) answer 2");
answer1 = input.nextInt();
if(answer1 == 1)
{
System.out.println("Correct!\n");
return 1;
}
else
{
System.out.println("Incorrect\n");
return 0;
}
}//category1
public static void main(String []args){
score += category1();
}
你现在这样做应该没有问题。您应该将score设置为私有变量,以便其他类不能修改它。创建一个score对象对于一个基本类型来说是过分的
如果你想对类/对象进行一些练习,请考虑创建一个类别对象,该对象包含可以从主类调用的问题对象。
< P>我会敦促你先把问题清理成对象。请注意,问题应负责确定答案是否正确。你创建一个问题集合(或数组),打印它们(调用toString),通过调用isAnswerCorrect测试正确性,我想你会发现评分很容易(通过测试你的问题集合/数组大小,你知道一开始会问多少个问题):我会用几种不同的方法,不知道你有多新,但你可能想用一种你觉得最舒服的 首先,可以在同一个类中使用HashMap
HashMap<Integer, Boolean> responses = new HashMap<Integer, Boolean>(); //<K (Question #),V (Correct response)>
HashMap responses=newhashmap()//
要添加到此hashmap,只需使用
response.put(<question number>, <correct response?>);
response.put(,);
例如,如果您想将其打印到控制台
for (int i = 0; i < responses.keySet().size(); i++){
System.out.println(responses.keySet().get(i)+" "+responses.values().get(i));
}
for(int i=0;i
如果您想用另一种方法来创建一个类
public class answers{
public List<Boolean> repsonse = new ArrayList<Boolean>();
public void put(int num, boolean response){
numbers.set(num,response);
}
public boolean getRepsonse(int num){
return numbers.get(num)
}
}
公共课堂答案{
public List repsonse=new ArrayList();
公共void put(int num,布尔响应){
设置(num,response);
}
公共布尔getRepsonse(int-num){
返回数字。获取(num)
}
}
但这种方法确实是多余的
希望这会有所帮助请注意,我是java新手,这只是一个虚拟源代码。如果您存储的只是一个计算正确问题数量的int,那么编写一个类可能会有点太多。如果您有多个类别,最好让类别方法根据正确/不正确返回1/0,然后在主方法中增加分数。
public class answers{
public List<Boolean> repsonse = new ArrayList<Boolean>();
public void put(int num, boolean response){
numbers.set(num,response);
}
public boolean getRepsonse(int num){
return numbers.get(num)
}
}