mam do napisania następujący program:
Proszę napisać program, w którym zdefiniowana zostanie klasa Statek posiadająca co najmniej jedno publiczne pole nr do numerowania statków. Klasa Start ma natomiast utworzyć tablicę o rozmiarze SEA_SIZE (SEA_SIZE to stała całkowitoliczbowa o wartości 50) i umieści w niej, na losowo wybranych pozycjach, SHIPS statków (SHIPS to stała całkowitoliczbowa o wartości 10). Pozostałe pola tablicy mają nie mieć przypisanych obiektów klasy Statek. W trakcie tworzenia statków mają zostać one ponumerowane. Tablicę należy następnie przesłać do metody znajdującej się w klasie Start. Metoda ta ma przeglądnąć całą tablicę i wypisać na ekranie położenie i numer statku.
Na pozycji 5 jest statek 2
Na pozycji 7 jest statek 8
Na pozycji 13 jest statek 6
Na pozycji 16 jest statek 4
itd.
na razie stworzyłam coś takiego:
import java.util.*;
class Statek
{
public int nr;
}
class Start
{
final static int SEA_SIZE = 50;
final static int SHIPS = 10;
public static void main(String[] args)
{
Statek[] tab = new Statek[SEA_SIZE];
Random generate = new Random();
Statek naszstatek = new Statek();
Start a = new Start();
int i;
for(i = 0; i < SHIPS; i++)
{
tab[generate.nextInt(SEA_SIZE)] = naszstatek;
naszstatek.nr = i;
}
a.wypisz(tab);
}
public static void wypisz(Statek[] tablica)
{
for(int i = 1; i < tablica.length; i++)
{
if(tablica[i] != null)
{
System.out.println("Na pozycji " +i+ " jest statek " +tablica[i].nr);
}
}
}
}
co jest źle.
wynik działania programu jest następujący:
Na pozycji nr: 6 jest statek o numerze: 9
Na pozycji nr: 13 jest statek o numerze: 9
Na pozycji nr: 18 jest statek o numerze: 9
Na pozycji nr: 19 jest statek o numerze: 9
Na pozycji nr: 25 jest statek o numerze: 9
Na pozycji nr: 30 jest statek o numerze: 9
Na pozycji nr: 40 jest statek o numerze: 9
Na pozycji nr: 43 jest statek o numerze: 9
Na pozycji nr: 47 jest statek o numerze: 9
Na pozycji nr: 49 jest statek o numerze: 9
a więc program nie pokazuje na jakiej pozycji jest każdy ponumerowany satek, tylko każdej pozycji przypisuje ten sam statek.
nie umiem tego naprawić. czy mógłby mi ktoś pomóc?