I don't know where is the problem? Can you help me please?
1. Znajdź przykład wzorca singleton używanego w celu leniwej inicjalizacji. Użyj swojej ulubionej wyszukiwarki (np. Google).
2. Utwórz w osobnych plikach trzy klasy singleton na jego obraz i podobieństwo: Sun, Moon i Earth.
3. Zaimplementuj interfejs Planet w klasach Sun, Moon i Earth.
4. W bloku statycznym klasy Solution wywołaj metodę readKeyFromConsoleAndInitPlanet.
5. Zaimplementuj metodę readKeyFromConsoleAndInitPlanet:
5.1. Odczytaj z konsoli jedną wartość typu String.
5.2. Jeśli wartość jest równa jednej ze stałych interfejsu Planet, utwórz odpowiedni obiekt i przypisz go do Planet thePlanet, w przeciwnym razie ustaw Planet thePlanet na null.
Wymagania:
- Klasa Sun powinna zapobiegać tworzeniu obiektów Sun poza klasą.
- Klasa Sun musi mieć prywatne statyczne pole instance.
- Klasa Sun musi implementować publiczną statyczną metodę getInstance, która zwraca wartość pola instance.
- Metoda getInstance klasy Sun musi ZAWSZE zwracać ten sam obiekt.
- Pole instance musi być inicjalizowane po pierwszym wywołaniu metody getInstance, ale nie wcześniej.
- Klasa Moon powinna zapobiegać tworzeniu obiektów Moon poza klasą.
- Klasa Moon musi mieć prywatne statyczne pole instance typu Moon.
- Klasa Moon musi implementować publiczną statyczną metodę getInstance, która zwraca wartość pola instance.
- Metoda getInstance klasy Moon musi ZAWSZE zwracać ten sam obiekt.
- Pole instance musi być inicjalizowane po pierwszym wywołaniu metody getInstance, ale nie wcześniej.
- Klasa Earth powinna zapobiegać tworzeniu obiektów Earth poza klasą.
- Klasa Earth musi mieć prywatne statyczne pole instance typu Earth.
- Klasa Earth musi implementować publiczną statyczną metodę getInstance, która zwraca wartość pola instance.
- Metoda getInstance klasy Earth musi ZAWSZE zwracać ten sam obiekt.
- Pole instance musi być inicjalizowane po pierwszym wywołaniu metody getInstance, ale nie wcześniej.
- Metoda readKeyFromConsoleAndInitPlanet musi być wywoływana w bloku statycznym klasy Solution.
- Metoda readKeyFromConsoleAndInitPlanet powinna odczytywać jedną linię z klawiatury.
- Metoda readKeyFromConsoleAndInitPlanet musi poprawnie aktualizować wartość zmiennej thePlanet zgodnie z warunkami zadania.
- Klasy Sun, Moon i Earth muszą znajdować się w osobnych plikach.
package pl.codegym.task.task15.task1522;
public class Earth implements Planet {
private static Earth instance;
private Earth(){}
public static Earth getInstance(){
if(instance == null){
instance = new Earth();
}
return instance;
}
}