Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-02-2004, 16:59   #1
Alhazred
Senior Member
 
L'Avatar di Alhazred
 
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.
Alhazred è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2004, 17:47   #2
anx721
Senior Member
 
L'Avatar di anx721
 
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:
class Message{
       
       private 
String code;
       private 
String mex;

       public 
Message(String codeString mex){
              
this.codecode;
              
this.mex mex;
       }

       public 
string getCode(){
              return 
code;
       }

       public 
string getMex(){
              return 
mex;
       }

Quindi la classe MessagesText che memorizza le coppie (codice, testo) attraverso ogetti della classe Message e inserisce gli oggetti Message costruiti in un Vector:

Codice PHP:
class MessagesText{
     
     private 
Vector messages;

     public 
MessagesText(){
            
messages = new Vector();
     }


     public 
addMessage(String codeString mex){
          
messages.add(new Message(codemex));
      }

....

....

Poi ti implementi il metodo per ottenere il codice di un messaggio: dato il messaggio m, ti scorri il vettore messages e per ogni oggetto in tale vettore verifichi se quel Message ha il campo mex uguale a m; se è cosi restituisci il suo codice. Analogamente per il metodo che restituisce il messaggio a partire dal codice.

Ciao.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 09:02   #3
Alhazred
Senior Member
 
L'Avatar di Alhazred
 
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.
Alhazred è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 09:17   #4
cn73
Senior Member
 
L'Avatar di cn73
 
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???
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 09:20   #5
monkey72
Senior Member
 
L'Avatar di monkey72
 
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"
monkey72 è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 11:00   #6
Alhazred
Senior Member
 
L'Avatar di Alhazred
 
Iscritto dal: Dec 2003
Messaggi: 1757
Quote:
Originariamente inviato da cn73
Forse perchè le dava per scontate...
...
No, perché vettori e if vengono spiegati in seguito.
Alhazred è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 11:01   #7
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Quote:
Originariamente inviato da Alhazred
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.

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
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 15:48   #8
Alhazred
Senior Member
 
L'Avatar di Alhazred
 
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.
Alhazred è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 16:10   #9
anx721
Senior Member
 
L'Avatar di anx721
 
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
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 09:11   #10
monkey72
Senior Member
 
L'Avatar di monkey72
 
Iscritto dal: Dec 2001
Messaggi: 1385
Quote:
Originariamente inviato da anx721
Se è cosi allora ti basta la sola classe Message che avevo definito sopra.
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km"
monkey72 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2004, 09:41   #11
Alhazred
Senior Member
 
L'Avatar di Alhazred
 
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
Alhazred è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2004, 12:57   #12
anx721
Senior Member
 
L'Avatar di anx721
 
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
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2004, 14:41   #13
Alhazred
Senior Member
 
L'Avatar di Alhazred
 
Iscritto dal: Dec 2003
Messaggi: 1757
Quote:
Originariamente inviato da anx721
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.
Hai ragione.
Come risolvo il punto 4) della prima parte?
Ecco la classe Messaggio come l'ho pensata io:

Codice PHP:
public class Messaggio extends TestoMessaggio {
    public 
Messaggio(String codeString mexString mittString dest) {
        
super(codemex);
        
String numMitt mitt;
        
String numDest dest;
    }
    public 
Messaggio(String codeString mexString mitt) {
        
super(codemex);
        
String numMitt mitt;
    }
    public 
Messaggio(String codeString mex) {
        
super(codemex);
    }
    public 
void modificaDest(String numDest) {
    ***********************************    
    }
    public 
void stampaMessaggio(Messaggio m) {
        
System.out.println(m.getMex());
    }

Dove ci sono gli asterischi ci andrebbe il metodo che cambia il numero del destinatario, ma come lo faccio? Devo prima scrivere un metodo che mi ritorni il numero? Oppure c'è modo di farlo direttamente?

Ultima modifica di Alhazred : 05-03-2004 alle 15:17.
Alhazred è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2004, 20:50   #14
anx721
Senior Member
 
L'Avatar di anx721
 
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
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2004, 11:17   #15
Alhazred
Senior Member
 
L'Avatar di Alhazred
 
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:
public void modificaDest(String nuovoDest) {
    
this.numDest nuovoDest
Non ho potuto verificare perché non riesco a scrivere una riga che mi scriva il numero del destinatario
Ho provato con una cosa di questo tipo:

Codice PHP:
import javax.swing.JOptionPane;
public class 
Cliente {
    
String numero;
    public static 
String leggiNumero() {
        
String numero JOptionPane.showInputDialog("Inserisci il numero del destinatario");
        return 
numero;
    }
    public 
void main (String[] args) {
        
String numMitt "3973186876";
        
String numero leggiNumero();
        
Messaggio m1 = new Messaggio("cs","Come stai?",numMitt,numero);
        
System.out.println(this.numero);
        
String nuovoDest JOptionPane.showInputDialog("Inserisci il nuovo destinatario");
        
modificaDest(nuovoDest);
        
System.out.println(this.numero);
    }

Ottengo un errore nella chiamata a modificaDest:
" 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"
Alhazred è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2004, 11:47   #16
anx721
Senior Member
 
L'Avatar di anx721
 
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
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2004, 16:23   #17
Alhazred
Senior Member
 
L'Avatar di Alhazred
 
Iscritto dal: Dec 2003
Messaggi: 1757
Grazie, ho risolto, adesso funziona tutto
Alhazred è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Government Data Intelligence for Agricul...
iPhone 17e limitato per non oscurare iPh...
Windows 11 può usare l'IA per cla...
Microsoft Edge diventa più sicuro...
Yakuza Kiwami 3: il nuovo trailer mostra...
Geely lo fa davvero: auto con garanzia a...
'Troppi videogiochi': ecco perché...
Videogiochi e TV aumentano la concentraz...
OneXFly Apex è la console portati...
Dati impressionanti: le auto autonome di...
Il folle esperimento: 12 modem 56K uniti...
Philips Sonicare 3100 in super offerta s...
Auto elettriche: dalla Cina il prototipo...
Più di 2.000 operai cinesi e fond...
ECOVACS DEEBOT T50 MAX PRO OMNI scende d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:53.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v