2014-02-05 5 views
0

퀴즈 점수에 대한 프로그램을 작성하고 있는데 주 메서드에 배열이 있고 별도의 클래스에 적절한 생성자와 메서드를 제공해야합니다. "addQuizScore (int score) ","getTotalScore ". 나는 아직도 Java에 익숙하지 않고 이것을 올바르게 수행하는 방법에 매달 렸습니다.배열을 다른 클래스에 전달하는 방법

import java.util.*; 

public class StudentQuiz 
{ 
    public static void main(String[] args) 
    { 

     int [] score = {7,8,5,6,0,10,7,6}; 

     StudentQuizInfo newStudent = new StudentQuizInfo(score); 

     System.out.println("total score: " +newStudent.getTotalScore()); 

    } 
} 


import java.util.*; 
public class StudentQuizInfo { 

    private int overallScore = 0; 
    private int totalScore = 0; 


    public StudentQuizInfo(int[] score) { 
    } 

    public int addQuizScore(int [] score) 
    { 
     int k; 
     int overallScore = 0; 
     for(k = 0; k <score.length; k++) 
     { 
      overallScore = overallScore + score[k]; 
      } 
     return overallScore; 
     } 

    int getTotalScore() 
    { 
     int totalScore = overallScore; 
     return totalScore; 
     } 
    } 

ATM 코드가 totalscore: 0인데 잘못 인쇄되었습니다.

현재 코드가 매우 형편 없다는 것을 알고 있으므로 어떻게 수정할 수 있습니까? 특히 addQuizScore를 올바르게 사용하는 방법에 대해 많이 고맙게 생각합니다.

StudentQuizInfo newStudent = new StudentQuizInfo(score); 

newStudent.addQuizScore(score); 

추가 덕분에

+2

왜 넣지'addQuizScore (점수)와 같은 생성자'생성자? – johnchen902

답변

3

문제를 해결해야한다.

또한 아키텍처가 약간 이상합니다. 당신의 생성자는 지금 쓰여지는 방식대로 아무것도하지 않습니다. addQuizScore이라는 메서드를 사용하기 때문에 StudentQuizInfo 개체 안에 점수를 유지할 필요가 없으므로 클래스 생성자에서 int[] score 매개 변수를 안전하게 제거 할 수 있습니다.

변수 overallCoretotalScore도 중복되는 것처럼 보입니다.

+3

나는 그것이 적절한 방법이라고 생각하지 않는다. 생성자에서 매개 변수 점수를 제거하거나 addQuizScore 메서드를 사용하십시오. 둘 다 지키지 마라. –

+1

클래스 변수'overallScore'가 그 메소드에서 다루어지지 않았기 때문에 저는 그렇게 생각하지 않습니다. 그러나 솔루션에 추가적으로'this.overallScore = overallScore'를'return overallScore'를 추가하는 것이 트릭을 수행해야합니다. – Kayz

0

변경이

public StudentQuizInfo(int[] score) { 
    addQuizScore(score) 
} 

또는

StudentQuizInfo newStudent = new StudentQuizInfo(score); 
newStudent.addQuizScore(score); 
+1

후자의 코드에서 왜 생성자에게 '점수'를 전달해야합니까? – johnchen902

관련 문제