我如何在另一个私有方法中使用一个方法的return语句?

Ren*_*nuz 0 java methods class

这是我到目前为止的代码:

import java.util.*;

public class VoteRecorder 
{
// Variables and instance variables
 public static String nameCandidatePresident1;
 public static String nameCandidatePresident2;
 public static String nameCandidateVicePresident1;
 public static String nameCandidateVicePresident2;
 public static int votesCandidatePresident1;
 public static int votesCandidatePresident2;
 public static int votesCandidateVicePresident1;
 public static int votesCandidateVicePresident2;
 private int myVoteForPresident;
 private int myVoteForVicePresident;


 public VoteRecorder()
 {
     nameCandidatePresident1 = "null";
     nameCandidatePresident2 = "null";
     nameCandidateVicePresident1 = "null";
     nameCandidateVicePresident2 = "null";
     votesCandidatePresident1 = 0;
     votesCandidatePresident2 = 0;
     votesCandidateVicePresident1 = 0;
     votesCandidateVicePresident2 = 0;
     myVoteForPresident = 0;
     myVoteForVicePresident = 0;     
 }


 public void setCandidatesPresident(String name1, String name2)
 {
     nameCandidatePresident1 = name1;
     nameCandidatePresident2 = name2;

 }

 public void setCandidatesVicePresident(String name1, String name2)
 {
    nameCandidateVicePresident1 = name1;
    nameCandidateVicePresident2 = name2;
 }

 public static void resetVotes()
 {
     votesCandidatePresident1 = 0;
     votesCandidatePresident2 = 0;
     votesCandidateVicePresident1 = 0;
     votesCandidateVicePresident2 = 0;   
 }

 public static String getCurrentVotePresident()
 { 
     return nameCandidatePresident1 + ":" + votesCandidatePresident1 + "\n" +
            nameCandidatePresident2 + ":" + votesCandidatePresident2;
 }

 public static String getCurrentVoteVicePresident()
 {
     return nameCandidateVicePresident1 + ":" + votesCandidateVicePresident1 +  "\n" +
            nameCandidateVicePresident2 + ":" + votesCandidateVicePresident2;
 }


 public void getAndConfirmVotes()
 {

 }


private String getVotes()
{
     Scanner keyboard = new Scanner(System.in);
     System.out.println("please vote for a President or vice president "     + nameCandidatePresident1 + ", " + nameCandidatePresident2 + ", " + nameCandidateVicePresident1
             + " or " + nameCandidateVicePresident2);
     String presidentVote = keyboard.nextLine();
     if (presidentVote.equalsIgnoreCase(nameCandidatePresident1))    
         return nameCandidatePresident1;

     if(presidentVote.equalsIgnoreCase(nameCandidatePresident2))     
         return nameCandidatePresident1;     

     System.out.println("please vote for a Vice president " + nameCandidateVicePresident1 + " or" + nameCandidateVicePresident2);
     String vicePresidentVote = keyboard.nextLine();

     if(vicePresidentVote.equalsIgnoreCase(nameCandidateVicePresident1))
         return nameCandidateVicePresident1;

     if(vicePresidentVote.equalsIgnoreCase(nameCandidateVicePresident2))
         return nameCandidateVicePresident2;

     else 
         return "not a valid vote";

}


private boolean confirmVotes()
{
   System.out.println("Your vote for President is:");
   System.out.println("your vote for Vice President is:");
   System.out.println("Is this correct? Yes or No?");
   Scanner keyboard = new Scanner(System.in);
   String answer = keyboard.nextLine();
   if (answer.equalsIgnoreCase("Yes"))
        return true;
   else 
       return false;
}

private void recordVote()
{
puscode: If confirmVotes returns true, take the nameCandidate, and ++ to votesCandidate of the   same type
Copy this If statement four times, one for each of the candidates, 2 president and 2 vp.
Else or If confirmvotes returns false, put output saying that  the votes were not confirmed.

}


}
Run Code Online (Sandbox Code Playgroud)

假设我拥有所有这些代码,让我们看一下方法getVotes()和confrimVotes(),在getVotes()中,用户选择一个候选者,然后返回该候选者.我如何获得返回语句以显示其他方法中的其他位置?就像在confirmVote()中我想这样做

 System.out.println("Your vote for President is: (PresidentialCandidate return statement");
Run Code Online (Sandbox Code Playgroud)

但我怎么能这样做?

Chr*_*per 5

这不是您问题的直接答案,但我认为通过利用面向对象编程的一些功能,您的代码可以变得更加简单.

您将不同位置的4个候选人的多种类型的信息存储为单独的变量,这使得您的课程变得非常笨拙.

(在我看来)更好的方法是让一个Candidate类来存储关于单个候选人的信息,然后你的类看起来如下:

class Candidate {
    String Name;
    int votes;
}

class VoteRecorder {
     Candidate[] presidents;
     Candidate[] vicePresidents;

     Candidate myVoteForPresident;     //Or even make these both ints.
     Candidate myVoteForVicePresident;
}
Run Code Online (Sandbox Code Playgroud)

课程可以进一步完善,但这将是一个开始.每当您看到多条信息描述同一实体被重复多次时,就可以通过添加一个类来代替它们来简化您的生活.

编辑(专门回答问题):

如果您想有效地执行以下操作:

System.out.println("你对总统的投票是:( PresidentialCandidate return statement");

你可以写这样的东西:

String voteResult = getVotes();
System.out.println("Your vote for President is: " + voteResult);
Run Code Online (Sandbox Code Playgroud)

或者在一行中:

 System.out.println("Your vote for President is: " + getVotes());
Run Code Online (Sandbox Code Playgroud)

每次运行此代码时,它都会提示用户输入.如果要将结果保存到下一次,则必须将其保存到属性,例如,在类中包含字符串,然后首先为其指定值.然后稍后使用它而不是局部变量voteResult.