----- 14/03/18 ----- > Ho affrontato l'esercitazione di Laboratorio su Java del 31/03/2017. > Sulla base dell'esperienza di programmazione orientata agli oggetti in Java > maturata alle superiori avrei risolto il primo problema come segue, > usando un main e un metodo che richiamo istanziando un oggetto. > Vorrei capire se e' proprio necessario usare metodi statici come spiegato a lezione. > Ecco la soluzione: > > public static void main(String[] args) { > String s = ""; > try{ > System.out.print("Dammi la stringa: "); > BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); > s = br.readLine(); > } catch (Exception e) { > } > NotazioneTernariaBilanciata n = new NotazioneTernariaBilanciata(); > System.out.println(n.ternaria(s)); > } > > [...] ----- La soluzione che proponi non e' corretta dal punto di vista metodologico per due ragioni: 1. Un metodo non statico in Java non corrisponde ad alcuna procedura in Scheme. Le differenze sono molteplici, sia dal punto di vista del significato concettuale sia per come tecnicamente opera il compilatore, ma e' immediatamente evidente che il metodo non statico richiede un parametro in piu', l'oggetto denotato con "n" nel programma "main". 2. Guardando le cose solo dal punto di vista di Java, non ha senso creare un oggetto "inutile" (n), che e' solo un espediente per poter invocare un metodo ma che per il resto e' assolutamente irrilevante. Prendi invece come modello la classe Math di Java: di fatto e' principalmente una collezione di "funzioni" matematiche, che sono infatti definite da metodi statici. ----- * -----