SetWerte über verschiedene Klassen

Java The Hutt

Mitglied
Hallo.

Ich habe ein Problem, was mich schon längere Zeit beschäftigt. Ich würde gerne Werte aus der main (über Methodenaufruf in eine Klasse) setzen. Jedoch stoße ich permanent auf Probleme, die ich mir bisher noch nicht erklären kann. Ich würde mich freuen, wenn mir jemand detailliert erklären kann, warum es momentan nicht geht und wie die Lösung aussehen müsste.

Java:
public class main {

    public static void main(String[] args) {

       
        Hochschulangehoeriger student[] = new Hochschulangehoeriger [3];
       
        student[0] = new Hochschulangehoeriger("Jonas", "Müller", "männlich", 22, "Student", null, 24981, 760);

        Person tim = new Person ("Tim", "Steiner", "männlich", 23);
       
       
        //Problem hier
        tim.setAnschrift("Georg-Schumann-Straße", 21, "99484", "Berlin", "Deutschland");
       
        System.out.println(student[0].printAll());
        System.out.println(tim.fullData());
    }

}

Java:
public class Person {

//    Variablen
    String vorname;
    String nachname;
    String geschlecht;
    int alter;

//    Konstruktor
    public Person(String vorname, String nachname, String geschlecht, int alter) {
        this.vorname = vorname;
        this.nachname = nachname;
        this.geschlecht = geschlecht;
        this.alter = alter;
    }

    public String fullData() {
        return (vorname +" "+ nachname +" "+ geschlecht +" "+ alter);
    }
}

Java:
public class Hochschulangehoeriger extends Person {

    String rang;
    String berufsbezeichnung;
    int nummer;
    int gehalt;

    public Hochschulangehoeriger(String vorname, String nachname, String geschlecht, int alter, String rang,
            String berufsbezeichnung, int nummer, int gehalt) {
//        Aufruf des konstruktors der Oberklasse
        super(vorname, nachname, geschlecht, alter);
        this.rang = rang;
        this.berufsbezeichnung = berufsbezeichnung;
        this.nummer = nummer;
        this.gehalt = gehalt;

    }
   

    public String printAll() {
        return (fullData() +" "+ rang +" "+ berufsbezeichnung +" "+ nummer +" "+ gehalt);

    }


   

}

Java:
public class Adressverwaltung extends Hochschulangehoeriger {

    String strasse;
    int hausnummer;
    String plz;
    String stadt;
    String land;

    public Adressverwaltung(String vorname, String nachname, String geschlecht, int alter, String rang,
            String berufsbezeichnung, int nummer, int gehalt, String strasse, int hausnummer, String plz, String stadt,
            String land) {
        super(vorname, nachname, geschlecht, alter, rang, berufsbezeichnung, nummer, gehalt);
        this.strasse = strasse;
        this.hausnummer = hausnummer;
        this.plz = plz;
        this.stadt = stadt;
        this.land = land;

    }

    public void setAnschrift(String strasse, int hausnummer, String plz, String stadt, String land) {
        this.strasse = strasse;
        this.hausnummer = hausnummer;
        this.plz = plz;
        this.stadt = stadt;
        this.land = land;
    }

}
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Jedoch stoße ich permanent auf Probleme, die ich mir bisher noch nicht erklären kann.
und wie sollen wir sie erklären, wenn wir nicht wissen, um welche Probleme es geht??? :mad:

Ich würde mich freuen, wenn mir jemand detailliert erklären kann, warum es momentan nicht geht und wie die Lösung aussehen müsste.
Du musst schon ein bisschen deutlicher werden!
Was genau klappt nicht? (was erwartest Du? was passiert stattdessen?)

Nur Code hinklatschen wird nichts bringen !! ;)

VG Klaus
 

Java The Hutt

Mitglied
Naja das Problem ist, dass ich a nicht weiß, wie ich die Methode ordentlich aufrufe, nachdem ich "tim" erstellt habe.

Ich habe probiert:

Java:
        tim.setAnschrift("Georg-Schumann-Straße", 21, "99484", "Berlin", "Deutschland");

und generell weitere Punktnotationen, mit Adressverwaltung.setAnschrift etc. scheinbar ist die Methode einfach nicht "sichtbar" während hingegen die Methode aus der "Hochschulangehöriger" schon sichtbar ist. Das kann ich mir nicht erklären.
 
K

kneitzel

