Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Problemino su un piccolo programma con metodi!!!

    Vi mostro il programma:

    codice:
    import java.util.*;
    
    public class TestPokemon
    {
    	public static void main(String[] args)
    	{
    		Pokemon[] pkmn = new Pokemon[2];
    		pkmn[0] = new Pokemon("Blastoise",20);
    		pkmn[1] = new Pokemon("Charizard",80);
    
    		for(int i=0; i<pkmn.length; i++)
    		{
    			Pokemon p = pkmn[i];
    			System.out.println("Esce dalla sfera un " + p.getName() + " a livello " + p.getLevel() +"!");
    		}
    		System.out.println("");
    		Pokemon.doFight(pkmn[0],pkmn[1]);
    	}
    }
    
    
    
    
    class Pokemon
    {
    	// Costruttore che crea oggetti di tipo Pokemon
    	public Pokemon(String n, int l)
    	{
    		name = n;
    		level = l;
    	}
    
    	// Metodo di acquisizione nome
    	public String getName()
    	{
    		return name;
    	}
    
    	// Metodo di Acquisizione livello
    	public int getLevel()
    	{
    		return level;
    	}
    
    	// Metodo per far combattere i 2 pokemon
    	public static String doFight(Pokemon x, Pokemon y)
    	{
    		System.out.println(x.getName() + " di livello " + x.getLevel() + " e " + y.getName() + " di livello "
    		+ y.getLevel() + " stanno combattendo!");
    
    		if(x.getLevel() < y.getLevel())
    		{
    			System.out.println(y.getName() + " ha vinto!" + y.getName() + " è esausto!");
    		}
    		else
    		{
    			System.out.println(x.getName() + " ha vinto!" + y.getName() + " è esausto!");
    		}
    	}
    	// Campi di istanza
    	private String name;
    	private int level;
    }
    mi da un errore nel costruttore nel senso che non mi riconosce le variabili n e l...e alla fine dice che mi manca una graffa chiusa...

    Cosa mi suggerite?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Problemino su un piccolo programma con metodi!!!

    Originariamente inviato da LeLeB87
    mi da un errore nel costruttore nel senso che non mi riconosce le variabili n e l...e alla fine dice che mi manca una graffa chiusa...
    Non mancano graffe ... manca un return. doFight() dichiara come tipo di ritorno un String ma non c'è alcun return nel metodo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    il solo problema che ho trovato è che il metodo doFight non ritorna niente quando la firma dice che ritorna una String

  4. #4

  5. #5
    e quindi come dovrei cambiare il codice?

    il metodo doFight mi servirebbe solo per fare stampare dei testi a video!

  6. #6
    piccolo up!!!

    Non sono molto pratico datemi una mano please!!!

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da LeLeB87
    e quindi come dovrei cambiare il codice?

    il metodo doFight mi servirebbe solo per fare stampare dei testi a video!
    Quindi non dovrebbe restituire nulla? E se invece di dichiarare come tipo di ritorno String dichiari void??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Originariamente inviato da LeLeB87
    piccolo up!!!

    Non sono molto pratico datemi una mano please!!!
    Hai scritto 'sto codice e non sai che fare? :master:

    Comunque basterebbe modificare così

    codice:
    public static void doFight(Pokemon x, Pokemon y)
    ovvero non torna nulla.

    Edit: anticipato elegantemente da andbin

  9. #9
    grazie mille!!! mettendo void anche il problema delle variabili n e l si è risolto!!!

    Grazie ancoraa tutti quelli che han risposto!!!

  10. #10
    Posto il codice conclusivo con un cambiamento nel vettore iniziale!!!

    codice:
    import java.util.*;
    
    public class TestPokemon
    {
    	public static void main(String[] args)
    	{
    		Pokemon[] pkmn = new Pokemon[2];
    		pkmn[0] = new Pokemon("Blastoise",20);
    		pkmn[1] = new Pokemon("Charizard",80);
    		Pokemon pkmn1 = pkmn[0];
    		Pokemon pkmn2 = pkmn[1];
    
    		for(int i=0; i<pkmn.length; i++)
    		{
    			Pokemon p = pkmn[i];
    			System.out.println("Esce dalla sfera un " + p.getName() + " a livello " + p.getLevel() +"!");
    		}
    		System.out.println("");
    		Pokemon.doFight(pkmn1,pkmn2);
    	}
    }
    
    
    class Pokemon
    {
    	// Costruttore che crea oggetti di tipo Pokemon
    	public Pokemon(String n, int l)
    	{
    		name = n;
    		level = l;
    	}
    
    	// Metodo di acquisizione nome
    	public String getName()
    	{
    		return name;
    	}
    
    	// Metodo di Acquisizione livello
    	public int getLevel()
    	{
    		return level;
    	}
    
    	// Metodo per far combattere i 2 pokemon
    	public static void doFight(Pokemon x, Pokemon y)
    	{
    		System.out.println(x.getName() + " di livello " + x.getLevel() + " e " + y.getName() + " di livello "
    		+ y.getLevel() + " stanno combattendo!");
    
    		if(x.getLevel() < y.getLevel())
    		{
    			System.out.println(y.getName() + " ha vinto!" + y.getName() + " e' esausto!");
    		}
    		else
    		{
    			System.out.println(x.getName() + " ha vinto!" + y.getName() + " e' esausto!");
    		}
    	}
    
    	// Campi di istanza
    	private String name;
    	private int level;
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.