Dodanie obiektu klasy do stosu.

0

Witam, nie mogę dodać obiektu klasy (który przechowuje w tablicy) do stosu. Z błędu wynikało by, że dany element tablicy (punkty[0]...punkty[n]) jest pusty. Deklaracja stosu jako "Stack<punkt> stos" nie rozwiązuje w żaden sposób sprawy. Może popełniłam błąd z deklaracją samej tablicy...już sama nie wiem.

Exception in thread "main" 
java.lang.NullPointerException
    at Otoczka.znajdzOtoczke(Otoczka.java:100)
    at Otoczka.main(Otoczka.java:156)
import java.util.Scanner;
import java.util.Stack;

public class Otoczka extends Punkt
{
    private static int      ilosc_punktow;
    private static Scanner  skaner;
    private static Punkt[]  punkty;
    private static Stack    stos; //"Stack<Punkt> stos" niczego nie poprawia
    private static Punkt    przed_ostatni, ostatni;
    public Punkt znajdz_minimum()
    {
        ....
    }
    public void transpozycja(Punkt tmp)
    {
          ...
    }
    public float policzKaty(Punkt tmp)
    {
          ...
    }
    public void ustawKaty()
    {
        ...
    }
    public void sortujPunkty()
    {
        ....
    }
    public int okresl_kierunek_skretu(Punkt p1, Punkt p2, Punkt p3)
    {

    }
    public void znajdzOtoczke()
    {
        Punkt tmp = new Punkt();
        //tmp = punkty[0];                               //TU O DZIWO NIE MA PROBLEMU
        //System.out.println(tmp);
        stos.push(punkty[0]);                         // TUTAJ JEST PROBLEM!
        ostatni = punkty[0];
        stos.push(punkty[1]);
        przed_ostatni = punkty[1];
        stos.push(punkty[2]);

        for (int i = 3; i < ilosc_punktow; i++)
        {
            while (okresl_kierunek_skretu(ostatni, przed_ostatni, punkty[i]) <= 0)
            {
                            ...
            }
                      ...
        }
    }

    public static void main(String[] args)
    {
        // pobranie ilosci punktow
        skaner = new Scanner(System.in);
        System.out.println("Podaj ilosc punktow: ");
        ilosc_punktow = skaner.nextInt();
        punkty = new Punkt[ilosc_punktow];

        for (int i = 0; i < punkty.length; i++)
        {
            System.out.println("Podaj " + (i + 1) + " wspolrzedna: ");
            int x = skaner.nextInt();
            int y = skaner.nextInt();
            punkty[i] = new Punkt(x, y, 0);
        }

        Otoczka otoczka = new Otoczka();
        Punkt tmp = new Punkt();
        // wyszukanie punktu oddalonego najbardziej na lewo i w dół
        tmp = otoczka.znajdz_minimum();
        otoczka.transpozycja(tmp);
        otoczka.ustawKaty();
        otoczka.sortujPunkty();

        for (int i = 0; i < punkty.length; i++)
        {
            System.out.println(i);
            System.out.println(punkty[i]);
        }
        otoczka.znajdzOtoczke();                                                    // BŁĄD
    }

}
0

a inicjalizujesz ten stos?

btw. przedostatni razem

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