Gast
Also ich sehe keine Variable julia1, daher kannst Du da natürlich auch nicht drauf zugreifen. Du musst die Variable vorher deklarieren und dann noch eine Instanz zuordnen.

Und dann verstehe ich noch nicht die Klasse Adressverwaltung.
Es gibt Personen, es gibt Hochschulangehörige, die auch Personen sind. Soweit so gut.
Aber wie kommt dann die Adressverwaltung da rein. Eine Adressverwaltung ist ein Hochschulangehöriger ist eine Person? Adressverwaltung ist eine Verwaltung von Adressen. Das könnte also z.B, eine Sammlung von Adressen sein...

Die Abhängigkeit ist doch eher: Person hat eine/mehrere Adresse(n).

Und Tim ist eine Person. Bei Dir ist es so, dass eine Adressverwaltung ein Hochschulangehöriger und damit eine Person ist. Aber damit ist eine Person keine Adressverwaltung.

Also wenn man das mit Tieren macht, dann wird das schnell deutlich:
Katzen -> Säugetiere -> Tier -> Lebewesen.

Also eine Katze ist ein Säugetier (erbt von Säugetier), ist ein Tier (Säugetier erbt von Tier), ist ein Lebewesen (Tier erbt von Lebewesen).
Nun ist aber ein Lebewesen nicht eine Katze....
 

Java The Hutt

Mitglied
Also ich sehe keine Variable julia1, daher kannst Du da natürlich auch nicht drauf zugreifen. Du musst die Variable vorher deklarieren und dann noch eine Instanz zuordnen.

Und dann verstehe ich noch nicht die Klasse Adressverwaltung.
Es gibt Personen, es gibt Hochschulangehörige, die auch Personen sind. Soweit so gut.
Aber wie kommt dann die Adressverwaltung da rein. Eine Adressverwaltung ist ein Hochschulangehöriger ist eine Person? Adressverwaltung ist eine Verwaltung von Adressen. Das könnte also z.B, eine Sammlung von Adressen sein...

Die Abhängigkeit ist doch eher: Person hat eine/mehrere Adresse(n).

Und Tim ist eine Person. Bei Dir ist es so, dass eine Adressverwaltung ein Hochschulangehöriger und damit eine Person ist. Aber damit ist eine Person keine Adressverwaltung.

Also wenn man das mit Tieren macht, dann wird das schnell deutlich:
Katzen -> Säugetiere -> Tier -> Lebewesen.

Also eine Katze ist ein Säugetier (erbt von Säugetier), ist ein Tier (Säugetier erbt von Tier), ist ein Lebewesen (Tier erbt von Lebewesen).
Nun ist aber ein Lebewesen nicht eine Katze....

Ja okay, da hast du natürlich recht, das war alles eine kleine Spielerei. Aber leider behebt das mein Hauptproblem noch nicht. Ich möchte es nochmal umgeschrieben hier darstellen:

Main: Mit Aufruf zum setzen neuer Werte:
Java:
public class main {


    public static void main(String[] args) {


        Hochschulangehoeriger student[] = new Hochschulangehoeriger [3];


        student[0] = new Hochschulangehoeriger("Jonas", "Müller", "männlich", 22, "Student", null, 24981, 760);


        Person tim = new Person ("Tim", "Steiner", "männlich", 23);


        //Problem hier:


        tim.setAnschrift("Straße", 21, "01111", "Berlin", "Deutschland");

        System.out.println(student[0].printAll());

        System.out.println(tim.fullData());


    }

}

Personenklasse, jetzt mit Adressen.
Java:
public class Person {

//    Variablen
    String vorname;
    String nachname;
    String geschlecht;
    int alter;
    String strasse;
    int hausnummer;
    String plz;
    String stadt;
    String land;

//    Konstruktor
    public Person(String vorname, String nachname, String geschlecht, int alter) {
        this.vorname = vorname;
        this.nachname = nachname;
        this.geschlecht = geschlecht;
        this.alter = alter;
    }

    public String fullData() {
        return (vorname +" "+ nachname +" "+ geschlecht +" "+ alter);
    }

    public void setAnschrift(String strasse, int hausnummer, String plz, String stadt, String land) {
        this.strasse = strasse;
        this.hausnummer = hausnummer;
        this.plz = plz;
        this.stadt = stadt;
        this.land = land;
    }

}
 
Zuletzt bearbeitet von einem Moderator:

VfL_Freak

Top Contributor
und wo ist jetzt bei DIESEM Code das konkrete Problem??

BTW:
Java:
public class main
{...}
Gaaanz schlechte Idee :eek:

