tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
1313
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Ja, auch bei anonymen Klassen gibt es Konstruktoren, jedoch ist deren aufruf Syntax etwas "ungewohnt":

    Zbsp.:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
            new Thread(){
                {//Hier folgt der Konstruktor Block:
                    setPriority(MIN_PRIORITY);
                }
                public void run(){
                    System.out.println("Loooooooong operation");
                }
            }.start();

    Mal ganz nebenbei...
    *Beitragszähler hochpush*

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  2. #2
    Avatar von Vincentius
    Vincentius Vincentius ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Stuttgart
    Beiträge
    295
    Hmm.. in "normalen" Klassen definiert man mit
    Code :
    1
    2
    3
    
    {
    ...
    }
    einen static-Block, soviel ich weiss.
     

  3. #3
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Das ist so nicht korrekt:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    package de.tutorials;
     
    /**
     * @author Darimont
     *  
     */
    public class Test35 {
        public Test35() {
            System.out.println("C");
        }
     
        {
            System.out.println("A");
        }
     
        static {
            System.out.println("B");
        }
     
        public static void main(String[] args) {
            new Test35();
        }
    }

    Gibt
    B
    A
    C

    aus...

    static Blöcke werden mit static{ ... eingeleitet...


    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  4. #4
    Avatar von Vincentius
    Vincentius Vincentius ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Stuttgart
    Beiträge
    295
    OK, heisst das, dass es auch in normalen Klassen als ein Konstruktor interpretiert wird?
     

  5. #5
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Übrigens werden diese Anonymen Konstruktoren NACH den "eigentlichen" Konstruktoren der jeweiligen Klasse aufgerufen:

    Beispiel:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    /**
     * @author Darimont
     *  
     */
    public class Test35 {
     
        public static void main(String[] args) {
            new Test35().doIt();
        }
     
        /**
         *  
         */
        private void doIt() {
            System.out.println(new T(Thread.MAX_PRIORITY) {
                {
                    System.out.println("Ctor anony");
                    setPriority(Thread.MIN_PRIORITY);
                }
            }.getPriority());
     
        }
     
        class T extends Thread {
            public T(int prio) {
                System.out.println("CTor T");
                setPriority(prio);
            }
        }
    }

    Ausgabe:
    CTor T
    Ctor anony
    1

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  6. #6
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Die "Dinger" nennt man übrigens Instanz Initialisierer.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  7. #7
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    OK, heisst das, dass es auch in normalen Klassen als ein Konstruktor interpretiert wird?
    Jap.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  8. #8
    Avatar von Vincentius
    Vincentius Vincentius ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Stuttgart
    Beiträge
    295
    Danke, wieder was gelernt.

    Gruß
    Vincent
     

Ähnliche Themen

  1. Konstruktoren
    Von drpingoo im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 17.09.08, 18:41
  2. Klassen-Konstruktoren und -Methoden
    Von Kafkalasch im Forum Java Grundlagen
    Antworten: 4
    Letzter Beitrag: 12.07.08, 17:46
  3. Konstruktoren
    Von mostwanted90 im Forum C/C++
    Antworten: 12
    Letzter Beitrag: 22.03.07, 14:16
  4. Konstruktoren bei Qt
    Von Azi im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 11.08.06, 18:39
  5. Konstruktoren
    Von MrDude im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 25.01.04, 14:22