Methodenkopf: Zu was wenns auch ohne geht?

Status
Nicht offen für weitere Antworten.
C

casimir

Gast
Hi,

ich weiss bei diesem "Problem" irgendwie nicht nach was ich suchen soll, vielleicht weiss einer von Euch was das darstelen soll:


BSP:
Code:
public class test {
	
	static 
	{
		System.out.println("test");
	}
	
	public static void main(String[] args) {}
}


Wieso kann man eine Funktion(?) ohne Methodenkopf einfach in eine Klasse reinschreiben und das wird dann auch noch ausgeführt ohne das es explizit ausgeführt wird??? Ist das denn zu irgendwas nutze? Hab ich in einem Hibernate Code-Snippet so entdeckt... Einfach nur Schlamperei, oder für Leute die zu faul sind den Constructor hinzuschreiben?
 
S

SlaterB

Gast
wichtig ist hier das Schlüsselwort 'static'

generell kann man darüber diskutieren, ob statische Variablen usw gut oder schlecht sind,
sollten eigentlich immer durch normale Objekte zu ersetzen sein, aber man spart sich doch gewisse Arbeit,


wenn man nun akzeptiert, dass es sowas wie static gibt, dann reicht nicht immer

static Typ x = new Typ();

für bestimmte Variablendeklarationen oder sonstige Aufgaben muss man bisschen mehr tun,
dafür gibts normalerweise Konstruktoren, aber static ist ja eigentlich objekt- + konstruktorlos,

nicht ganz, denn static {} ist eine Art statischer Konstruktor, der genau einmal bei der Initialisierung der Klasse ausgeführt wird,

Beispiel:

Code:
public class X
{
    /** */
    public static DecimalFormat GERMAN_AMOUNT_FORMAT = new DecimalFormat("#,##0.00");
    /** */
    public static DecimalFormat ENGLISH_AMOUNT_FORMAT = new DecimalFormat("#,##0.00");

    static
    {
        // Komma + Tausender-Trennzeichen
        DecimalFormatSymbols dfg = new DecimalFormatSymbols(Locale.GERMAN);
        DecimalFormatSymbols dfe = new DecimalFormatSymbols(Locale.ENGLISH);
        GERMAN_AMOUNT_FORMAT.setDecimalFormatSymbols(dfg);
        ENGLISH_AMOUNT_FORMAT.setDecimalFormatSymbols(dfe);
        // setRoundingMode geht nur für Java 6, deshalb derzeit auskommentiert
        // Problem: new BigDecimal("0.0030005") wird auf 3.000% gerundet, nicht auf
        // 3.001%
        // Alternative: selber vorher runden
        // GERMAN_AMOUNT_FORMAT.setRoundingMode(RoundingMode.HALF_UP);
        // ENGLISH_AMOUNT_FORMAT.setRoundingMode(RoundingMode.HALF_UP);
    }

}
 
C

casimir

Gast
Hey, danke für die Antworten. Dann hat das also tatsächlich einen Sinn. Der Typ der das in meinem Beispiel verwendet hat es aber wohl eher aus purer Faulheit benutzt...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Methoden ohne Methodenkopf ?! Allgemeine Java-Themen 5
G Warum einfach wenns kompliziert auch geht? Allgemeine Java-Themen 12
kodela StatusBar-Anzeigen auch in Log-Datei ausgeben Allgemeine Java-Themen 3
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
S HTML einer Webseite 1:1 so bekommen wie es auch der Browser anzeigt? Allgemeine Java-Themen 14
S Mit Methoden kann man definieren für was <T> steht. Geht das auch irgendwie für Variablen? Allgemeine Java-Themen 12
F 2 JsonArray vergleichen, geht es auch einfacher ? Allgemeine Java-Themen 3
N nicht static und auch nicht new Allgemeine Java-Themen 3
M Openjdk - gibt es auch eine Openjre? Allgemeine Java-Themen 7
S Java.exe exestiert, aber irgendwie auch nicht Allgemeine Java-Themen 11
J Eigene Api erstellen und dann auch verwenden - Ordnerstruktur Allgemeine Java-Themen 1
X Datentypen Byte geht nicht höher als 126 auch nicht mit casten? Allgemeine Java-Themen 22
G Erste Schritte Aufgabe - Geht das auch schneller ? Allgemeine Java-Themen 7
Thallius Neuen Prozess starten, der auch nach Beedingung des Starter-Prozesses weiterläuft? Allgemeine Java-Themen 5
L Variable auch in der function verfügbar machen? Allgemeine Java-Themen 4
Zettelkasten JAR-Datei kann bei Freund auch nicht mit CMD ausgeführt werden Allgemeine Java-Themen 4
A Classpath ResourceBundle Problem bzgl. Pfade bzw. Pfade (auch in Eclipse) generell? Allgemeine Java-Themen 7
T auch bei neustart laufen... Allgemeine Java-Themen 3
i<3java [Groovy/Grails](oder auch java) Mögliche Performance Probleme bei Mailversendung Allgemeine Java-Themen 2
TheDarkRose Subversion .class Dateien auch commiten? Allgemeine Java-Themen 3
T Set.contains() auch false wenn value == null? Allgemeine Java-Themen 4
S Daten extrahieren aus Excel Dateien (auch 2k7) Allgemeine Java-Themen 4
S Map die die auch ein getKey(value) erlaubt? Allgemeine Java-Themen 2
ARadauer mit keylistener hören auch wenn frame nicht den focus hat Allgemeine Java-Themen 2
G mit Apache-Jakarta-POI auch Graphiken aus Excel einlesen? Allgemeine Java-Themen 3
L Java app läuft under win xp, automatisch auch unter vista32 Allgemeine Java-Themen 14
P JTextField textfarbe schwarz auch wenn JTF deaktiviert ist Allgemeine Java-Themen 4
P Java 6 kompilierte programme laufen die auch unter JRE 1.4.x Allgemeine Java-Themen 43
M Objekte Dauerhaft speichern und evtl. auch ändern? Allgemeine Java-Themen 6
Chris_1980 Geht das nicht auch einfacher (Arcanoid Multiball) Allgemeine Java-Themen 2
D Geht es auch schneller doppelte Einträge zu löschen? Allgemeine Java-Themen 23
S Java Compiler spinnt oder auch nicht ? Allgemeine Java-Themen 5
M Datei immer auslesen können, auch im JAR Allgemeine Java-Themen 7
D mails auch als fax verschicken ? ? ? Allgemeine Java-Themen 2
R setDragEnabled auch für Applet Allgemeine Java-Themen 4
R DropTarget auch für Applet selbst Allgemeine Java-Themen 2
K Registry-Zugriff auch einfacher? (ORACLE_HOME auslesen) Allgemeine Java-Themen 3
A Auch so können Java-Anwendungen aussehen Allgemeine Java-Themen 18
1 Eine Flash-Seite auch in Java realisierbar ? Allgemeine Java-Themen 2
N JRE kaputt, auch nach Neuinstallation Allgemeine Java-Themen 7
H Vererbung auch ohne erzeugung einer Instanz möglich? Allgemeine Java-Themen 3
A Verzeichnis auflisten - auch innerhalb eines Jars Allgemeine Java-Themen 6
B Java ist auch eine Insel Allgemeine Java-Themen 10
G ChangeListener auch für TextField? Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben