[英]How to convert an UML class with a constructor to a java object?
我正在嘗試創建一個構造函數來創建一組空作業分數(每個學生 6 個)和一個空考試分數數組(每個學生 3 個)。
getHomeworkAverage() 方法返回學生家庭作業的平均分。 getFinalScore() 方法使用以下評分返回每個學生的最終成績:(exam1 為 15%,exam2 為 25%,exam3 為 30%,家庭作業平均分為 30%)。
public class Student {
private String name;
private int[] homeworks;
private int[] exams;
private int[] homeworkScores;
private int[] examScores;
private double homeworkAvergae;
private int finalScore;
public Student(String name, int[] homeworks, int[] exams, int[] homeworkScores, int[] examScores, double homeworkAvergae, int finalScore) {
this.name = name;
this.homeworks = homeworks;
this.exams = exams;
this.homeworkScores = homeworkScores;
this.examScores = examScores;
this.homeworkAvergae = homeworkAvergae;
this.finalScore = finalScore;
}
public int[] getHomeworkScores() {
return homeworkScores;
}
public void setHomeworkScores(int[] homeworkScores) {
this.homeworkScores = homeworkScores;
}
public double getHomeworkAvergae() {
return homeworkAvergae;
}
public int[] getExamScores() {
return examScores;
}
public void setExamScores(int[] examScores) {
this.examScores = examScores;
}
public int getFinalScore() {
return finalScore;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int[] getHomeworks() {
return homeworks;
}
public void setHomeworks(int[] homeworks) {
this.homeworks = homeworks;
}
public int[] getExams() {
return exams;
}
public void setExams(int[] exams) {
this.exams = exams;
}
}
如果按照書上的說法,您的 UML class 不包含任何構造函數。 UML 中的構造函數將是具有構造型«Create»
並返回Student
的操作:
+ «Create» Student(name:String):Student
當然,一些主流的 OOP 語言使用命名為 class 的構造函數的約定,並且沒有指定返回類型。 這就是為什么許多人會理解Student(name:String)
作為構造函數,盡管 UML 不一致。
假設Student(name:String)
,您需要按照設計中的預見實現此 class :
public class Student {
...
public Student(String name) {
...
}
}
如果您在初始化 arrays 時遇到困難,您可能會在 SO 上找到很多答案。 我的第一個猜測是這樣的:
homeworks = new int[6];
...
我不會審查代碼,也不會補全缺失的部分。 我唯一想強調的是數組字段的 getter 返回對對象數組的引用,這允許在沒有控制的情況下更新數組的內容。 同樣,設置數組,復用另一個數組,不覆蓋當前數組內容。 在這里查看如何克隆 arrays 以避免這些風險
你的問題是如何構造構造函數?
int[] homeworks = new int[]{ 1,2,3,4,5,6,7,8,9,10 };
int[] exams = new int[]{ 1,2,3,4,5,6,7,8,9,10 };
int[] homeworkScores = new int[]{ 1,2,3,4,5,6,7,8,9,10 };
int[] examScores = new int[]{ 1,2,3,4,5,6,7,8,9,10 };
Student student = new Student(
"Name",
homeworks,
exams,
homeworkScores,
examScores,
6.0,
6
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.