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

    Problemi di Classi, void e di simboli di confronto

    CiaO! Ho da poco iniziato Java e ho dei problemi: Ho fatto due classi..


    Sanremo.java

    codice:
    import java.io.*;
    
    /*
     *d
    */
    
    class Sanremo
    {
    	private String canzone;	//titolo della canzone
    	private int voti;		//numero dei voti ricevuti dal pubblico; Sarà poi la giuria a decretare il vincitore
    							//in caso di voti pari.
    	private String categoria;	//categoria della canzone G giovani - A adulti - N nuovi talenti
    	private int posizione;	//posizione raggiunta
    	
    	InputStreamReader input = new InputStreamReader(System.in);
    	BufferedReader tastiera = new BufferedReader(input);
    		
    	public Sanremo()
    	{
    		canzone = "";
    		voti = 0;
    		posizione = 0;
    	}
    	
    	public void setCanzone(int i)
    	{
    		System.out.println("Titolo della Canzone numero " + i+1);		
    		try
    		{
    			canzone = tastiera.readLine();
    		}
    		catch(Exception e){}
    		
    		System.out.println("\nCategoria della Canzone numero " + i+1);		
    		try
    		{
    			categoria = tastiera.readLine();
    		}
    		catch(Exception e){}
    	}
    	
    	public void setVoti(int i)
    	{
    		System.out.println("\nVoti della Canzone numero " + i+1);		
    		try
    		{
    			String votiS = tastiera.readLine();
    			voti = Integer.valueOf(votiS).intValue();
    		}
    		catch(Exception e){}
    	}
    	
    	public void setPosizione(int i)
    	{
    		System.out.println("\nPosizione della Canzone numero " + i+1);		
    		try
    		{
    			String votiS = tastiera.readLine();
    			voti = Integer.valueOf(votiS).intValue();
    		}
    		catch(Exception e){}
    	}
    	
    	public void getDati()
    	{
    		System.out.println("" + canzone + " (" + categoria + ")-> " + voti + " voti\n");
    	}
    	
    	public int getPunti() { return voti; }
    }

    ProgSanremo.java

    codice:
    class ProgSanremo
    {
    	public static void main(String argv[])
    	{
    		int costante = 6; //Canzoni
    		
    		//Dichiarazione delle Variabili -> Private
    		int tot = 0;
    		
    		//Dichiarazioni degli oggetti
    		Sanremo prima,seconda,terza;
    		Sanremo canzoni[] = new Sanremo[costante];
    		
    		for(int i=0; i<costante; i++)
    		{
    			canzoni[i] = new Sanremo();
    			canzoni[i].setCanzone(i);
    		}
    		
    		//Assegno alla prima canzone le 3 posizioni. Si cambieranno, poi
    		prima   = canzoni[0];
    		seconda = canzoni[0];
    		terza   = canzoni[0];
    		
    		//Calcolo le prime tre posizioni e le ritorno
    		for(int i=0; i<costante; i++)
    		{
    			tot += canzoni[i].getPunti();
    			
    			int px = canzoni[i].getPunti();
    			
    			System.out.println(px);
    			if(px > prima && px < seconda) prima = canzoni[i];
    			else if(px > seconda && px < terza) seconda = canzoni[i];
    			else if(px > terza) terza = canzoni[i];			 
    		}
    		
    		System.out.println("\n\nCLASSIFICA\n\n");
    		System.out.println("\n\n\t1) " + prima.getDati());
    		System.out.println("\n\t2) " + seconda.getDati());
    		System.out.println("\n\t3) " + terza.getDati());
    	}
    }


    Mi da errori vari:

    1) Errore su:

    codice:
    		System.out.println("\n\n\t1) " + prima.getDati());
    		System.out.println("\n\t2) " + seconda.getDati());
    		System.out.println("\n\t3) " + terza.getDati());
    Mi dice che void type not allowed here.. Per tutte e tre le istruzioni

    E pooi mi da errore in:


    codice:
    			int px = canzoni[i].getPunti();
    			
    			System.out.println(px);
    			if(px > prima && px < seconda) prima = canzoni[i];
    			else if(px > seconda && px < terza) seconda = canzoni[i];
    			else if(px > terza) terza = canzoni[i];
    e qui mi dice che "operator > o < cannot be applied on int,Sanremo"


    AIUTOOOOO!!!

  2. #2
    1) stai mettendo dentro una println la chiamata ad un metodo che ritorna void (ovvero niente). O fai si' che il tuo metodo ritorni la stringa
    codice:
    ("" + canzone + " (" + categoria + ")-> " + voti + " voti\n")
    oppure fai ad esempio
    codice:
    System.out.println("\n\n\t1) ");
    prima.getDati();
    2) L'errore ti spiega esattamente il problema: canzoni[i] e' definito come oggetto di tipo Sanremo, di conseguenza anche prima, seconda, ec.. lo sono, e tu con < o > lo stai confrontando con px che e' un intero. probabilmente quello che intendi fare e' ad esempio

    codice:
    if(px > prima.getPunti() && px < seconda.getPunti())
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

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.