Wywolanie obiektu

0

1.Dlaczego nie mam dostepu do i jak to poprawic?

c.pole(5);

  1. Jesli int wybor = m.viewMenu(); jest statyczna metoda to powinno sie zapisac Menu zamiast m ? jest jakas reguła na to?
package abc;


import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		 Menu m = new Menu();
		 Data data = new Data(); 
		 Cube c;
		 
try {		
		  Scanner in = new Scanner(System.in);
		  
	        int wybor = m.viewMenu();
	 
	        while(wybor!=0){
	            switch(wybor){
	                case 1:
	                	 System.out.println("Wprowadz szescian");

	                	 int a = in.nextInt();
	                	
	                	 c = new Cube(a);
	                	 System.out.println( c.toString());
	                	 
	                	 data.listCube.add(c);
	                	 
	                    break;
	 
	                case 2:
	                 	 System.out.println("Lista obiektow");
	                 	       
	                 	 
	                 	if(data.listCube.isEmpty()){
	    					System.out.println("Lista pusta");	
	    				} 
	                 	 
	                 	for(int i=0; i<data.listCube.size(); i++){
	    					System.out.println(i+". "+data.listCube.get(i).toString() );
	    				}
	                 	 
	                    break;
	 
	                case 3:
	                 	

	                 	if(data.listCube.isEmpty()){
	    					System.out.println("Nie ma szescianow w bazie");	
	    				}
	    				else{
	    					System.out.println("Dla kogo chcesz policzyc pole?");
	    					//wyswietlenie klientow
	    					for(int i=0; i<data.listCube.size(); i++){
	    						System.out.println(i+". "+data.listCube.get(i).toString() );
	    						}
	    					for(int i=0; i<data.listCube.size(); i++){
	    						i = in.nextInt();
	    						data.listCube.get(i);
	    					System.out.println("Wybrales szescian " + i );
	    					}

	    					 Cube c;
	    					c.pole(5);
	    					
	    					
	    				}
	                 	 
	                	 break;
	 
	            }
	 
	            System.out.println("\nWciśnij Enter, aby kontynuować...");
	            System.in.read();
				
	 
	            wybor = m.viewMenu();
	        }
		 

	} catch (Exception e) {

		e.printStackTrace();
	}





	}
}

0

Bo tworzysz obiekt Cube w case 1. Jezeli sie on nie wywoła to obiekt ten nie istnieje a tym samy, nie możesz wywołać jego metody. Albo utwórz obiekt wcxeśniej, albo w tym case bądź zamień metodę pole na statyczną

0

Na samym poczatku masz:
Menu m = new Menu();
Data data = new Data();
Cube c;
w case 3. masz ponowną deklaracje Cube c.

W case 3. worzystasz z c, które masz zadeklarowane( ale nic do zmiennej c nie przypisałeś)

Na koniec w instrukcjach switch dodaj na koncu opcje "default" , która zajmie się obsługą wszystkich pozostałych przypadków ( czyli tych po za 1,2,3)

Poniżej masz link gdzie jest to prosto wyjasnione:
https://javastart.pl/static/podstawy-jezyka/instrukcje-sterujace/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.