|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 1757
|
[Java] Esercizio Telefonino
Sto usando un libro univesitario per imparare java, ci sono degli esercizi, ma non sono risolti. Come risolvereste questo?
Si vuole realizzare un sistema per la composizione dei messaggi da inviare tramite telefonino. Ad ogni messaggio corrisponde un codice. Ad esempio al codice "ta" corrisponde il messaggio completo "ti amo, amore.". Definire la classe TestoMessaggio per la gestione dei messaggi. La classe deve avere un metodo per creare oggetti TestoMessaggio leggendo il codice e il messaggio completo da tastiera, un metodo per restituire il codice ed un metodo per restituire il testo del messaggio. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Un modo di risolvere l'esercizio è creare una classe Message che ingloba sia il codice che il testo esteso:
Codice PHP:
Codice PHP:
Ciao.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 1757
|
Chiedo scusa, colpa mia che non l'ho spiegato prima.
Questo esercizio è proposto sul libro quando ancora non sono stati spiegati i vettori e non sono ancora state spiegate le istruzioni condizionali. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Forse perchè le dava per scontate...
![]() Come si fa a parlare di classi, oggetti, metodi senza conoscere i vettori e le if??? |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Dec 2001
Messaggi: 1385
|
l'esercizio chiede solo di definire una classe con quei metodi, non basta il primo frammento di codice suggerito da anx721?
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km" ![]() |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 1757
|
Quote:
|
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Quote:
Bhè, in effetti è impossibile fare questo esercizio senza le istruzioni condizionali, a meno di non usare una Hashtable, ma dubito che volesse questo il libro... La sola classe Massage non basta, perchè il libro chiede una classe che mantenga una serie di corrispondenze (codice-messaggio): la classe Message serve a rappresentare una singola coppia, mentre MessagesText serve a contenere l'insieme di tutte le coppie, ciao.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 1757
|
Secondo me, essendo solo a titolo didattico, vuole che si prevedano 2 o 3 messaggi solo per vedere se si è capito come creare nuovi oggetti.
Io avrei pensato a un paio di messaggi chiamati m1 e m2 creandoli con una cosa del tipo: testoMessaggio m1 = new testoMessaggio(cod,text); testoMessaggio m2 = new testoMessaggio(cod,text); dove cod e text vengono assegnati a delle variabili digitandoli in una finestra di dialogo. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Se è cosi allora ti basta la sola classe Message che avevo definito sopra.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Dec 2001
Messaggi: 1385
|
Quote:
![]() ![]()
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km" ![]() |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 1757
|
Nuovi sviluppi del programma
Andando avanti vengono richieste altre funzioni per il programma.
la classe TestoMessaggio è quella proposta all'inizio del thread, vi ricordo che non si possono usare vettori, istruzioni condizionali o cicli, basta creare un numero di oggetti sufficiente a testare il programma. Un messaggio deve contenere il numero da chiamare, il mittente ed il testo del messaggio. Definire una classe Messaggio, con: 1) un metodo che crea un'istanza a partire da un oggetto di classe TestoMessaggio e 2 stringhe che rappresentano il numero di tel. del mittente e destinatario 2) un metodo che crea un'istanza a partire da un oggetto di classe TestoMessaggio ed una stringa che rappresenta il numero di telefono del mittente 3) un metodo che crea un'istanza a partire da un oggetto di classe TestoMessaggio 4) un metodo che riceve come parametro il numero di telefono del destinatario ed aggiorna il destinatario del messaggio 5) un metodo per la stampa del messaggio Scrivere un programma di esempio, che usa le due classi TestoMessaggio e Messaggio. Il programma deve: 1) contenere un metodo statico per la lettura di un numero telefonico da input 2) inizializzare una variabile di classe String, che corrisponde al numero di telefono del mittente 3) leggere il testo di un messaggio ed il codice, e memorizzarli in un oggetto di classe TestoMessaggio 4) leggere il numero di telefono del destinatario 5) creare un oggetto di classe Messaggio 6) visualizzare l'oggetto di classe Messaggio |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Posta una domanda precisa su cio che non ti e chiaro, se ti diamo la risposta completa noi non capisco cosa ne ricavi a fare questi esercizi.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 1757
|
Quote:
Come risolvo il punto 4) della prima parte? Ecco la classe Messaggio come l'ho pensata io: Codice PHP:
Ultima modifica di Alhazred : 05-03-2004 alle 15:17. |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Per fare in modo che la classe estesa Messaggio contenga il numero del destinatario e il numero del mittente devi dichiarare due campi di tipo stringa che conterranno queste informazioni. Quello che tu hai fatto non è corretto in quanto non hai definito due campi, ma delle variabili locali all'interno dei costruttori, che vengono distrutte appena il costruttore termina.
Quindi String numMitt; String numDest; vanno posti al di fuori del costruttore; all'interno del costruttore poi fai l'assegnamento: numMitt = mitt; numDest = dest; Per aggiornare il destinatario è sufficiente dichiarare un metodo che prende una stringa numDest e la assegna al campo numDest. Bada che se l'argomento del metodo ha lo stesso nome del campo numDest, all'interno del metodo per far riferimento al campo numDest della classe devi usare la forma: this.numDest, mentre usando solo numDest fai riferimento all'argomento.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 1757
|
Ho apportato la modifica alla classe estesa Messaggio, quella di mettere String numMitt e String numDest fuori dal costruttore.
Credo di aver risolto in questo modo: Codice PHP:
Ho provato con una cosa di questo tipo: Codice PHP:
" cannot resolve symbol symbol : method modificaDest (java.lang.String)" Togliendo la chiamata e ricompilando va tutto bene, però in esecuzione mi si presenta un altro errore: "Exception in thread "main": Java.lang.NoSuchMethodError: main" |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Il motivo per cui non trova il main è che non lo hai dichiarato static:
public void main (String[] args) invece deve essere public static void main (String[] args) Il motivo per cui non trova il metodo modificaDest è perche questo è un metodo della classe Messaggio, non della classe Cliente, quindi lo devi invocare su un oggetto della classe Messaggio, ovvero sull'oggetto m1 che rappresenta il tuo Messaggio: m1.modificaDest(nuovoDest);
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 1757
|
Grazie, ho risolto, adesso funziona tutto
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:53.