VG Klaus
 
K

kneitzel

Gast
Also ja, "main" sollte die Klasse nicht wirklich heißen, weil das
a) klein geschrieben ist, Klassen fangen mit einem Großbuchstaben an.
b) es nichts aussagt.

MainClass wie im ersten Link halte ich auch für komisch. Das ist die wichtige Hauptklasse? Und dann ist da nur sowas drin wie Erzeuge eine Instanz von einer Klasse und rufe run() auf oder setVisible(true)?

Was ich sehr oft sehe ist sowas wie "Application". Oder eben etwas erweitert a. la. "ServerApplication". Aber das mag auch daran liegen, dass ich viel im SpringBoot Umfeld unterwegs bin und da hat man halt eine Klasse, die mit der SpringBootApplication Annotation versehen ist ... (Wobei die main Funktion da nicht zwangsläufig rein gehört. Aber den SpringApplication.run Aufruf in eine extra Klasse packen?)
 

Java The Hutt

Mitglied
Hallo :)

ich wende mich heute mit einem erneuten Problem an euch.
Ich möchte gerne für Studenten jeweils 3 Noten einlesen, und dieses an eine Klasse übergeben. Jedoch stoße ich dabei auf permanente Probleme. Scheinbar besteht bei meinem Code keine Kompatibilität zwischen den Arrays und dem Konstruktor aus der Klasse. Ich habe jegliche versuche angestellt, Änderungen vorzunehmen, beispielsweise Arrays in den Konstruktor, dann einmal ohne etc etc... Auch vorschlage von Eclipse helfen mir nicht weiter.

Das Problem befindet sich im Case 2 in Zeile 82.

Ich bitte um Hilfe :)

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;

public class Hochschulverwaltung {

    static int studentenindex = 0;
    static int hochschulAngehoerigerArrayAnzahl = 5;
    static Hochschulangehoeriger student[] = new Hochschulangehoeriger[hochschulAngehoerigerArrayAnzahl];

    static Notenverwaltung zensur[] = new Notenverwaltung[hochschulAngehoerigerArrayAnzahl];

    static Scanner eingabe = new Scanner(System.in);

    public static void main(String[] args) throws IOException {

        int menusteuerung;
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);

        System.out.println(" \t _______________________________________");
        System.out.println("\t|\t\t\t\t\t|");
        System.out.println(" \t|  Student anlegen:\tPress:\t1\t|");
        System.out.println(" \t|  Stundenten anzeigen:\tPress:\t2\t|");
        System.out.println(" \t|  Noten festlegen:\tPress:\t3\t|");
        System.out.println(" \t|  --------:\t\tPress:\t4\t|");
        System.out.println(" \t|  --------:\t\tPress:\t5\t|");
        System.out.println(" \t|  Beenden:\t\tPress:\t9\t|");
        System.out.println(" \t|_______________________________________|");

        do {

            System.out.println("\n\nMenuansicht -> Press: \t0\n");
            menusteuerung = eingabe.nextInt();
//            Schleife zur Menuauswahl, Else-fall mit Hinweis
            if (menusteuerung <= 6 || menusteuerung == 9) {

                switch (menusteuerung - 1) {
                case -1:
                    menueansicht();
                    break;
//                Studenten anlegen
                case 0:
                    setHochschulangehoeriger();
                    studentenindex++;
                    break;
//                Studenten ausgeben
                case 1:
                    for (int i = 0; i <= studentenindex - 1; i++)
                        System.out.println(student[i].printAll());
                    break;

//                Noten festlegen
                case 2:

                    double[] mathe, programmieren, english;
                    mathe = new double[3];
                    programmieren = new double[3];
                    english = new double[3];
                    int k;
                    // studentenindex-1
                    if (studentenindex != 0) {
                        System.out.println("Noten eingeben:");
                        for (int j = 0; j == studentenindex - 1; j++) {

                            System.out.println("für den Studenten: " + student[j].printInfo());
                            for (k = 0; k < 3; k++) {

                                System.out.println("Mathematik Note " + k + ": ");
                                mathe[k] = eingabe.nextDouble(); // eingabe.nextDouble();

                                System.out.println("Programmieren Note " + k + ": ");
                                programmieren[k] = eingabe.nextDouble(); // eingabe.nextDouble();

                                System.out.println("Englisch Note " + k + ": ");
                                english[k] = eingabe.nextDouble(); // eingabe.nextDouble();
                                System.out.println("Aufrufprobleme");

                                //Problem hier:
                                //zensur[studentenindex - 1].setNoten(mathe[k], programmieren[k], english[k]);

                            }

                        }
                    } else
                        System.out.println("Noch kein Student angelegt");

                    break;

                case 3:

                }
            } else {
                System.out.println("Error: Zahl muss zwischen 1 und 3 liegen oder 9 zum Beenden");
            }
        } while (menusteuerung != 9);
        System.out.println("Programm erfolgreich beendet!");

    }

