Pillole Java n.1

Programmazione in Java

Il primo esempio che utilizzeremo è una classe in Java che permette di passare tramite il metodo stampa il valore di un stringa e visualizzarlo a video.

Questo esercizio è molto intuitivo e semplice e permette di apprendere alcuni concetti nell’introduzione alla programmazione in Java

Ecco il listato (la classe si deve chiamare messaggio.classe)

import java.io.*;
public class messaggio {
String msg;
void stampa(String m)
{
    System.out.println(m);
    return;
}
public static void main(String args[])
{
String scritta;
scritta="Ciao Mondo\n";
messaggio m;
m=new messaggio();
m.stampa(scritta);
}
}

La classe ha un attributo pubblico di nome msg una variabile di tipo stringa che conterrà un testo che viene passato attraverso il metodo stampa.

Il metodo stampa non è altro che un una funzione che riceve come parametro una stringa che nel momento in cui l’oggetto viene creato nel metodo main è possibile trasferire e quindi stampare a video.

E’ utile notare che nel metodo main abbiamo un’istanza dell’oggetto definito e istanziato grazie alle due righe di codice

messaggio m;
m=new messaggio();

Nel momento in cui viene chiamato il metodo stampa avviene la stampa a video.

Il secondo listato in Java prevede la lettura di una stringa dallo standard input la tastiera e la stampa a video del testo.

Ridefiniamo la classe messaggio in messaggio2 aggiungendo un nuovo metodo leggi() che prende un testo da tastiera e lo memorizza nell’attributo msg della classe.

Il secondo listato è:

import java.io.*;
public class messaggio2 {
String msg;
public void stampa(String m)
{
    m=msg;
    System.out.println(m);
    
    return;
}
public void leggi(String s)
{
    InputStreamReader lettore = new InputStreamReader(System.in);
    BufferedReader tastiera = new BufferedReader(lettore);
    try {
    s=tastiera.readLine();
    }
    catch (Exception e) {
        System.out.println("\n Attenzione errore in lettura dati \n");
    }
    msg=s;
    return;
}
public static void main(String args[])
{
String scritta="";
int k=0;
messaggio2 m2;
m2=new messaggio2();
m2.leggi(scritta);
m2.stampa(scritta);
scritta="\n"+scritta+"*****";
System.out.println(scritta);
}
}

In questo caso i due metodi sono dichiarai con la clausola public per poter rendere accessibile dall’esterno della classe l’attributo msg che deve essere inizializzato con il valore letto da tastiera.

La difficoltà di questa nuova classe è la gestione dell’input che deve utilizzare il system.in ovvero l’input tramite console quello che per usare un paragone era l’istruzione “cin” del C++.

Occorre definire un InputStreamReader ovvero un oggetto della classe che associa un flusso di dati in input.

La seconda fase è quella di andare a catturare in una variabile collegata allo stream di dati in input definito, i dati una variabile buffer. Per finire occorre utilizzare il metodo readLine()

che legge dalla tastiera il valore e lo associa ad una variabile opportunamente definita.

La parte più importante è ad andare ad assegnare con la riga

msg=s;

nel metodo leggi() il valore all’attributo della classe.

Ultime considerazioni comuni è l’utilizzo delle classi del package java.io che consento l’uso delle classi per la gestione dell’input e dell’output.