Newsgroup: it.comp.java
Titolo: Primi passi in java

Buongiorno, ho cominciato oggi a studiare java e vorrei togliermi un po' 
di curiositï¿œ.
 
Allora, come testo ho comprato Programmazione in Java 2ï¿œ Ed di Bruni 
Corradini e Gervasi mentre come editor ho tirato giï¿œ Eclipse.
 
Il primo sorgente che viene presentato si limita a chiedere un nome ed a 
fornire una risposta, per la precisione ï¿œ questo qui
 
/*
     Un programma che chiede il tuo nome e ti saluta
  */
 
import jbook.util.Input;
 
public class Hello {
     public static void main(String[] args){
	System.out.print("Come ti chiami? "); //stampa
	String persona;
	persona = Input.readString();     //legge
	System.out.println("Ciao " + persona + '!'); //stampa
     }
}
 
Di questo programma ci sono alcune cose che non mi tornano gran che ma 
sinceramente non so bene a chi dare la "colpa" se al libro o eclipse.
 
Cominciamo con import jbook.util.Input;
 
Nel libro si dice che devo prendere la cartella jbook presente sul sito 
del libro (compreso il suo contenuto) e copiarlo vicino a Hello.class: 
provo e non funziona perchï¿œ a quanto pare eclipse si aspetta la cartella 
jbook allo stesso livello della cartella Hello che contiene a sua volta 
Hello.class
 
Seconda cosa: eclipse m'ha fatto una testa cosï¿œ riguardo ad un certo 
"Package" e mi ha fatto aggiungere in prima riga package hello;
 
Questo hello scritto dopo package, corrisponde per caso alla cartella 
hello che contiene hello.class ?
 
Terza cosa: Alla riga System.out.println("Ciao " + persona + '!'); il 
punto esclamativo ï¿œ dentro gli apici singoli invece che doppi. Dal 
momento che il risultato a video non mi piace, voglio avere uno spazio 
tra + persona + e il segno e non mi lasciava mettere lo spazio con gli 
apici singoli, ho provato a cambiare '!' con " !" ed ha funzionato.
Perchï¿œ allora mettere gli apici singoli ?
 
Ultima cosa: eclipse s'ï¿œ lamentato piï¿œ volte che uso dei metodi obsoleti 
perï¿œ alla fine "compila" e fa girare quanto scritto.
Cosa c'ï¿œ di vero ? Sto facendo riferimento ad un testo giï¿œ vecchio ?
 
Grazie

 Corradini e Gervasi mentre come editor ho tirato gi� Eclipse.
 
IMHO, se vuoi imparare un linguaggio di programmazione almeno all'inizio
evita le IDE, perche' nascondono e automatizzano cose che e' bene saper
fare a mano. Inoltre se non conosci il linguaggio la configurazione
dell'IDE puo' essere piuttosto complicata.
 