//    Ausgabe Menüansicht:
    public static void menueansicht() {
        System.out.println(" \t _______________________________________");
        System.out.println("\t|\t\t\t\t\t|");
        System.out.println(" \t|  Student anlegen:\tPress:\t1\t|");
        System.out.println(" \t|  --------:\t\tPress:\t2\t|");
        System.out.println(" \t|  --------:\t\tPress:\t3\t|");
        System.out.println(" \t|  --------:\t\tPress:\t4\t|");
        System.out.println(" \t|  --------:\t\tPress:\t5\t|");
        System.out.println(" \t|  Beenden:\t\tPress:\t9\t|");
        System.out.println(" \t|_______________________________________|");

    }

//    Daten einlesen für Studenten
    public static void setHochschulangehoeriger() {
        student[studentenindex] = new Hochschulangehoeriger();
        System.out.println("Studentenvorlage erstellt unter dem Index:" + studentenindex);
        System.out.println("Sollen direkt Daten angelegt werden?");
        System.out.println("Für 'Nein' drücke 0,Für 'Ja' drücke 1");
        int auswahl = eingabe.nextInt();

        if (auswahl == 1) {

            eingabe ein = new eingabe();
            System.out.println("Eingabe der Daten des Studenten");
            System.out.println("==========================");

            String vorname = ein.eingString("Vorname:\t\t");
            String nachname = ein.eingString("Nachname:\t\t");
            String geschlecht = ein.eingString("Geschlecht:\t\t");
            int alter = ein.eingInt("Alter: (Int)\t\t");
            String straße = ein.eingString("Straße:\t\t\t");
            int hausnummer = ein.eingInt("Hausnummer: (Int)\t");
            String postleitzahl = ein.eingString("Postleitzahl:\t\t");
            String stadt = ein.eingString("Stadt\t\t\t");
            String land = ein.eingString("Land:\t\t\t");
            System.out.println("Festlegen der studentenbezogenen Daten");
            String rang = ein.eingString("Rang:\t\t\t");
            String berufsbezeichnung = ein.eingString("Rang:\t\t\t");
            int nummer = ein.eingInt("Matrikelnummer: (Int)\t");
            int gehalt = ein.eingInt("Hausnummer: (Int)\t");

            student[studentenindex].setKontakt(vorname, nachname, geschlecht, alter);
            student[studentenindex].setAnschrift(straße, hausnummer, postleitzahl, stadt, land);
            student[studentenindex].setstudentendaten(rang, berufsbezeichnung, nummer, gehalt);

        } else {
            System.out.println("Keine Daten festgelegt");
        }

    }

}

Java:
public class Person {

//    Variablen
    String vorname;
    String nachname;
    String geschlecht;
    int alter;
    String strasse;
    int hausnummer;
    String plz;
    String stadt;
    String land;

//    Konstruktor
    public Person(String vorname, String nachname, String geschlecht, int alter, String strasse, int hausnummer, String plz, String stadt, String land) {
        this.vorname = vorname;
        this.nachname = nachname;
        this.geschlecht = geschlecht;
        this.alter = alter;
        this.strasse = strasse;
        this.hausnummer = hausnummer;
        this.plz = plz;
        this.stadt = stadt;
        this.land = land;
    }

    public Person() {

    }

    public void setKontakt(String vorname, String nachname, String geschlecht, int alter) {
        this.vorname = vorname;
        this.nachname = nachname;
        this.geschlecht = geschlecht;
        this.alter = alter;
    }

    public void setAnschrift(String strasse, int hausnummer, String plz, String stadt, String land) {
        this.strasse = strasse;
        this.hausnummer = hausnummer;
        this.plz = plz;
        this.stadt = stadt;
        this.land = land;
    }

//    Datenaenderung, ruft verschiedene Methoden auf, um gewisse Daten abzuändern.
    public void datenaenderung() {

        System.out.println("Welches Attribut soll abgeändert werden?");
        namenaenderung("Guiseppe");
    }

