Java Programmierung Gymansium

...komplette Frage anzeigen

3 Antworten

Methoden dienen zur Gliederung deines Programmes. Sie sind logische Einheiten (oder Codeblöcke). Zum einen stellt dir die Sprache Java Methoden zur Verfügung (z.B. System.out.println() ) zum anderen kannst du selbst Methoden schreiben, um eben das zu erledigen, was in deinem Programm zu tun ist. 

Jedes Java-Programm hat mindestenes eine, nämlich die main() - Methode.

Die Ausführung des Java-Programmes beginnt und endet mit der main()-Methode. Diese sollte alle anderen Methoden aufrufen, und damit sollte all das erledigt werden, was dein Programm können sollte.

Die Attribute in der Klasse sind gekapselt, du kannst nicht direkt auf sie zugreifen (private).

Du musst mit getter/setter-Methoden auf sie zugreifen (guter Stil).

Alternativ kannst du die Eigenschaften auch public machen (anstatt private),

was allerdings kein guter Stl ist!

lg

outofjail hat schon vieles beantwortet. Wenn du es noch detaillierter wissen möchtest empfehle ich dir dieses online-Buch: "Java ist auch eine Insel"

Deine Fragen werden dort ab Kapitel 2.2 beantwortet:

<a href="http://openbook.galileocomputing.de/javainsel/javainsel_02_002.htm#mje6cf7db9d2efcd52e5d81fc832f8b139" target="_blank">http://openbook.galileocomputing.de/javainsel/javainsel\_02\_002.htm#mje6cf7db9d2efcd52e5d81fc832f8b139</a>

 

Attribute sind nicht zwangsweise gekapselt. Wenn du in Java objektorientiert programmierst, dann gehört es aber zu einem guten Stil die Instanzvariablen (die Attribute der Klasse) zu kapseln, das bedeutet, dass du nicht von ausserhalb des Objekts auf sie zugreifen kannst. Damit du von aussen nun noch auf diese Daten zugreifen kannst musst du Schnittstellen bereitstellen, eigentlich immer in der Form von getter-/setter-Methoden. Das bietet eine reihe von Vorteilen, aber auch ein paar Nachteile. Beispiel

    public class Test {        
        private int testNummer;
        public int getTestNummer() { return this.testNummer; }
        public void setTestNummer(int testNummer) { this.testNummer = testNummer; }    
    }      

    Test test = new Test();    
    test.setTestNummer(1);    
    system.out.println(test.getTestNummer());

Du kannst das kapseln aber auch lassen (zu 99% nicht empfohlen) und dann direkt auf die "Attribute eines Objekts schreiben". Beispiel:

    public class Test2 {
        public int testNummer;
    }

    Test2 test2 = new Test2();
    test2.testNummer = 1;
    system.out.println(test2.testNummer);

In beiden Fällen kommt das gleiche Ergebnis bei raus.

Bei der Kapselung ist es aber so, dass du als Programmierer bestimmen kannst wie auf die Attribute zugegriffen wird. Ohne Kapselung kann ein aussenstehendes Objekt dein Objekt beliebig verändern und das möchtest du eigentlich nicht.

 

Was möchtest Du wissen?