Jak wywołać metodę w main?

0

Witam,

mam taki kod jak poniżej i chce w metodzie main wywolać funkcje push.
Jak to zrobić? Najpierw muszę dla tej klasy utworzyć obiekt?


public class zad51 {

    /**
     * @param args
     */

    int stos[] = new int[5];
    int idx=0;

    public void push(int cos)
    {
        stos[idx]=cos;
        idx++;
    }

    public int pop()
    {

        idx--;
        return stos[idx];
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int k=5;

    }

}
0

eee ?

public class zad51 {

        /**
         * @param args
         */

        int stos[] = new int[5];
        int idx=0;

        public static void push(int cos)
        {
                stos[idx]=cos;
                idx++;
        }

        public static  int pop()
        {

                idx--;
                return stos[idx];
        }
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                push(4);
                int k=5;

        }

}

To jedynie odp na Twoje pyt :] Ale czy nie lepiej zrobić oddzielną klasę stosu? Ja nie widzę sensu takich wynalazków, jakie zapodałeś

0

takie cos mi nie dziala : Cannot make a static reference to the non-static method push(int) from the type zad51;

korzystam z Eclipse i nie mogę stworzyć kilku klas w jednym pliku. nie da się tego zrobic?

0

@Michaell65 omg czemu dzieciom daja teraz komputery na komunię zamiast zagarków? Dlatego próbujesz napisać coś w języku którego wyraźnie nie rozumiesz? Metody które sobie napisałeś to metody klasy i mozna je wywołać TYLKO na OBIEKTACH tej klasy. Funkcja main() jest STATYCZNA czyli nie powiązana z żadnym obiektem. Żeby wywołać metodę w main() musisz najpierw stworzyć odpowiedni OBIEKT.
Jeśli nie zrozumiałeś czegoś ze zdania powyzej to odstaw komputer na 3 dni, zaopatrz się w książkę mówiącą o podstawach OOP i Javy i potem tu wróć.

0
  1. Możesz i powinieneś utworzyć druga klasę.
  2. W Eclipse możesz definiować wiele klas w jednym pliku.
  3. Przy Twoim rozwiązaniu (jedna, brak tworzenia obiektów) pola też muszą być static.
0

W main wpisz

Zad51 Zad51 = new Zad51();
Zad51.nazwa_metody();

0

To można wykonać na wiele sposobów, ale jaki to ma praktyczny sens...

public class Zad51 {

   private static int stos[] = new int[5];
   private static int idx = 0;

   private static void push(int cos) {
      stos[idx] = cos;
      idx++;
   }

   private static int pop() {
      idx--;
      return stos[idx];
   }

   public static void main(String[] args) {
      int k = 5;
      push(k);
      pop();
   }
}
public class Zad51 {

   private int stos[] = new int[5];
   private int idx = 0;

   private void push(int cos) {
      stos[idx] = cos;
      idx++;
   }

   private int pop() {
      idx--;
      return stos[idx];
   }

   public static void main(String[] args) {
      Zad51 zad51 = new Zad51();
      int k = 5;
      zad51.push(k);
      zad51.pop();
   }
}

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