Grundlegendes

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Grundlegendes

    Hallo zusammen,

    ich bin studiumsbedingt seit einer Woche dabei, Java zu lernen. Außer einem kleinen Exkurs in Scheme zu Anfang des Semesters habe ich davor lediglich html benutzt, tue mir also atm dementsprechend schwer, das ganze zu durchschauen.

    Ich dachte mir also vielleicht können ein paar erfahrenere mir ein paar kleine Verständnisfragen beantworten.

    Zu beginn haben wir eine (eigentlich) ganz simple Sache implementiert, es geht grob gesagt um einen Hund als Klasse und eine weitere Klasse HundAnwendung, die auf die erste zugreift.


    HundAnwendung:

    Quellcode

    1. public class HundAnwendung {
    2. public static void main(String[] args) {
    3. Hund meinHund = new Hund();
    4. meinHund.setName("Ben");
    5. String hundename = meinHund.getName();
    6. System.out.println("Der Hund heisst " + hundename);
    7. meinHund.setGroesse(17);
    8. int hundegroesse = meinHund.getGroesse();
    9. System.out.println("Der Hund ist " + hundegroesse + " Zentimeter gross");
    10. meinHund.setRasse("Pudel");
    11. String hunderasse = meinHund.getRasse();
    12. System.out.println("Der Hund ist ein " + hunderasse);
    13. meinHund.belle(3);
    14. }
    15. }
    Alles anzeigen


    1. Was genau hat mir dieser Ausdruck zu sagen, und warum sind die eckigen Klammern leer? (String[] args)

    2. Auch im weiteren Verlauf immer wieder () leere Klammern - warum?

    Hund: (ich erspar euch mal den ganzen Code und nehm nur das für mich relevante)

    Quellcode

    1. (...)
    2. public String getName() {
    3. return name;
    4. }
    5. public void setName(String neuerName) {
    6. name = neuerName;
    7. }
    8. (...)


    3. In der gesamten Klasse findet sich immer wieder 'void'. Wenn ichs richtig verstanden habe, dient das dazu dass kein Ausgabewert erfolgen soll. Ich will aber doch z.b. hier den Namen aus der HundAnwendung haben. Oder bedeutet void lediglich dass auf der Konsole am Schluss keine explizite Ausgabe erfolgt?


    Ich hoffe ich konnte mich halbwegs verständlich ausdrücken und danke schonmal für eventuelle Hilfestellungen.

    Grüße
  • Hhhmmm kommt mir sehr bekannt vor :D
    Bin hier etwas eingerostet, bei Fehlern bitte ich jmd. es zu verbessern.

    zu 1. : "public static void main(String[] args)" zeigt an, dass hier die main Methode beginnt. Eckige Klammern bedeuten ein leeres Array. Somit hier ein leeres String Array.
    Aber es reicht erst mal zu wissen, dass ab dem oben gennanten Ausdruck deine main Methode anfängt; d.h. ab hier können sozusagen all deine geschriebenen Methoden "angewendet" werden.

    zu 2. : "Hund meinHund = new Hund();" Instanziert ein neues Hund Objekt namens meinHund. Auf dieses Objekt wendest du dann alle "Befehle" an, z.b. meinHund.belle...
    Die Klammer ist hier leer, weil dein Hund keine Konstruktoren hat, also keine Startparameter.
    Bei getGröße und getName kann nix in den Klammern stehen, weil diese Methode wie der Name schon sagt, Infos abruft und nicht "schreibt". Deshalb stehen auch bei setName und setGröße etwas in den Klammern.

    zu 3. : void bedeutet, dass die Methode selbst nichts auspuckt. In der Main Methode legst du den Namen des Hundes mit setName fest und liest es mit Systemoutprintln(...hundename...) aus.
    Wenn z.b. eine Methode das Ergebnis einer anderen braucht, dann macht man nicht mehr void oder du das Ergebnis der Methode direkt auslesen willst.

    Ansonsten keine Panik, all deine Fragen werden auch noch in der Uni beantwortet...
  • Alles klar, vielen Dank dir!

    Ich gehe jetzt mal davon aus, dass man das verständlicher nicht mehr erklären kann, also kann dann auch schon wieder dichtgemacht werden. Ich melde mich wieder wenn neue Fragen auftauchen ;)

    Grüße