    public void namenaenderung(String vorname) {
        this.vorname = vorname;
    }

    public String fullData() {
        return (vorname + " " + nachname + " " + geschlecht + " " + alter + " " + strasse + " " + hausnummer + " " + plz
                + " " + stadt + " " + land);
    }

}

Java:
public class Hochschulangehoeriger extends Person {

    String rang;
    String berufsbezeichnung;
    int nummer;
    int gehalt;


    public Hochschulangehoeriger(String vorname, String nachname, String geschlecht, int alter, String strasse,
            int hausnummer, String plz, String stadt, String land, String rang, String berufsbezeichnung, int nummer,
            int gehalt) {
//        Aufruf des konstruktors der Oberklasse
        super(vorname, nachname, geschlecht, alter, strasse, hausnummer, plz, stadt, land);
        this.rang = rang;
        this.berufsbezeichnung = berufsbezeichnung;
        this.nummer = nummer;
        this.gehalt = gehalt;

    }

    public Hochschulangehoeriger() {

    }

    public void setstudentendaten(String rang, String berufsbezeichnung, int nummer, int gehalt) {
        this.rang = rang;
        this.berufsbezeichnung = berufsbezeichnung;
        this.nummer = nummer;
        this.gehalt = gehalt;

    }


    public String printAll() {
        return (fullData() + " " + rang + " " + berufsbezeichnung + " " + nummer + " " + gehalt);

    }

    public String printInfo() {
        return ("Vorname:\t" + vorname + "\nNachname:\t" + nachname + "\nMatrikelnummer:\t" + nummer);

    }



}

Java:
public class Notenverwaltung {

    double[] mathe;
    double[] programmieren;
    double[] english;
    double durchschnitt;

    Notenverwaltung(double[] mathe, double[] programmieren, double[] english) {

        this.mathe = mathe;
        this.programmieren = programmieren;
        this.english = english;

    }

    public void setNoten(double[] mathe, double[] programmieren, double[] english) {

        this.mathe = mathe;
        this.programmieren = programmieren;
        this.english = english;

    }

    public double rechnen(double mathe[], double programmieren[], double english[]) {

        System.out.println("Noch nichts");

        return durchschnitt;

    }

}

Meine Überlegung ist, dass ich doch vom jeweiligen Studentenindex die Funktion aufrufen muss, damit diese an der selben Stelle, wie der jeweilige Student aufgerufen wird.
Daher:
Java:
//zensur[studentenindex - 1].setNoten(mathe[k], programmieren[k], english[k]);
Eben eingefallen, es müsste natürlich der Aufruf an der Stelle j anstatt "Studentenindex" erfolgen.
Daher-->
Java:
//zensur[j].setNoten(mathe[k], programmieren[k], english[k]);
und meine weitere Überlegung ist, dass jeweils die Note an der Stelle k überreicht werden soll.
Gibt es bis dorthin Denkfehler?
 
Zuletzt bearbeitet:

Java The Hutt

Mitglied
Hallo :)

ich wende mich heute mit einem erneuten Problem an euch.
Ich möchte gerne für Studenten jeweils 3 Noten einlesen, und dieses an eine Klasse übergeben. Jedoch stoße ich dabei auf permanente Probleme. Scheinbar besteht bei meinem Code keine Kompatibilität zwischen den Arrays und dem Konstruktor aus der Klasse. Ich habe jegliche versuche angestellt, Änderungen vorzunehmen, beispielsweise Arrays in den Konstruktor, dann einmal ohne etc etc... Auch vorschlage von Eclipse helfen mir nicht weiter.

Das Problem befindet sich im Case 2 in Zeile 82.

Ich bitte um Hilfe :)

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;

public class Hochschulverwaltung {

    static int studentenindex = 0;
    static int hochschulAngehoerigerArrayAnzahl = 5;
    static Hochschulangehoeriger student[] = new Hochschulangehoeriger[hochschulAngehoerigerArrayAnzahl];

    static Notenverwaltung zensur[] = new Notenverwaltung[hochschulAngehoerigerArrayAnzahl];

    static Scanner eingabe = new Scanner(System.in);

    public static void main(String[] args) throws IOException {

        int menusteuerung;
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);

