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

emanuele.cescon

Nuovo Utente
2 Apr 2016
13
7
3
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

TheRainJoker

Nuovo Utente
26 Apr 2016
3
2
0
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

ottofonsuppost

Utente Attivo
10 Mag 2016
170
13
18
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:

emanuele.cescon

Nuovo Utente
2 Apr 2016
13
7
3
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

ottofonsuppost

Utente Attivo
10 Mag 2016
170
13
18
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.
 

emanuele.cescon

Nuovo Utente
2 Apr 2016
13
7
3
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

ottofonsuppost

Utente Attivo
10 Mag 2016
170
13
18
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
Autore Titolo Forum Risposte Data
S [Java] applet non carica classi importate da libreria.jar Java 1
MarcoGrazia Aggiungere o rimuovere classi in javascript Javascript 1
Domenico_Falco1 Associare una stessa funzione get a due eventi a.click con classi differenti Ajax 6
L Cambiare classi solo scroll up jQuery 2
L [PHP] paginazione con classi vendor PHP 2
3_g [PHP] mvc, pdo e classi... PHP 7
ken_korn [PHP] Delucidazione sull'uso di classi esterne PHP 0
L [WordPress] [HTML] boostrap e classi personali WordPress 4
CristianB72 [PHP] Astrazione classi ed interfacce, a cosa servono? PHP 0
D Classi astratte PHP 0
giap Classi stili/stili per singoli TAG- differenza- HTML e CSS 2
M classi e struttura directory PHP 1
D Errore aggiungendo elemento Classi LINQ to SQL in un progetto VB2008 .NET Framework 1
M Assegnare classi diverse a div in un ciclo while PHP 3
I Che senso ha questo? Come separare due classi? HTML e CSS 2
L Classi (informazioni) PHP 0
L classi e prestazioni sito PHP 0
P Stampa di classi ritoccata.. PHP 0
I Interfacce e classi astratte PHP 5
L sistema utenti con classi PHP 9
L Esercizio con le classi PHP 0
M Vantaggio nell'usare le classi PHP 1
K Metodi e classi in obj-c Sviluppo app per iOS 0
L Cerco esempio con classi php5 PHP 3
M autoloading classi PHP 1
O come strutturare le classi per un piccolo gestionale? PHP 2
L Consiglio classi php PHP 2
E catturare pseudo-classi CSS con Javascript Javascript 1
F directory classi php PHP 2
Z Creare File xls con le classi PHP 0
E lista dinamica e classi Programmazione 1
F Classi in php PHP 0
C classi funzioni e array PHP 1
Cforever variabili e classi private??? Javascript 1
B Classi in file esterno PHP 0
L java api_google Javascript 0
F NetBeans problema creazione progetto Java Windows e Software 0
Z [java] bufferizzare stream audio da mic Java 1
L java + Api di google Javascript 1
A [Cerchiamo] [Retribuito/a] "Java Solution Architect" Offerte e Richieste di Lavoro e/o Collaborazione 1
F Script java elenco alfabetico non funziona Javascript 3
C Serializzazione in java Java 1
M AIUTO ESERCIZIO JAVA Javascript 1
M Ripasso Java Offerte e Richieste di Lavoro e/o Collaborazione 0
F [OFFRO - RETRIBUITO] Sviluppatori JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
L leggere RGB di un pixel dello schermo in java Java 1
I Creazione programmino JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
F Aiuto java script Javascript 2
T [Java] tipi generici con esempio pratico Java 1
J File audio in java Java 0

Discussioni simili