- 私は、多くの保護されたデータメンバーと、これらのデータメンバーを扱うさまざまなグループの多くのグループを持っています。
- これらのクラスをサブクラスで区切り、メソッドの異なるグループが異なるサブクラスになるようにしたいと思います。
class Student {
protected String name;
protected int courseNumber;
protected TreeMap<String, Integer> marks;
protected double successRate;
protected Pair<String, Integer>[] conferences; //name, place
void setName(String name) { this.name = name; }
//... setters
String getName() { return name; }
//... getters
//...constructors
int getHashCode() {
int res = 0;
//...
return res;
}
boolean less (Student b) {
boolean ls = false;
//...
return ls;
}
//... functions to compare objects
String lastConferenceName() {
return conferences[conferences.length - 1].getKey();
}
//... some last data
double marksMedium(String[] s) {
int res = 0;
for (int i = 0; i < s.length; i++)
res += marks.get(s[i]);
return (double) res/s.length;
}
//... some medium functions
//... some group of functions
//... some other groups
}
このクラスを持って、私はその
class Student{
protected String name;
protected int courseNumber;
protected TreeMap<String, Integer> marks;
protected double successRate;
protected Pair<String, Integer>[] conferences; //name, place
void setName(String name) { this.name = name; }
//... setters
String getName() { return name; }
//... getters
//...constructors
}
class StudentComparator{
int getHashCode() {
int res = 0;
//...
return res;
}
boolean less (Student b) {
boolean ls = false;
//...
return ls;
}
//... functions to compare objects
}
class LastStudentInfoGetter{
String lastConferenceName() {
return conferences[conferences.length - 1].getKey();
}
//... some last data
}
class StudentMediumGetter{
double marksMedium(String[] s) {
int res = 0;
for (int i = 0; i < s.length; i++)
res += marks.get(s[i]);
return (double) res/s.length;
}
//... some medium functions
}
class SomeStudentFunctions{
//... some group of functions
}
///... SomeOtherClasses
これらのクラスは、セッターとゲッター
を使用していない場合、それは良いだろうような何かをしたいです更新
例えば、私はこのクラスに
class Handler{
void handle(){
Student s = new Student();
///////........
System.out.println(s.lastConferenceName());
System.out.println(s.getHashCode());
}
}
を持っていると私は、変換後lastConferenceName()とGetHashCodeメソッド()は異なるグループ
をしていることを注意を仕事にハンドル()(またはそのような何かを)したいです
これらのメソッドを使用してインターフェイスを作成し、「Student」にそれらを実装させることができます。 – markspace
私は学生クラスを小さくしたいです。 Studentクラスのすべてのメソッドを実装したくない場合 – PolyProgrammist
アクセスする場合は、アクセススコープを保護または公開する必要があります。コードを追加します。 –