Programmieren > Sprachen > Java

Klassen und Objekte

Grundlagen

public class Song { 
    // statisches Feld 
    private static int meinStatischesFeld; 
 
    // unveränderliches Feld. Muss spätestens im Konstruktor gesetzt werden 
    // und kann dann nicht mehr geändert werden 
    private final int answer = 42; 
 
    // Konstanten werden üblicherweise in Grossbuchstaben geschrieben 
    public static final double PI = 3.1415926; 
 
    // Feld 
    public String titel; 
    private int volume; 
 
    // Statische Methode 
    public static int getStaticField () { 
        return meinStatischesFeld; 
    } 
 
    // Konstruktor: Kein Rückgabewert! 
    public Song() { 
        this.titel = "Kein Titel"; 
        this.volume = 0; 
    } 
    // öffentliche Methode, die nichts zurückgibt (void) und als Parameter eine Zahl (int) entgegennimmt 
    public void setVolume ( int volume ) { 
        this.volume = volume; 
        // Code der die Lautstärke setzt 
    } 
 
    // öffentliche Methode, die die Lautstärke (int) zurückgibt und keine Parameter hat 
    public int getVolume () { 
        return volume; 
    } 
}
  
Song aSong = new Song(); 
aSong.setVolume( 5 ); 
aSong.titel = "Hallo Welt!"; 
System.out.println(aSong.titel); // Gibt "Hallo Welt" aus.

Vererbung

public class Tier {} 
public class Hund extends Tier {} 
public final class NoChilds {} // von dieser Klasse kann nicht geerbt werden

Die Klasse Hund erbt von der Klasse Tier. Das bedeutet.

Abstrakte Klassen

public abstract class Tier { 
    public abstract String gibLaut(); 
}

Interfaces

public interface Pflanzenfresser { 
    public void friss ( Pflanze futter ); 
}
public class Hund extends Tier implements Pflanzenfresser, Fleischfresser {}

Innere Klassen

public class Aussen { 
    // Öffentliche statische innere Klasse 
    public static class PublicStaticInnen {} 
 
    // Nichtöffentliche statische innere Klasse 
    private static class PrivateStaticInnen {} 
 
    // Nichtstatische Klasse 
    // Sie hat Zugriff auf Methoden und Felder der Klasse Aussen! 
    public class PublicInnen {} 
    private class PrivateInnen {} 
 
    // Anonyme Klasse. Nur an der Stelle ihrer Erzeugung verfügbar. 
    System.out.println(new Object(){ 
        @Override 
        public String toString() { 
            return "Hello from Anonymous"; 
        } 
    }); 
}
// Ausserhalb der Klasse Aussen (hier sind nur öffentliche Klassen erreichbar!) 
PublicStaticInnen publicStaticInnen = new Aussen.PublicStaticInnen(); 
 
Aussen aussen = new Aussen(); 
PublicInnen PublicInnen = aussen.new PublicInnen(); 
 
// Innerhalb der Klasse Aussen 
PublicStaticInnen publicStaticInnen = new PublicStaticInnen(); 
PrivateStaticInnen privateStaticInnen = new PrivateStaticInnen(); 
PublicInnen publicInnen = new PublicInnen(); 
PrivateInnen privateInnen = new PrivateInnen();

Enumerationen

public enum Kartenfarbe { 
    KARO, HERZ, PIK, KREUZ; 
}
Kartenfarbe herz = Kartenfarbe.HERZ;