2017-05-21 10 views
-1

我有2個不同的Java文件將數據存儲到數組 Mark.java閱讀和使用不同的java文件

public class Mark 
//class'name has to be the same with file's name 
{ 
private String studentName; 
private int studentMark; 
//studentName and studentMark are private instance variables 
//which cannot be accessed by other classes 

public Mark() //a default constructor 
{studentName = "unknown"; studentMark = 0;} //giving a starting value 
public Mark(String n, int m) //a parameterised constructor 
{studentName = n; studentMark = m;} 

//2 set mthods 
public void setname (String n) 
{studentName = n;} 
public void setmark (int m) 
{studentMark = m;} 

//2 get methods 
public String getname() 
{return studentName;} 
public int getmark() 
{return studentMark;} 


//get Grade method 
public String Grade; 
//"final" means constant 
final int PASS = 50; 
final int CREDIT = 65; 
final int DISTINCTION = 75; 
final int highDISTINCTION = 85; 

{ 
    //if statement 
    if (studentMark < PASS) 
     Grade = "F"; 
    else if (studentMark < CREDIT) 
     Grade="P"; 
    else if (studentMark < DISTINCTION) 
     Grade="C"; 
    else if (studentMark < highDISTINCTION) 
     Grade="D"; 
    else 
     Grade="HD"; 
} 

public void setGrade (String g) {Grade = g;} 
public String getGrade() {return Grade;} 
} 

而且GUI.java

import javax.swing.*; //to run JFrame 
import java.awt.*; //to run FlowLayout 
import java.awt.event.*; //to run ActionListener 
import javax.util.*; 
public class MarksGUI extends JFrame implements ActionListener 
{ 
//declare class instance variables 
String studentName = nameField.getText(); 
int studentMark = Integer.parseInt(markField.getText()); 
final int MAX_STUDENT = 10; 
//declare maximum student constant 
private Mark [] markArray = new Mark[MAX_STUDENT]; 
//declare current student variable 
private int currentStudent = 0; //to count the numbers of students from 0 to 9 
markArray[currentStudent] = new Mark (studentName, studentMark); 

    private void enterStudentNameAndMark() 
    { 

    } 

目前,我試圖找到一種方法以便通過mark.java處理名稱和標記輸入數據並將其存儲在數組中,那麼執行此操作的最有效方法是什麼>

+0

GUI中有更多的代碼,但我只是發佈我認爲與問題相關的內容 –

回答

0

如果我的問題得到解答,您可以馬上只要參數化構造器被調用,ke就調用該方法。

當您調用數組中的構造函數時,會生成成績。

或者你可以在你的actionPerformed方法中調用構造函數。

0

首先,將您的「if語句」移入構造函數或另一個private方法中,並將其添加到構造函數中。

注:不要讓public,因爲你將在構造函數中使用它作爲一個檔次init方法

private void updateGrade(int studentMark){ 
    if (studentMark < PASS) 
     Grade = "F"; 
    else if (studentMark < CREDIT) 
     Grade="P"; 
    else if (studentMark < DISTINCTION) 
     Grade="C"; 
    else if (studentMark < highDISTINCTION) 
     Grade="D"; 
    else 
     Grade="HD"; 

} 

別忘了setter方法來更新等級。

public void setmark (int m){ 
    studentMark = m; 
    updateGrade(m); 
}