Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    173

    Programma biblioteca java

    Salve a tutti,
    ho iniziato a studiare java dal libro di Deitel, e mi è venuta l'intenzione di scrivere un semplice programma che prendesse in input i titoli e la durata di alcuni film.
    Sicuramente c'è qualcosa che non ho compreso bene della programmazione ad oggetti visto che vengo dal C.
    Ho provato tutto ma non ne vengo a capo.
    Grazie mille

    Ho scritto la classe beni:

    codice:
    public class beni {
    	private String titolo;
    	private String anno;
    	
    	
    	public beni (String titolo, String anno) {
    		this.titolo = titolo;
    		this.anno = anno;
    	}
    public String getTitolo(){
    	return titolo;
    }
    
    public String getAnno(){
    	return anno;
    }
    
    public void setTitolo(String p){
    	titolo 
    = p;
    }
    
    public void setAnno(String p){
    	anno = p;
    }
    
    public String getBeni(){
    	return titolo+ " " +anno;
    }
    
    
    }
    poi ho scritto il main per provare questa classe, visto che è una prova è scritta senza un ciclo for o while

    codice:
    import java.util.Scanner;
    public class test {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner utente = new Scanner (System.in);
    		
    		beni uno = new beni(String titolo, String anno);
    		
    		
    		System.out.println("Inserisci nuovo bene.\n Nome:");
    		uno.setTitolo=utente.next();
    		System.out.println("Anno:");
    		uno.setAnno=utente.next();
    		
    		
    
    		 
    		 
    		 System.out.println(beni.getBeni);
    
    	}
    
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123

    Re: Programma biblioteca java

    Originariamente inviato da mcfede88
    Salve a tutti,
    ho iniziato a studiare java dal libro di Deitel, e mi è venuta l'intenzione di scrivere un semplice programma che prendesse in input i titoli e la durata di alcuni film.
    Sicuramente c'è qualcosa che non ho compreso bene della programmazione ad oggetti visto che vengo dal C.
    Ho provato tutto ma non ne vengo a capo.
    Grazie mille
    Ottieni errori in fase di runtime o di compilazione?

    Ricordati sempre che una classe dichiarata come public deve essere dichiarata in un file a se stante.
    E ricordati che il nome della classe deve essere uguale al nome del file.

    Così a occhio, l'errore che ti ho trovato dovrebbe essere qui
    codice:
    beni uno = new beni(String titolo, String anno);
    Li devi passare 2 stringhe, non creare 2 stringhe!!
    Ovvero, dovresti passare
    codice:
    beni uno = new beni(titolo,anno);
    Ricordati che un costruttore inizializza un oggetto durante la creazione.

    Ovviamente devi ottenere prima il loro valore

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    173
    ho fatto ma mi da sempre errore, su uno di setTitolo e setAnno ed errore su titolo, anno di beni uno = new beni.

    Ci deve essere qualche errore nei metodi set o nello scanner.

    Perchè se faccio
    codice:
    beni uno = new beni ("Federico","100");
    System.out.println(uno.getBeni());
    Il tutto funziona

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Non mi è per nulla chiaro perchè chiami il metodo in questo modo

    codice:
    uno.setTitolo=utente.next();
    Per settare il titolo ti basterebbe fare
    codice:
    uno.setTitolo();
    PS: posta l'errore che ottieni

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    173
    chiamo
    codice:
     uno.setTitolo=utente.next();
    perchè lo devo prendere da tastiera.

    comunque ho cambiato come dici tu e mi dici
    "uno cannot be resolved"
    "titolo cannot be resolved"
    "anno cannot be resolved"

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Commetti i classici errori di chi passa da un linguaggio come C a Java.

    i metodi setTitolo() e setAnno() ricevono degli argomenti, quindi devi chiamarli inserendo degli argomenti.

    Il tuo codice corretto
    codice:
    import java.util.Scanner;
    class beni {
    	private String titolo;
    	private String anno;
    	
    	
    	public beni (String titolo, String anno) {
    		this.titolo = titolo;
    		this.anno = anno;
    	}
    public String getTitolo(){
    	return titolo;
    }
    
    public String getAnno(){
    	return anno;
    }
    
    public void setTitolo(String p){
    	titolo = p;
    }
    
    public void setAnno(String p){
    	anno = p;
    }
    
    public String getBeni(){
    	return titolo+ " " +anno;
    }
    
    
    }
    
    public class test {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner utente = new Scanner (System.in);
    		
    		beni uno = new beni("Ciao","10");
    		
    		
    		System.out.println("Inserisci nuovo bene.\n Nome:");
    		uno.setTitolo(utente.next());
    		System.out.println("Anno:");
    		uno.setAnno(utente.next());
    		
    		
    
    		 
    		 
    		 System.out.println(uno.getBeni());
    
    	}
    
    }
    utente.next() devi chiamarlo all'interno della funzione setTitolo() e setAnno() in modo tale che il dato inserito venga passago come parametro al metodo
    Comunque ti consiglio di controllare i dati in input.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    173
    ok grazie,
    ma non ho risolto un errore
    se io cambio
    codice:
    beni uno = new beni("Ciao","10");
    in

    codice:
    beni uno = new beni (titolo, anno);
    mi da sempre
    anno e titolo cannot be resolved

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Originariamente inviato da mcfede88
    ok grazie,
    ma non ho risolto un errore
    se io cambio
    codice:
    beni uno = new beni("Ciao","10");
    in

    codice:
    beni uno = new beni (titolo, anno);
    mi da sempre
    anno e titolo cannot be resolved
    Bè scusa mi sembra normale!!
    Come fai a passare titolo ed anno se non esistono?
    Nel costruttore devi sempre utilizzare utente.next() sia per titolo che per anno. Oppure puoi creare 2 stringhe e ricevere li i valori:
    String nome = utente.next();
    String anno = utente.next()

    beni uno = new beni(nome,anno);

    è buona norma l'iniziale maiuscola per il nome della classe

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    173
    Continuo con la stesura del mio programma.
    Praticamente devo gestire sia libri che dvd quindi ho fatto delle classi DVD e libri che estendono la classe beni.

    Adesso vorrei che il mio programma assegnasse un id ai DVD che inserisco:
    Esempio:
    Adesso io ho questo:
    codice:
    	public static void InserimentoDVD (){
    		
    	
    	Scanner utente = new Scanner (System.in);
    		
    	System.out.println("Inserisci nuovo DVD.\n Titolo: ");
    	String nome = utente.next();
    	
    	System.out.println("Anno:");
    	String anno = utente.next();
    	
    	System.out.println("Durata:");
    	int durata = utente.nextInt();
    	
    
    	DVD uno =  new DVD(nome, anno, durata);
    	uno.setTitolo(nome);
    	uno.setAnno(anno);
    	uno.setDurata(durata);
    	
     }
    E vorrei fare una cosa del genere solo che non riesco a farla funzionare:
    codice:
    	public static void InserimentoDVD (){
    		
    	
    	Scanner utente = new Scanner (System.in);
    		
    	System.out.println("Inserisci nuovo DVD.\n Titolo: ");
    	String nome = utente.next();
    	
    	System.out.println("Anno:");
    	String anno = utente.next();
    	
    	System.out.println("Durata:");
    	int durata = utente.nextInt();
    	int idDVD = 0;
    
    	DVD [idDVD] =  new DVD(nome, anno, durata);
    	[idDVD].setTitolo(nome);
            [idDVD].setAnno(anno);
    	[idDVD].setDurata(durata);
            idDVD++;
    	}

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    codice:
    	int idDVD = 0;
    
    	DVD [idDVD] =  new DVD(nome, anno, durata);
    	[idDVD].setTitolo(nome);
            [idDVD].setAnno(anno);
    	[idDVD].setDurata(durata);
            idDVD++;
    	}
    Il primo problema che vedo è sicuramente la creazione dell'istanza.
    Usi un riferimento DVD (ti pregherei di postare anche la classe DVD, in modo da poter vedere il suo funzionamento ), ma non crei la variabile d'istanza.

    Non mi è chiaro perchè utilizzi un costruttore passando i dati appena ricevuti dall'input (nome, anno, durata), e poi sotto chiami i metodi..

    Prima di poterti essere d'aiuto ho bisogno di sapere perchè vuoi utilizzare un array di DVD..

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.