Ahojte.
Moj problem spociva v tom, ze mam vytvorenu triedu Pole, potom triedu Akvarium a v nej vytvaram objekt triedy Pole pole. V triede Akvarium vytvaram odkaz na dvojrozmerne pole, ktoremu priradujem premennu s nazvom akvarium. A teraz otazka:
viem priradit premennej akvarium odkaz na prvok statickePole v triede Pole tak, aby som mohol cez odkaz plnohodnotne pracovat s polom statickePole? Lebo teraz ako to mam spravene tak to nefunguje.
Dakujem
import java.util.Scanner;
public class Hlava{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int vyska, sirka;
System.out.println("zadaj vysku: ");
vyska = sc.nextInt();
System.out.println("zadaj sirku: ");
sirka = sc.nextInt();
Akvarium akvarium = new Akvarium(vyska,sirka);
Pole pole = new Pole(vyska,sirka);
akvarium.vytvorAkvarium();
akvarium.vykresliAkvarium();
pole.statickePole();
pole.vypisStatickePole();
}
}
import java.util.ArrayList;
public class Pole{
public int vyska,sirka;
Integer[][] statickePole;
public Pole(int vyska,int sirka){
this.vyska = vyska;
this.sirka = sirka;
}
/**metoda na vytvorenie statickeho dvojrozmerneho
* pola*/
public void statickePole(){
ArrayList<Integer> dinamickePoleVyska = new ArrayList<Integer>(vyska);
ArrayList<Integer> dinamickePoleSirka = new ArrayList<Integer>(sirka);
for(int i=0;i<vyska;i++){
dinamickePoleVyska.add(1);
}
for(int i=0;i<sirka;i++){
dinamickePoleSirka.add(1);
}
this.statickePole = new Integer[dinamickePoleVyska.size()][dinamickePoleSirka.size()];
}
/**metoda ktora mi naplni pole, je to len taka skusobna
* metoda aby som vedel ci mi spravne vyalokuje a naplni
* staticke pole*/
public void naplnStatickePole(){
for(int i=0;i<statickePole.length;i++){
for(int j=0;j<statickePole[i].length;j++){
statickePole[i][j] = 1;
}
}
}
/**metoda ktora mi vypisuje ci som dobre vytvoril staticke
* pole, je to len skusobna metoda*/
public void vypisStatickePole(){
statickePole();
naplnStatickePole();
for(int i=0;i<statickePole.length;i++){
for(int j=0;j<statickePole[i].length;j++){
System.out.print(statickePole[i][j]);
}
System.out.println();
}
}
}
import java.util.*;
public class Akvarium{
public int vyska, sirka;
public Akvarium(int vyska,int sirka){
this.vyska = vyska;
this.sirka = sirka;
}
Integer[][] akvarium;
Pole pole = new Pole(vyska,sirka);
/**pouzitie triedy pole a jej metody na vytvorenie statickeho
* pola a naplnenie statickeho pola v triede Pole
* a nasledne priradenie premennej akvarium
* odkaz na vytvoreny objekt pole.statickePole*/
public void vytvorAkvarium(){
pole.statickePole();
pole.naplnStatickePole();
akvarium = pole.statickePole;
for(int i=0;i<akvarium.length;i++){
for(int j=0;j<akvarium[i].length;j++){
akvarium[i][j] = new Integer(1);
}
}
}
/**metoda na vypisanie obsahu akvaria*/
public void vykresliAkvarium(){
for(int i=0;i<akvarium.length;i++){
for(int j=0;j<akvarium[i].length;j++){
System.out.println(akvarium[i][j]);
}
System.out.println();
}
}
}