Elimina eclipse (almeno all'inizio), installa l'SDK e un editor
qualsiasi (textpad ad esempio se sei su windows) e fai tutto da linea di
comando.
 
Ciao Jack
-- 
Yoda of Borg am I! Assimilated shall you be! Futile resistance is, hmm?

 Cosa c'ï¿œ di vero ? Sto facendo riferimento ad un testo giï¿œ vecchio ?
 
i metodi deprecati vengono sconsigliati perchï¿œ verranno soppiantati
da nuovi metodi, ciononostante il programma che li usa viene
compilato lo stesso (seppure con i warnings). Ergo ï¿œ meglio
passare subito ai nuovi metodi.
 
Cmq, per l'input di una stringa meglio che parti da questo stralcio
di codice senza l'utilizzo di librerie esterne:
 
import java.util.*;
 
public class Example
{
   public static void main(String[] args)
   {
      Scanner in = new Scanner(System.in);
      System.out.println("Please enter a string: ");
      String input = in.next();
      System.out.println("Ciao " + input + " !"); // stampa
   }
}
 


 
Quasi quasi...
 


 
Questo sorgente vuole essere chiaro eppure non lo ï¿œ. Perchï¿œ Scanner in ? 
Perchï¿œ String input ?

 ? Perch� String input ?
 
Stai chiedendo come mai ha assegnato quei nomi alle variabili o perch� 
ha usato quelle classi?
 
-- 
Andrea
 


 
Diciamo che mi sto rendendo conto che per un giorno che mi sono basato 
su quella libreria fuori standard, ho fatto un bel po' di danni ma 
nonostante tutto cerco di trovare un senso invece di cassarla e 
ricominciare.
 
Nel mio sorgente per assegnare un valore alla variabile ho
 
persona = Input.readString();
 
mentre qui
 
String input = in.next();
 
ahhh no forse ci sono arrivato.
 
Quella cosa si pu� scrivere anche cos�:
 
String input;
input = in.next();
 
vero ?
 
Per� questo Scanner in = new Scanner(System.in);
 
continua a non essere chiaro

 continua a non essere chiaro
 
e' per questo che l'autore del libro ha creato quella libreria ad hoc:
per evitare ai principianti di sbattere il muso su cose "complicate" e
fare in modo che, almeno nei primi capitoli, si concentrino sul
linguaggio e non su come funzionano le API.



 
Vuoi dire che quella riga l� non spiegabile in maniera rapida, anche 
solo a livello di introduzione ?
Personalmente essendo gli inizi avrei preferito vedere solo comandi 
ufficiali di java e non api varie ed eventuali.

 ufficiali di java e non api varie ed eventuali.
 
e' quello che tenta di fare l'autore. 



 
 
Se posso dirti la mia esperienza, io eviterei di cominciare subito a 
mettere "le mani in pasta" col codice ma farei uno sforzo per apprendere 
i concetti fondamentali della programmazione ad oggetti. Cos'ï¿œ una 
classe, un oggetto, un metodo, etc.
E' piï¿œ noioso ma a mio avviso ï¿œ molto piï¿œ utile fatto cosï¿œ.
Quando avrai padroneggiato questi concetti tutto il resto ti sembrerï¿œ 
improvvisamente chiaro come il sole, e sarï¿œ solo questione di conoscere 
un po' le varie librerie e i costrutti principali del linguaggio.
 


 
Ok ma questa scanner era proprio necessaria in quel contesto ?
Ogni volta che si chiede ad un utente di digitare una stringa bisogna 
aggiungere questa cosa o appoggiarsi a qualcosa ad hoc ?
 


 
Potrebbe anche essere ma fortunatamente non sono totalmente a digiuno di 
programmazione e certe cose ne ricordano altre lato C quindi penso di 
poter sopravvivere e potermi adattare

 Ok ma questa scanner era proprio necessaria in quel contesto ?
 
- guarda la Luna!!!
- huh, io vedo solo il dito.



 
Certo che vedo solo il dito, non ho ancora imparato a costruire il 
telescopio.
 
Ti rifaccio la domanda: per scrivere un primo sorgente ** a scopo 
insegnamento introduttivo ** dove si chiede una stringa e la riporta 
nella successiva linea stampata, questo scanner era proprio necessario ?
 
Se al boyscout interessa imparare ad accendere il fuoco gli risparmi la 
teoria di cos'ï¿œ il fuoco o gliela fai digerire di peso come ad un'oca ?
 
 

 nella successiva linea stampata, questo scanner era proprio necessario ?
CUT
 
No, ma dato che ï¿œ stato introdotto per facilitare l'input, sarebbe
bene utilizzarlo... Cmq un altro esempio di input da tastiera (senza
l'utilizzo di scanner) lo puoi vedere qui assieme ad una spiegazione:
 
http://www.webmasterpoint.org/programmazione/java/java/leggere-input-tastiera.html
 
 
 

 teoria di cos'� il fuoco o gliela fai digerire di peso come ad un'oca ?
 
no, ma ma prima glilo insegno usando un accendino, poi sfregando i
legnetti.


 era.html
 
e' ancora piu' complicato che usando lo Scanner.