        System.out.println(" \t _______________________________________");
        System.out.println("\t|\t\t\t\t\t|");
        System.out.println(" \t|  Student anlegen:\tPress:\t1\t|");
        System.out.println(" \t|  Stundenten anzeigen:\tPress:\t2\t|");
        System.out.println(" \t|  Noten festlegen:\tPress:\t3\t|");
        System.out.println(" \t|  --------:\t\tPress:\t4\t|");
        System.out.println(" \t|  --------:\t\tPress:\t5\t|");
        System.out.println(" \t|  Beenden:\t\tPress:\t9\t|");
        System.out.println(" \t|_______________________________________|");

        do {

            System.out.println("\n\nMenuansicht -> Press: \t0\n");
            menusteuerung = eingabe.nextInt();
//            Schleife zur Menuauswahl, Else-fall mit Hinweis
            if (menusteuerung <= 6 || menusteuerung == 9) {

                switch (menusteuerung - 1) {
                case -1:
                    menueansicht();
                    break;
//                Studenten anlegen
                case 0:
                    setHochschulangehoeriger();
                    studentenindex++;
                    break;
//                Studenten ausgeben
                case 1:
                    for (int i = 0; i <= studentenindex - 1; i++)
                        System.out.println(student[i].printAll());
                    break;

//                Noten festlegen
                case 2:

                    double[] mathe, programmieren, english;
                    mathe = new double[3];
                    programmieren = new double[3];
                    english = new double[3];
                    int k;
                    // studentenindex-1
                    if (studentenindex != 0) {
                        System.out.println("Noten eingeben:");
                        for (int j = 0; j == studentenindex - 1; j++) {

                            System.out.println("für den Studenten: " + student[j].printInfo());
                            for (k = 0; k < 3; k++) {

                                System.out.println("Mathematik Note " + k + ": ");
                                mathe[k] = eingabe.nextDouble(); // eingabe.nextDouble();

                                System.out.println("Programmieren Note " + k + ": ");
                                programmieren[k] = eingabe.nextDouble(); // eingabe.nextDouble();

                                System.out.println("Englisch Note " + k + ": ");
                                english[k] = eingabe.nextDouble(); // eingabe.nextDouble();
                                System.out.println("Aufrufprobleme");

                                //Problem hier:
                                //zensur[studentenindex - 1].setNoten(mathe[k], programmieren[k], english[k]);

                            }

                        }
                    } else
                        System.out.println("Noch kein Student angelegt");

                    break;

                case 3:

                }
            } else {
                System.out.println("Error: Zahl muss zwischen 1 und 3 liegen oder 9 zum Beenden");
            }
        } while (menusteuerung != 9);
        System.out.println("Programm erfolgreich beendet!");

    }

//    Ausgabe Menüansicht:
    public static void menueansicht() {
        System.out.println(" \t _______________________________________");
        System.out.println("\t|\t\t\t\t\t|");
        System.out.println(" \t|  Student anlegen:\tPress:\t1\t|");
        System.out.println(" \t|  --------:\t\tPress:\t2\t|");
        System.out.println(" \t|  --------:\t\tPress:\t3\t|");
        System.out.println(" \t|  --------:\t\tPress:\t4\t|");
        System.out.println(" \t|  --------:\t\tPress:\t5\t|");
        System.out.println(" \t|  Beenden:\t\tPress:\t9\t|");
        System.out.println(" \t|_______________________________________|");

    }

//    Daten einlesen für Studenten
    public static void setHochschulangehoeriger() {
        student[studentenindex] = new Hochschulangehoeriger();
        System.out.println("Studentenvorlage erstellt unter dem Index:" + studentenindex);
        System.out.println("Sollen direkt Daten angelegt werden?");
        System.out.println("Für 'Nein' drücke 0,Für 'Ja' drücke 1");
        int auswahl = eingabe.nextInt();

        if (auswahl == 1) {

            eingabe ein = new eingabe();
            System.out.println("Eingabe der Daten des Studenten");
            System.out.println("==========================");

            String vorname = ein.eingString("Vorname:\t\t");
            String nachname = ein.eingString("Nachname:\t\t");
            String geschlecht = ein.eingString("Geschlecht:\t\t");
            int alter = ein.eingInt("Alter: (Int)\t\t");
            String straße = ein.eingString("Straße:\t\t\t");
            int hausnummer = ein.eingInt("Hausnummer: (Int)\t");
            String postleitzahl = ein.eingString("Postleitzahl:\t\t");
            String stadt = ein.eingString("Stadt\t\t\t");
            String land = ein.eingString("Land:\t\t\t");
            System.out.println("Festlegen der studentenbezogenen Daten");
            String rang = ein.eingString("Rang:\t\t\t");
            String berufsbezeichnung = ein.eingString("Rang:\t\t\t");
            int nummer = ein.eingInt("Matrikelnummer: (Int)\t");
            int gehalt = ein.eingInt("Hausnummer: (Int)\t");

            student[studentenindex].setKontakt(vorname, nachname, geschlecht, alter);
            student[studentenindex].setAnschrift(straße, hausnummer, postleitzahl, stadt, land);
            student[studentenindex].setstudentendaten(rang, berufsbezeichnung, nummer, gehalt);

        } else {
            System.out.println("Keine Daten festgelegt");
        }

    }

}

