13 Stimmen

Wie und wo verwendet man Static Modifier in Java?

Wie und wo sollten wir einen statischen Modifikator verwenden?

1. Feld und
2. Methode?

について Beispiel en java.lang.Math Klasse sind die Feldmethoden wie abs(), atan(), cos() usw. statisch, d.h. sie können als aufgerufen werden: Math.abs()

Aber warum ist das eine gute Praxis?

Angenommen, ich halte es nicht statisch und erstelle ein Objekt der Klasse und greife darauf zu, was ich ohnehin kann, dann erhalte ich nur eine Warnung, dass Sie versuchen, auf eine statische Methode auf nicht statische Weise zuzugreifen (wie von @duffymo hervorgehoben, nicht im Fall der Math-Klasse).

UPDATE 1:

Eine Utility-Methode sollte also statisch sein, d.h. ihre Arbeit ist nur von den Methodenparametern abhängig. So kann zum Beispiel die Methode updateString(String inputQuery, String highlightDoc) sollte eine statische Methode sein in diese Frage ?

0voto

duffymo Punkte 298898

Sie können eine Instanz von java.lang.Math nicht instanziieren; es gibt keinen öffentlichen Konstruktor.

Versuchen Sie es:

public class MathTest
{
    public static void main(String [] args)
    {
        Math math = new Math();

        System.out.println("math.sqrt(2) = " + math.sqrt(2));
    }
}

Das bekommen Sie:

C:\Documents and Settings\Michael\My Documents\MathTest.java:5: Math() has private access in java.lang.Math
        Math math = new Math();
                    ^
1 error

Tool completed with exit code 1

0voto

Bidyut Das Punkte 1
class StaticModifier
{    

    {
        System.out.println("Within init block");//third
    }
    public StaticModifier()
    {
        System.out.println("Within Constructor");//fourth
    }
    public static void main(String arr[])
    {
    System.out.println("Within Main:");//second
    //StaticModifier obj=new StaticModifier();
    }
    static
    {
    System.out.print("Within static block");//first
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X