public class LiczbyPierwsze
{
private int tab[];
int licznik = 0;
public int liczba ( int m)
{
**return this.tab[m];**
}
public LiczbyPierwsze( int n)
{
int pomoc[] = new int[n];
for (int i = 0; i < n; i++)
{
pomoc[i] = i + 1;
//System.out.print(+pomoc[i]+ " | ");
}
pomoc[0] = 0;
for (int i = 3; i < n; i++)
{
if (pomoc[i] != 0)
{
for (int j = 2; j < i; j++)
{
if (pomoc[i] % j == 0)
{
pomoc[i] = 0;
}
}
}
//System.out.println(+pomoc[i]);
}
for (int i = 0; i < pomoc.length; i++)
{
if (pomoc[i] != 0)
{
licznik++;
}
}
int tab[] = new int[licznik];
int a = 0;
for (int i = 0; i < n; i++) {
if (pomoc[i] != 0)
{
tab[a]=pomoc[i] ;
System.out.println(+tab[a]); //test
a++;
}
}
}
}
public class TestLiczbyPierwsze
{
public static void main(String args[])
{
int n=0;
try
{
n=Integer.parseInt(args[0]);
if(n < 2)
{
System.out.println("Podano niepoprawną wartość zakresu poszukiwanie liczb pierwszych!");
System.exit(0);
}
}
catch (NumberFormatException ex)
{
System.out.println("Podano niepoprawną wartość zakresu poszukiwanie liczb pierwszych!");
System.exit(0);
}
LiczbyPierwsze p = new LiczbyPierwsze(n);
for(int i = 1; i<args.length; i++)
{
try
{
n=Integer.parseInt(args[i]);
if(n < 0 || n >= p.licznik)
{
System.out.println(args[i]+" - Liczba spoza zakresu.");
continue;
}
}
catch(NumberFormatException ex)
{
System.out.println(args[i]+" - Nieprawidłowa dana.");
continue;
}
**System.out.println(liczba(n));**
}
}
}
błąd z konsoli
Exception in thread "main" java.lang.NullPointerException
at LiczbyPierwsze.liczba(LiczbyPierwsze.java:8)
at TestLiczbyPierwsze.main(TestLiczbyPierwsze.java:39)
Dlaczego to nie działa a powinno?