Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[PROBLEM] Odwoływanie się do innej klasy


Rekomendowane odpowiedzi

Opublikowano

Witam !
Pierwszy post na forum a więc miło mi u was gościć : )
Mam mały problem z programem. Mam dwie klasy, klasa menu i klasa wybor. W klasie menu odwołuje się do zmiennej z klasy wybora, jednak jest błąd w kompilacji.

Ich kody:

Plik menu.java (klasa menu... :D)

 

import java.util.Scanner;

public class menu{
  public void main(String[] args){

	
  
	int opcja;
	Scanner odczyt = new Scanner(System.in);
	
      System.out.println ("                     MENU:");
	  System.out.println ("1. Nowa Gra");
	  System.out.println ("2. Wczytaj Gre");
	  System.out.println ("3. Opcje");
	  
	 opcja = odczyt.nextInt();
	 
	 
	  
  }
}

Plik wybor.java

 

import java.util.Scanner;

public class wybor{
  public static void main(String[] args){
  menu menu = new menu();
  
  System.out.println (menu.opcja);
  
  // switch (menu.opcja){
  //case 1:
  //System.out.println ("siema");
  //break;
  //case 4:
 // System.out.println ("Nie ma takiej opcji");
  //break;
  //default:
  //System.out.println ("DEFAULT");
 // }

	
	  
  }
}

 

Pomijając tego switcha, nie działa.

Podczas kompilacji wypluwa błąd:

"wybor.java:7: error: cannot find symbol

System.out.println (menu.opcja);
^
symbol: variable opcja
location: variable menu of type menu
1 error"
Nie bardzo łapie o co chodzi...
Jestem laikiem jeśli chodzi o jave ale z programowaniem miałem trochę styczności (Sporo AutoIt, podstawy w c++ i php).
Swoją drogą zamiast użycia klasy mógłbym tu wykorzystać funkcje ( w javie chyba metody to się nazywa ?) Ale to również mi nie wyszło. Moim celem jest zrobienie menu w którym przy wyborze cyferki spoza listy wyświetli się jakiś tekst i program od nowa wyświetli nam menu z zapytaniem do którego punktu chcemy przejść.
Z góry dzięki za odpowiedź,
Maciek :)

Sygna.png


Opublikowano

"opcja" nie jest zmienną składową klasy menu, przez co nie możesz jej wywołać z innej klasy, czy nawet innej metody tej samej klasy. Do tego jest mały problem, ponieważ wywołując konstruktor klasy nie wywołujesz metody main, tylko konstruktor. Brzmi to raczej logicznie. Jeśli nie rozumiesz - Tworząc obiekt jakiejś klasy nie uruchamiasz jej metody main, tylko konstruktor. Metodę main uruchamiasz tylko włączając program. A więc to jest poprawny kod:

Klasa menu:

public class menu {
	int opcja;

	public menu() {

		Scanner odczyt = new Scanner(System.in);

		System.out.println("                     MENU:");
		System.out.println("1. Nowa Gra");
		System.out.println("2. Wczytaj Gre");
		System.out.println("3. Opcje");

		this.opcja = odczyt.nextInt();

	}
}

Klasa wybór:

public class wybor {
	 public static void main(String[] args){
		  menu menu = new menu();
		   
		  System.out.println (menu.opcja);
		   
		   switch (menu.opcja){
		  case 1:
		  System.out.println ("siema");
		  break;
		  case 4:
		  System.out.println ("Nie ma takiej opcji");
		  break;
		  default:
		  System.out.println ("DEFAULT");
		  }
		 
		     
		       
		  }
}


No... Jeśli pomogłem liczę na "Lubię to"... :)
Pozdrawiam.

 

 

Jeśli masz jeszcze jakieś problemy to zawsze mogę pomóc na gg. (Numer w profilu)

708121422388637873334.png

Opublikowano

Dzięki, działa, jednak napotkałem potem kolejny problem którego rozwiązaniem było pobranie kompilatora c++ w którym wszystko co chciałem zrobiłem bez żadnych problemów :)
Temat do zamknięcia.

Sygna.png


Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...