Witam. Problem opisany w kodzie programu, nigdzie nie znalazłem rozwiązania. Klasa klasa_z_klasami_podrzedmymi jest tablicą obiektów w klasie tuJestMain.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package TEST;
/**
*
* @author Zbigniew
*/
public class tuJestMain {
klasa_z_klasami_podrzednymi[] klasa = new klasa_z_klasami_podrzednymi[10];//tablica obiektów
public static void main(String args[]){
tuJestMain myMain = new tuJestMain();
for(int i=0;i<10;i++) myMain.klasa[i] = new klasa_z_klasami_podrzednymi();//inicjalizacja obiektów
myMain.klasa[0].zmienna2 = "coś";
myMain.klasa[1].zmienna2 = "coś";
System.out.println(myMain.klasa[0].zmienna2);//działa
System.out.println(myMain.klasa[1].zmienna2);//działa, ma wartość null
System.out.println("Wolne " + myMain.szukajPustegoString());
myMain.klasa[1].zmienna2 = null;
System.out.println("Wolne " + myMain.szukajPustegoString());
/* Jak dostać się do klasa_z_klasami_podrzednymi -> klasaPodrzedna -> zmienna 3?
Jak się dostaćdo metody klasaPodrzedna? */
}
//przeszukuje obiekty do napotkania pustej znienna2
private int szukajPustegoString () {
int i = 0;
do { i=i+1;
} while(klasa[i].zmienna2 != null);
return i;
}
}
Plik klasa_z_klasami_podrzednymi
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package TEST;
/**
*
* @author Zbigniew
*/
public class klasa_z_klasami_podrzednymi {
int zmienna1;
String zmienna2;
public klasa_z_klasami_podrzednymi(int zmienna1, String zmienna2) { //jak z tuJestMain uruchomić ten konstruktor?
this.zmienna1 = zmienna1;
this.zmienna2 = zmienna2;
}
public klasa_z_klasami_podrzednymi(){} //do inicjalizacji obiektów bez argumentów
class klasaPodrzedna extends klasa_z_klasami_podrzednymi { //jak z tuJestMain uruchomić ten konstruktor?
float zmienna3;
public klasaPodrzedna(int zmienna1, String zmienna2, float zmienna3) {
super(zmienna1, zmienna2);
this.zmienna3 = zmienna3;
}
}
public void jakisProgram() {}
}