Υπάρχει κάτι παρόμοιο με τη "static class" στη java;
Ποιο είναι το νόημα μιας τέτοιας κλάσης. Πρέπει όλες οι μέθοδοι της στατικής κλάσης να είναι επίσης "στατικές";
Απαιτείται το αντίστροφο, ότι αν μια κλάση περιέχει όλες τις στατικές μεθόδους, πρέπει να είναι και η κλάση στατική;
Σε τι χρησιμεύουν οι στατικές κλάσεις;
Λοιπόν, η Java έχει "στατικές εμφωλευμένες κλάσεις", αλλά δεν είναι καθόλου ίδιες με τις στατικές κλάσεις της C#'αν αυτό είναι το σημείο από το οποίο έρχεστε. Μια στατική εμφωλευμένη κλάση είναι απλώς μια κλάση που δεν έχει σιωπηρά μια αναφορά σε μια περίπτωση της εξωτερικής κλάσης.
Οι στατικές εμφωλευμένες κλάσεις μπορούν να έχουν μεθόδους παραδείγματος και στατικές μεθόδους.
Δεν υπάρχει τέτοιο πράγμα όπως μια στατική κλάση ανώτατου επιπέδου στη Java.
Υπάρχει μια στατική εμφωλευμένη κλάση, αυτή η [στατική εμφωλευμένη] κλάση δεν χρειάζεται ένα παράδειγμα της περιβάλλουσας κλάσης για να ενσαρκωθεί η ίδια.
Αυτές οι [στατικές εμφωλευμένες] κλάσεις μπορούν να έχουν πρόσβαση μόνο στα στατικά μέλη της περιβάλλουσας κλάσης [αφού δεν έχει καμία αναφορά σε περιπτώσεις της περιβάλλουσας κλάσης...].
δείγμα κώδικα:
public class Test {
class A { }
static class B { }
public static void main(String[] args) {
/*will fail - compilation error, you need an instance of Test to instantiate A*/
A a = new A();
/*will compile successfully, not instance of Test is needed to instantiate B */
B b = new B();
}
}