Ciao ..
prendendo spunto da un esempio che trovo nel manuale del sito (Guida Java) avrei bisogno di un piccolo chiarimento su dei concetti base (siamo proprio all'ABC) ..
l'esempio in questione (per spiegare la valorizzazione delle variabili) è il seguente:
codice:
class p
{
int X,Y,Z;
public p()
{
X = 10;
Y = X;
Z = X + Y;
System.out.println ("All'inizio ho: X="+X+", Y="+Y+", Z="+Z);
X = X + 1;
Y = Z - X;
System.out.println ("Effettuo le operazioni: \nX = X + 1;\nY = Z - X;\ned ottengo:");
System.out.println ("X="+X+", Y="+Y+", Z="+Z);
}
}
class decl
{
public static void main(String[] a)
{
p Prova=new p();
}
}
il commento del manuale è il seguente:.
come sapete, visto che decl è la classe che contiene il main dovete editare il programma in un file chiamato decl.java, poi eseguitelo e vedete cosa succede. Vi sono anche altri attributi per far vedere l'uso dei modificatori.
Dall'esempio si vede che io ho creato una classe p e ne ho instanziato l'oggetto Prova, invocandone il costruttore. Questo l'ho dovuto fare perché le variabili sono degli attributi, e quindi, se non sono static, sono attributi di un oggetto, per questo motivo ho dovuto creare un oggetto per potere lavorare con le sue variabili. Abituatevi a programmare sotto questa ottica, perché i programmi Java sono tutti così. Siccome il main del programma DEVE essere dichiarato static (e deve avere una stringa come perametro) esso viene eseguito in assenza dell'oggetto, e quindi delle variabili non statiche.
quindi .. 
da quello che ho capito dovrei creare un file 'main' (con lo stesso nome della classe) dove inserire appunto la classe 'decl', e un altro file (con nome a piacere) dove inserire la classe 'p'.
Ho provato la cosa e funziona perfettamente.
I dubbi sono però i seguenti:
1) anche se nomino il file del main con nome diverso .. funziona tutto regolarmente
2) se eseguo il file che contiene solo la classe 'p' .. funziona tutto regolarmente (quindi anche senza che sia stato istanziato l'oggetto prova
3) nei commenti si parla di costruttore, ma da quello che vedo (e in base a quello che ho letto in precedenza sui 'costruttori', mi sembra di essere
difronte ad una semplice assegnazione di valore ..
X = 10;
Y = X;
Z = X + Y;
L'esempio di costruttore che mi era stato fatto vedere a suo tempo, prevedeva una struttura che permetteva l'inizializzazione al momento dell'istanza dell'oggetto:
codice:
class Persone
{
// --> Proprietà
public int annodinascita;
public String cognome=new String();
//--> Costruttori
public Persone(int default_annodinascita)
{this(default_annodinascita, "Non Conosco"); }
public Persone(String default_cognome)
{this(0, default_cognome); }
public Persone(int default_annodinascita, String default_cognome)
{
this.annodinascita = default_annodinascita;
this.cognome = default_cognome;
}
// --> Metodo che calcola l'età del soggetto
public int calcolaeta (int annoattuale)
{return (annoattuale - annodinascita);}
}
con istanza e relativa valorizzazione ..
codice:
Persone Pietro = new Persone(1974);