wewnetrzna klasa anonimowa - PROBLEM

0

Witam serdecznie wszystkich, mam problemik przy zrobieniu (dla niektórych na pewno prostego ćwiczenia), zgłębiam wiedzę na temat klas zezwnętrznych, wewnętrznych, zagnierzdzonych.....miałem do zrobienia proste ćwiczenie:
Stwórz klasę z prywatnym polem i metodą, utwórz klasę wewnętrzną z metodą modyfikującą to pole i wywołującą metodę tej klasy. Potem w innej metodzie klasy zezwnetrznej stwórz metodę tworzącą obiekt klasy wewnętrznej i wywołaj jego metodę.

<?
public class KlasaWewnetrzna2{
	
	private int i;
	
   	private void metoda(){
		
	}
	
	public void metoda2(){
		Wewnetrzna w = new Wewnetrzna();
		w.modyfikacja();
	}
	
	class Wewnetrzna{
		
		public void modyfikacja(){
			System.out.println(i);
			i = 12;
			System.out.println(i);
			KlasaWewnetrzna2 w = new KlasaWewnetrzna2();
			w.metoda();
		}
	}
	
	public static void main(String[] args){
		KlasaWewnetrzna2 t = new KlasaWewnetrzna2();
		t.metoda2();
		t.metoda3();
	}
}
?>

mój problem się zaczyna w momencie gdy mam zrobić to samo ale używając anonimowej klasy wewnętrznej... pomocy i z góry dzięki

0

Skoro klasa anonimowa jest anonimowa to inne elementy poza aktualnym blokiem kodu nie wiedzą nic o jej istnieniu. Nie można zatem używać jej metod, pól itp

0

Zamień na "static class Wewnetrzna" i później możesz zrobić:
new KlasaWewnetrzna2.Wewnetrzna().
W klasach anonimowych tego nie da się zrobić.

Natomiast z klasy anonimowej do klasy KlasaWewnetrzna2 możesz dostawać się tak:
KlasaWewnetrzna2.this.metoda2();

0

dzieki za pomoc, myśle że udało mi się to ogarnąć

1 użytkowników online, w tym zalogowanych: 0, gości: 1