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