Java:
public class Person {

//    Variablen
    String vorname;
    String nachname;
    String geschlecht;
    int alter;
    String strasse;
    int hausnummer;
    String plz;
    String stadt;
    String land;

//    Konstruktor
    public Person(String vorname, String nachname, String geschlecht, int alter, String strasse, int hausnummer, String plz, String stadt, String land) {
        this.vorname = vorname;
        this.nachname = nachname;
        this.geschlecht = geschlecht;
        this.alter = alter;
        this.strasse = strasse;
        this.hausnummer = hausnummer;
        this.plz = plz;
        this.stadt = stadt;
        this.land = land;
    }

    public Person() {

    }

    public void setKontakt(String vorname, String nachname, String geschlecht, int alter) {
        this.vorname = vorname;
        this.nachname = nachname;
        this.geschlecht = geschlecht;
        this.alter = alter;
    }

    public void setAnschrift(String strasse, int hausnummer, String plz, String stadt, String land) {
        this.strasse = strasse;
        this.hausnummer = hausnummer;
        this.plz = plz;
        this.stadt = stadt;
        this.land = land;
    }

//    Datenaenderung, ruft verschiedene Methoden auf, um gewisse Daten abzuändern.
    public void datenaenderung() {

        System.out.println("Welches Attribut soll abgeändert werden?");
        namenaenderung("Guiseppe");
    }

    public void namenaenderung(String vorname) {
        this.vorname = vorname;
    }

    public String fullData() {
        return (vorname + " " + nachname + " " + geschlecht + " " + alter + " " + strasse + " " + hausnummer + " " + plz
                + " " + stadt + " " + land);
    }

}

Java:
public class Hochschulangehoeriger extends Person {

    String rang;
    String berufsbezeichnung;
    int nummer;
    int gehalt;


    public Hochschulangehoeriger(String vorname, String nachname, String geschlecht, int alter, String strasse,
            int hausnummer, String plz, String stadt, String land, String rang, String berufsbezeichnung, int nummer,
            int gehalt) {
//        Aufruf des konstruktors der Oberklasse
        super(vorname, nachname, geschlecht, alter, strasse, hausnummer, plz, stadt, land);
        this.rang = rang;
        this.berufsbezeichnung = berufsbezeichnung;
        this.nummer = nummer;
        this.gehalt = gehalt;

    }

    public Hochschulangehoeriger() {

    }

    public void setstudentendaten(String rang, String berufsbezeichnung, int nummer, int gehalt) {
        this.rang = rang;
        this.berufsbezeichnung = berufsbezeichnung;
        this.nummer = nummer;
        this.gehalt = gehalt;

    }


    public String printAll() {
        return (fullData() + " " + rang + " " + berufsbezeichnung + " " + nummer + " " + gehalt);

    }

    public String printInfo() {
        return ("Vorname:\t" + vorname + "\nNachname:\t" + nachname + "\nMatrikelnummer:\t" + nummer);

    }



}

Java:
public class Notenverwaltung {

    double[] mathe;
    double[] programmieren;
    double[] english;
    double durchschnitt;

    Notenverwaltung(double[] mathe, double[] programmieren, double[] english) {

        this.mathe = mathe;
        this.programmieren = programmieren;
        this.english = english;

    }

    public void setNoten(double[] mathe, double[] programmieren, double[] english) {

        this.mathe = mathe;
        this.programmieren = programmieren;
        this.english = english;

    }

    public double rechnen(double mathe[], double programmieren[], double english[]) {

        System.out.println("Noch nichts");

        return durchschnitt;

    }

}

