Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 38

Discussione: [JAVA] Classe "libro"

  1. #1

    [JAVA] Classe "libro" (help!).

    Rieccomi!
    Ma stavolta più che altro avrei bisogno di chiedere (a chi ovviamente avrà voglia di aiutarmi) se ho sbagliato qualcosa nel codice... Ho un dubbio sulla correttezza- del metodo "finestraLibro". Anche perché il testo richiedeva di far stampare il risultato (dell'applicazione di quel metodo) su DUE LINEE... e sono rimasta un po' perplessa. Come potrei fare?

    Il testo dell'esrcizio mi diceva:

    Definire una classe libro per gestire le informazioni associate ad un libro. Le informazioni di interessa per un libro sono il titolo, gli autori ed il prezzo. I metodi di interesse sono:

    crealibro, che crea un oggetto libro, con titolo ed autori come parametri.
    stampaLibro, che stampa il titolo e gli autori di un libro su due linee.
    stampaLibroPrezzo, che stampa il titolo e gli autori di un libro su due linee su una finestra di output.
    getTitolo, che restituisce il titolo di un libro.
    getAutori, che restituisce gli autori in un libro.
    getPrezzo, che restituisce il prezzo di un libro.
    setPrezzo, che modifica il prezzo di un libro con il valore intero passato come argomento.
    Il codice che io ho scritto è questo:

    import javax.swing.JOptionPane;


    public class Libro
    {
    // rappresentazione degli oggetti
    private String titolo;
    private String autore;
    private int prezzo;



    // costruttore Libro
    public Libro(String t, String a, int p)
    {
    titolo = t;
    autore = a;
    prezzo = p;
    }


    //metodi pubblici
    // Questo metodo crea un nuovo oggetto LIBRO.
    public void creaLibro(String t, String a, int p)
    {

    }

    // Questo metodo serve per stampare titolo ed autore di un libro.
    public void stampLibro()
    {
    System.out.print("TITOLO:" + titolo);
    System.out.println("AUTORE:" + autore);
    }

    // Questo metodo serve per stampare titolo, autore e prezzo.
    public void stampaLibroPrezzo()
    {
    System.out.println("TITOLO:" + titolo + "AUTORE:" + autore + "PREZZO:" + prezzo);

    }

    // Questo metodo serve per stampare su una finestra di OUTPUT titolo, autore e prezzo.
    public void finestraLibro()
    {
    String finestra = "TITOLO:" + titolo + "AUTORE:" + autore + "PREZZO:" + prezzo ;
    JOptionPane.showMessageDialog(null, finestra);

    }


    // Questo metodo restituisce il titolo di un libro.
    public String getTitolo()
    {
    return titolo;

    }

    // Questo metodo restituisce il nome dell'Autore di un libro.
    public String getAutori()
    {
    return autore;

    }

    // Questo metodo restituisce il prezzo del libro.
    public int getPrezzo()
    {
    return prezzo;

    }

    // Questo metodo consente di modificare il prezzo di un libro.
    public void setPrezzo(int nuovoPrezzo)
    {
    prezzo = nuovoPrezzo;

    }

    }
    Ecco qui. Thanks in advance!
    I'm going under (going under)
    Drowning in you (drowning in you)
    I'm falling forever (falling forever)
    I've got to break through
    I'm going under

    { GOING UNDER - Evanescence }

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    solo un dubbio avrei io, quel metodo creaLibro non è che deve essere un metodo factory?
    Anche se la parolona "metodo factory" può confondere all'inizio non è altro che un metodo statico che sostituisce la funzione del costruttore, spesso questi metodi sono utili da usare per cambiare firma del "costruttore" a seconda dei parametri passati, cosa che un costruttore veroi e proprionon può fare visto che il nome deve essere sempre quello uguale alla classe.
    Quindi io il metodo creaLibro lo implementerei così:

    codice:
    public static Libro creaLibro(String t, String a, double p)
    //inoltre il prezzo lo farei a virgola mobile visto che gli euro hanno
    //decimali
    {
    return new Libro(t, a, p);
    }
    Per stampare le informazioni del libro sei sicura che non basti utilizzare la console?

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    Uhm... cosa intendi esattamente per "cambiare firma del costruttore", netarrow? ?_?
    Comunque c'è da dire che in effetti sul costruttore avevo dei dubbi... Lasciando vuoto il metodo "creaLibro" quindi cosa avrebbe fatto il programma alla fine dei conti?

    Sulla questione di "double" o "int" beh... siccome lo richiedeva il testo dell'esercizio -credo. O almeno parlava di "valore intero". Sbagliato io?- avevo preferito int.

    Per quanto invece riguarda questo:
    Per stampare le informazioni del libro sei sicura che non basti utilizzare la console?
    Cioè? O.o Nel senso che avrei potuto omettere "String finestra = blablabla..." ? Il mio dubbio qui più che altro, comunque, era come accidenti dovessi fare per far stampare le informazioni nella finestra di Output ma... su due linee ?_?
    I'm going under (going under)
    Drowning in you (drowning in you)
    I'm falling forever (falling forever)
    I've got to break through
    I'm going under

    { GOING UNDER - Evanescence }

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    per cambiare firma del costruttore intendevo che se hai la classe Libro il costruttore avrà sempre la firma(nome) Libro, se fai tanti metodi statici puoi cambiare il loro nome a seconda dei loro parametri; ma non farci caso, la storia dei metodi factory l'ho tirata fuori solo perchè il metodo creaLibro nel tuo codice non faceva niente e perchè nel nell'esercizio diceva che doveva ritornare un oggetto Libro.

    Per ilprezzo effetivamente l'esercizio chiede un valore intero, non avevo visto, ma non è certo questo il problema.

    Sul fatto di stampare su due linee se bastasse scrivere a console dovresti semplicemente fare come hai fatto in stampLibro usando System.out.println().

    Se vuoi usare il JOptionPane per stampare su due linee mi sembra che non basta utilizzare \n, se mi viene in mente ti dico.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  5. #5
    Se vuoi usare il JOptionPane per stampare su due linee mi sembra che non basta utilizzare \n, se mi viene in mente ti dico
    Basta, basta! Almeno a me... ^__^ (Uso Java 1.5)
    Gia' testato a sufficienza...

    codice:
            public void about() {
                JOptionPane.showMessageDialog(Lotto.this,
                        TITOLO + "\nversione " + version + "\n(L)2005 by DeK",
                        "Informazioni sul programma",
                        JOptionPane.INFORMATION_MESSAGE);
            }
    P.S. Di solito si usa int per la valuta perche' sono cmq numeri a virgola fissa. In questo modo non ci si affida all'arrotondamento di default dell'ambiente che puo' non corrispondere a quello usato in ambito economico, come in effetti e' nel caso dell'euro!
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  6. #6
    getAutori, che restituisce gli autori in un libro e non l'autore

    quindi:

    codice:
    // Questo metodo restituisce il nome dell'Autore di un libro.
    public String[] getAutori()
    {
       return autori;
    }
    dove autori è un array di stringhe no?

  7. #7
    e comunque secondo me i 2 metodi di stampa non centrano assolutamente nulla con questa classe...solitamente le classi oltre ad implementare i metodi get, implementano anche il metodo toString() che fornisce una rappresentazione della classe....che esercizio pollo...

  8. #8
    Aspettate, non confondetemi le idee! XD
    Allora: per prima cosa, dekdek... tu hai sperimentato che "\n" fa stampare su due linee in una finestra di output?
    V1RuZ: so dell'esistenza degli array, ma nella pratica non sono ancora arrivata a studiarli. E tuttavia... penso che l'esercizio in effetti intendesse che c'era bisogno di tirar fuori l'autore di un determinato libro, e non gli autori di tutti i libri presenti boh non so... in uno schedario, fai conto. Quindi penso non ci fosse bisogno di usare array (anche perché, appunto, nel capitolo del libro a cui sono arrivata non se ne parla ancora ^^; ).
    I'm going under (going under)
    Drowning in you (drowning in you)
    I'm falling forever (falling forever)
    I've got to break through
    I'm going under

    { GOING UNDER - Evanescence }

  9. #9
    Piccola rettifica: V1RuZ, (array a parte) volevi soltanto farmi notare che ho sbagliato a scrivere AUTORI fra i Commenti se poi invece la variabile la chiamavo "autore" (dato che giustamente l'esercizio mi chiedeva l'AUTORE, apppunto, del libro)?
    I'm going under (going under)
    Drowning in you (drowning in you)
    I'm falling forever (falling forever)
    I've got to break through
    I'm going under

    { GOING UNDER - Evanescence }

  10. #10
    Originariamente inviato da Rei-chan
    Piccola rettifica: V1RuZ, (array a parte) volevi soltanto farmi notare che ho sbagliato a scrivere AUTORI fra i Commenti se poi invece la variabile la chiamavo "autore" (dato che giustamente l'esercizio mi chiedeva l'AUTORE, apppunto, del libro)?
    ti spiego il mio intervento:
    il testo dell'esercizio (cosi come lo hai postato tu) dice:
    "getAutori, che restituisce gli autori in un libro. "
    ti ho fatto notare che tu invece avevi implementato un metodo che restituiva un solo autore...non so xchè stai svolgendo questo esercizio, ma quando ho seguito tempo fa il corso di informatica 2 gli esercizi andavano seguiti alla lettera e se chiedevano un metodo che restituisse gli autori, fargli restituire solo un autore era un errore grave...ecco perchè sono abbastanza maniacale su queste cose...tutto qua

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.