Buonasera a tutti.
Ho urgente bisogno di un aiuto per un programma in Java con la programmazione ad oggetti.
Il testo è questo:
Definisci la classe Buffer: un buffer può essere vuoto oppure contenere un
messaggio di tipo Stringa.
Un buffer mette a disposizione tre operazioni principali:
- vuoto(): che permette di controllare se il buffer è vuoto;
- inserisci(s): che consente l'aggiunta di una stringa S in un buffer, tuttavia
solo se il buffer è vuoto;
- leggi(): che consente l'estrazione di una stringa contenuta nel buffer, solo
se il buffer non è vuoto.
Creare poi una classe UsaBuffer (file main) per istanziare un oggetto di
classe Buffer e in maniera iterativa offre all'utente la possibilità di
invocare una delle 3 funzionalità sul buffer, visualizzando l'esito
dell'operazione, o di terminare l'esecuzione.
Il codice è questo:
CLASSE BUFFER
public class Buffer {
private String testo;
public Buffer() {
this.testo = testo;
testo = new String ("");
}
public String getTesto(){
return testo;
}
public boolean vuoto(){
return (getTesto().equals(new String("")));
}
public void setTesto(String testo){
this.testo = testo;
}
public void inserisci(String testo) throws Exception{
if(!vuoto()) System.out.println("Buffer pieno . . .");
setTesto(testo);
}
public String leggi() throws Exception{
if(vuoto()) System.out.println("Buffer vuoto . . .");
return getTesto();
}
}
CLASSE USABUFFER (FILE MAIN):
import java.io.*;
import java.util.Scanner;
public class UsaBuffer {
public static void main(String args[]) throws Exception{
InputStreamReader input=new InputStreamReader(System.in);
BufferedReader tastiera=new BufferedReader(input);
Buffer prova = new Buffer();
int scelta; String s;
do{
Scanner t = new Scanner(System.in);
System.out.println("1) Verifica se buffer è vuoto");
System.out.println("2) Inserire un nuovo valore");
System.out.println("3) Estrarre il contenuto");
System.out.println("4) Esci");
scelta = Integer.valueOf(tastiera.readLine()).intValue();
switch(scelta){
case 1:
System.out.println("Buffer vuoto?: "+prova.vuoto());
break;
case 2:
System.out.println("Inserisci la stringa da immettere: ");
s = tastiera.readLine();
prova.inserisci(s);
break;
case 3:
System.out.println("Il buffer contiene: " +prova.leggi());
break;
case 4:
return;
default:
break;
}
System.out.println("\n\n");
} while(scelta>=1 && scelta<=4);
}
}
IL PROBLEMA E' CHE QUANDO ESEGUO IL PROGRAMMA E INIZIO COL VERIFICARE SE IL BUFFER E' VUOTO, INVECE DI COMPARIRMI UN MESSAGGIO CHE MI DICE "IL BUFFER E' VUOTO", MI COMPARE UN MESSAGGIO CON SCRITTO : "Buffer vuoto?: true".
A ME INVECE DEVE COMPARIRE UN MESSAGGIO CON SCRITTO IL BUFFER E' VUOTO OPPURE IL BUFFER NON E' VUOTO.
COME POSSO FARE?
AIUTATEMI MANDANDOMI IL PEZZETTO DI CODICE GIUSTO.
E' URGENTE.
GRAZIE.
LUCIO.