Meine Überlegung ist, dass ich doch vom jeweiligen Studentenindex die Funktion aufrufen muss, damit diese an der selben Stelle, wie der jeweilige Student aufgerufen wird.
Daher:
Java:
//zensur[studentenindex - 1].setNoten(mathe[k], programmieren[k], english[k]);
Eben eingefallen, es müsste natürlich der Aufruf an der Stelle j anstatt "Studentenindex" erfolgen.
Daher-->
Java:
//zensur[studentenindex - 1].setNoten(mathe[k], programmieren[k], english[k]);
und meine weitere Überlegung ist, dass jeweils die Note an der Stelle k überreicht werden soll.
Gibt es bis dorthin Denkfehler?

Ich sehe, dass ich meine Schleife sowieso nochmal überdenken muss, speziell sobald 2 Studenten angelegt sind. Aber würde mich freuen, wenn mir trotzdem jemand weiterhilft bezüglich meines Aufrufproblemes :)
 

Java The Hutt

Mitglied
Meine kleinen Tests haben ergeben, dass ich momentan überhaupt keine Funktion aus der Klasse Notenverwaltung aufrufen kann, als Meldung kommt:
java.lang.NullPointerException
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
B großzügiges Pixelraster über Bildschirm legen Java Basics - Anfänger-Themen 7
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
S Java über SSH Java Basics - Anfänger-Themen 13
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
W char über die Konsole? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
J Wert zurückgeben über get Methode Java Basics - Anfänger-Themen 8
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O Java über cmd benutzen ? Java Basics - Anfänger-Themen 5
J Variablenzugriff über string Java Basics - Anfänger-Themen 18
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
B OOP-Anfänge über CMD + Editor Java Basics - Anfänger-Themen 30
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
1 Erste Schritte Was denkt ihr über eines meiner ersten Javaprogramme? Java Basics - Anfänger-Themen 2
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
T DoWhile Schleife über mehrere Mothoden Java Basics - Anfänger-Themen 5
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
L Iterieren über eine CSV Datei Java Basics - Anfänger-Themen 7
I GUI über Eclipse oder NetBeans Java Basics - Anfänger-Themen 23
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
O Methode über Leerzeichen Java Basics - Anfänger-Themen 13
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
G Arraynamen über eine Schleife ansprechen Java Basics - Anfänger-Themen 4
S Bild über JButton legen Java Basics - Anfänger-Themen 3
temi Druckeransteuerung über ESC-Sequenz Java Basics - Anfänger-Themen 21
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
B Könnte jemand über dieses jurze Javaprogramm schauen? Irgendwas funktioniert mit der z-Varible nicht Java Basics - Anfänger-Themen 2
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
X Minimax-Algorithmus über alle Kanten möglich? - Kanten darstellen Java Basics - Anfänger-Themen 1
P Threads Prozess kann nicht über die GUI gestartet werden Java Basics - Anfänger-Themen 8
T CMD über Java-Programm aufrufen Java Basics - Anfänger-Themen 2
X Finde die Files über FTP nicht Java Basics - Anfänger-Themen 4
J Methode über Scanner aufrufen Java Basics - Anfänger-Themen 15
P Programm kann über CMD nicht ausgeführt werden Java Basics - Anfänger-Themen 2
E Frage über Speichern und Ausgabe Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
X Betriebssytem interne Consolen Commands über Java starten Java Basics - Anfänger-Themen 2
J ArrayList über verschiedene Klassen verwenden Java Basics - Anfänger-Themen 7
A .jar über Webbrowser aufrufen Java Basics - Anfänger-Themen 2
D Ausgabe über JLabel Java Basics - Anfänger-Themen 12
L Erste Schritte Arrays über eine for Schleife ansprechen. Java Basics - Anfänger-Themen 6
MiMa Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
K Objekt soll Anwendung über Änderungen informieren Java Basics - Anfänger-Themen 8
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
F Gewichteter Mittelwert über eine Zeitperiode Java Basics - Anfänger-Themen 3
B Schleife über einen Container Java Basics - Anfänger-Themen 7
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
T jar von stick aus über jre auf stick starten Java Basics - Anfänger-Themen 6
L Iterieren über ArrayList Java Basics - Anfänger-Themen 1
D Java doppelte Zahlen auch über 10 in einem String entfernen Java Basics - Anfänger-Themen 2
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0
F Methoden aus anderer classe über nehmen Java Basics - Anfänger-Themen 10
N .propertiesdatei über Relativen Pfad einlesen lassen Java Basics - Anfänger-Themen 5
G Input/Output CSV-Datei über Java-Programm erstellen, Zeichensalat Java Basics - Anfänger-Themen 3
G Datentypen Tipps, Ratschläge erwünscht bzgl. Datentyp bestimmen über Wertebereich Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben