le classi di java

emanuele.cescon

Nuovo Utente
2 Apr 2016
13
7
3
Ciao a tutti.
Sono nuovo del forum e di Java, anche se come programmatore "tradizionale" ho una discreta esperienza.
In poche sentite parole, mi sto avvicinando al mondo della programmazione ad oggetti da poco.

Sto usando java (ultima versione) ed Eclipse per imparare a costruire applicazioni con questo linguaggio.
Ho notato che devo creare una file "nome.java" per ogni classe che voglio creare, perché senno mi segnala errore...
é normale? Si possono mettere più classi dentro lo stesso file *.java?
 
  • Like
Reactions: ottofonsuppost
Non riesco a capire il perchè mi dia un errore sulla parentesi dopo il nome della classe (questa classe è dopo un'altra classe, corretta e funzionante....)

Codice:
class AssegnaValore{

	if (txtSegno.text = "")
		{
		System.out.println("no scelta");
		}
	else
		{
		System.out.println("Hai scelto "+ txtSegno.text);
		}
}
 
  • Like
Reactions: ottofonsuppost
I nomi delle classi Java devono corrispondere con il nome del file .java. Il nome va con l'iniziale maiuscola ed è possibile inserire una classe java all'interno di un altra, non è molto utile a me è capitata una sola volta di dover creare una classe java all'interno di un altra per questioni di praticità essendo una classe utile solo alla classe utilizzata ed essendo molto semplice. Comunque la sintassi per la creazione della classe e il richiamo è questa:

Codice:
package forum;

public class ClasseA {
	
	public ClasseB classeInterna; // Creo una variabile classeInterna dichiarandola di tipo ClasseB 
	
	public ClasseA(){
		classeInterna = new ClasseB();
	}
	
	public void set(int a){
		classeInterna.setB(a);
	}
	
	public int get(){
		return classeInterna.getB();
	}
	
	//Classe interna
	public class ClasseB{
		
		int b;
		
		public void setB(int b){
			this.b=b;
		}
		public int getB(){
			return b;
		}
		
	}// chiusura ClasseB
	
	
	public static void main (String args[]){
		
		//Puoi Utilizzare la ClasseB tramite i metodi della ClasseA
		
		ClasseA a = new ClasseA();
		
		a.set(1);
		
		System.out.println(a.get());
		
		/* O richiamando direttamente la classe ClasseB ma per fare ciò devi avere un istanza della ClasseA. 
		 * Riutilizzando l'istanza creata sopra creo un oggetto ClasseB
		 */
		ClasseB b = a.new ClasseB();
		
		//richiamor direttamente i metodi della ClasseB
		b.setB(2);
		
		System.out.println(b.getB());
	}
 
  • Like
Reactions: ottofonsuppost
La programmazione corretta in LINGUAGGIO JAVA, consiste nel creare inizialmente un pacchetto, un PACKAGE, dove dentro metteremo tanti pezzi di codici, chiamati CLASSE.

Le CLASSI ci consentono di suddividere il PROGRAMMA GENERALE in tanti piccoli blocchi di codice, specializzati a compiere qualcosa.
Dobbiamo stare attenti che almeno una classe abbia lo stesso nome del progetto creato e che contenga la riga di istruzione del METODO MAIN, METODO MAIN che obbligatoriamente deve essere PUBLIC, in modo che tutti i punti del programma, che tutte le classi del PACKAGE, possano "vederlo", visto che costituisce il punto di partenza di ogni programma JAVA.
Le società che producono programmi giganti e sofisticati, si servono di centinaia di programmatori, ed ognuno di questi scrive codice per un aspetto specifico del PROGRAMMA GENERALE; per questo JAVA viene utilizzato creando CLASSI, cioè pezzi di programma.
Noi comuni mortali, invece, di solito ci creiamo un piccolo programmetto, di una decina di righe di codice, quindi facciamo solo la CREAZIONE DEL PROGETTO, subito creiamo una classe che ha lo stesso identico nome del progetto. Mentre i TEAM numerosi delle società, hanno programmatori che scrivono codice creando solo classi. Poi testano queste classi avendo creato per fare il test, un progetto e una classe che contiene il MAIN; ma alla fine sarà solo uno il progetto che conterrà tutte le classi create dalle centinaia di programmatori del TEAM. Le numerosi classi del progetto finale verranno messe dentro un PACKAGE. Le libreria che di solito importiamo nei nostri programmi, per evitare di scrivere ed inventare codice, non sono altro che importare classi fatte da altri, prima di noi e che funzionano bene, e che noi utilizziamo chiamandone i METODI.

Non esiste nessuna utilità nel creare una classe dentro un'altra classe. Nel pc il COMPILATORE crea tanti file per ogni classe esistente; quindi anche noi dobbiamo creare tanti pezzi di programmi, in forma di tante classi. La tipicità di JAVA è che in sostanza crea OGGETTI come le CLASSI. Nei tempi andati venivano creati PEZZI di PROGRAMMA chiamati ROUTINE o SUB-ROUTINE a cui si accedeva nel listato con le parole chiave GOTO 1120 o GOSUB 1120(GOTO e GOSUB seguito da un NUMERO DI RIGA a cui andare), cioè in un unico grande LISTATO, si riservavano righe di codice per particolari operazioni da compiere, richiamando la riga. Le routine o sub-routine terminavano con la parola chiave RETURN che faceva ritornare l'esecuzione del programma al punto successivo in cui era stata trovata l'istruzione GOTO o GOSUB. Per il COMPILATORE, le CLASSI non sono altro che PEZZI DI PROGRAMMA da eseguire.
 
Ultima modifica:
graaie otto,
il rifeerimento ai GOSUB e GOTO lo ricordo bene, era proprio del Basic o COBOL e simili, ma siccome io ho sempre programmato in Clipper, VIsual Basic, e altri, con la programmazione strutturata le funzioni o le SUB le potevo accumunare tutte dentro un unico file di progetto, e poi ne richaimavo il nome, tanto era tutto visibile al compilatore.
Anche in C# posso mettere più classi nello stesso file, (ad esempio ConnessioniDB.CS può contenere tutte el classi necessarie a connetteri ad un DB con T-SQL) mentr ein java questo non è logico o possibile.
Ogni linguaggio ha il suo. Basta solo impararlo.
Grazie Mille.
 
  • Like
Reactions: ottofonsuppost
La forza di JAVA è che possiamo far derivare una classe da un'altra; quindi invece di creare scioccamente una classe dentro una altra, la creiamo a parte utilizzando la EREDITARIETA': creiamo una sottoclasse che deriva dalla classe superiore; può addirittura contenere tutti i metodi della classe superiore ed aggiungerne uno nuovo solo. Quindi facciamo uso delle parole EXTENDS - CLONE - EQUALS - SUPER - TRY - CATCH - . Una classe derivata magari ha un METODO CHE HA LO STESSO NOME di quello presente nella classe "genitrice" ma che funziona in modo diverso: siamo in presenza del POLIMORFISMO, altra peculiarità della programmazione ad oggetti. L'Ereditarietà ci consente: di non duplicare righe di codice, di riutilizzare funzionalità già esistenti, ci semplificano la costruzione di nuove classi senza scervellarsi a crearne una da zero, e tutto questo ci facilita la manutenzione del programma, senza contare che ci garantisce la consistenza delle interfacce. Avendo la CLASSE VEICOLO nel pc avremo il file VEICOLO.JAVA; per creare una classe chiamata AUTOMOBILE che deriva dalla classe Veicolo ci basterà scrivere AUTOMOBILE EXTENDS VEICOLO e nel pc avremo il file AUTOMOBILE.CLASS. Baci e abbracci, OTTOFONSUPPOST.
 
GRazie ancora del chiarimento otto, ma anche c# deriva le sue classi..
quello che volevo semplicemente dire io e che in c# posso fare questo:

file : MyClasse1.cs

prima classe1 {

}

seconda classe1 {

}

file myClasse2.cs

prima classe2{

}

seconda classe2{

}

terza..............

capito?
Non sono riuscito a fare lo stesso in java.
 
  • Like
Reactions: ottofonsuppost
il linguaggio C e C++ viaggiano a velocità supersonica in confronto a JAVA. Java risulta lento, ma di più facile realizzazione, visto che non esiste la matematica dei puntatori. In pratica la memoria la gestisce da sola. Esiste anche il vantaggio delle LIBRERIE che in pratica hanno già scritto il codice per noi, somari. ah ah ah. Poi c'è il grande vantaggio che una volta compilato il programma e creato il BYTECODE, può girare in qualsiasi sistema operativo. AriOTTO.http://forum.mrwebmaster.it/images/smilies/mavieni.gif
 
Ultima modifica:

Discussioni simili