Vererbung und interface.

terry333

Neues Mitglied
Hallo Leute,
die Aufgabe kann nicht weiter machen, jemand mir helfen?

Die Aufgabe sagt:
1. Man soll bei TubStatistik ein Array mit Länge n erzeugen und zufällig(=leerer Student Konstruktor) mit Studenten befüllen. (Hier versteh ich nicht wie man mehrmals zufällig die Studenten erzeugen)
2.Mittelwert des Alters der Studenten rechnen
(Hier weiss ich nicht wie man Alter von Studenten aus Supklasse addieren)



Java:
/**
* Schnittstelle, welche Methodendeklarationen fuer die
* Rueckgabe von Mittelwert und Varianz vorgibt.
*/
public interface Statistik {
   
    /** Methodenkoepfe */
   
    double mittelwert();
   
    double varianz();
}

Code:
public class Student{
   
    private String name;
    private int age;
   
    public Student(String name, int age){
        this.name = name;
        this.age = age;
    }
   
    public Student(){
        this.name = "Max Mustermann";
        this.age = (int) (17 + Math.random() * 13) ;
    }
   
    public String getName(){
        return name;
    }
   
    public int getAge(){
        return age;
    }
   
    public String toString(){
        return "\tname: " + name + "\t\tage: " + age;
    }
}

Erste zwei kann man nicht ändern.

Code:
public class TubStatistik extends Student implements Statistik{
   
    private Student[] students;
   
    // Konstruktor
    public TubStatistik(int n){
        super();
        students = new Student[n];
        for(int i=0;i<n;i++){
       
        }
    }
   
    public double mittelwert(){
        double sum = 0;
        for(int i=0;i<students.length;i++){
            sum += super.getAge();
        }
        return sum/students.length;
    }

    public double varianz(){
        double var = 0;
        for(int i=0;i<students.length;i++){
            var += (super.getAge()-mittelwert())*(super.getAge()-mittelwert());
        }
        return var/students.length;
    }

   
    // String-Repraesentation der Klasse
    public String toString(){
       
        String str = "Anzahl der Students: " +students.length;
        for(int i=0;i<students.length;i++){
            str += super.toString()+"\n\t";
        }

        return str;
       
    }
}


Test:
Java:
/**
* Testet die Klasse ArrayStatistik.
*/
public class TestStatistik {
    public static void main(String[] args) {
       
        Statistik[] array = new Statistik[2];

        array[0] = new ArrayStatistik(11);
        array[1] = new TubStatistik(15);
       
        for(int i=0; i<array.length; i++){
            System.out.println();
            System.out.println("Gebe Element aus:");
            System.out.println(array[i]);
            System.out.println("Mittelwert: "+array[i].mittelwert());
            System.out.println("Varianz: "+array[i].varianz());
        }

        ((ArrayStatistik)array[0]).delete();
    }
}
 
Erstmal: Deine TubStatistik soll wirklich von Student ableiten? Ist das wirklich eine "is-a" Beziehung?

Zur Erläuterung:
Du sollst in deiner Klasse ein Studenten Array der Länge n erstellen und diese mit "zufälligen" Studenten befüllen.
"Zufällige" Studenten erhälst du eben von dem leeren Konstruktor der Klasse Student.
 

Zurück
Oben