Introduzione a JAVA
Transcript
Introduzione a JAVA
Prof. Pagani corrado
JAVA
NASCITA DI JAVA
Java è stato creato, a partire da ricerche effettuate
alla Stanford University agli inizi degli anni Novanta, da un
gruppo di esperti sviluppatori capitanati da James Gosling in
Sun Microsystems.
Per facilitare il passaggio a Java ai programmatori legati a
linguaggi come il C++, la sintassi di base è stata mantenuta
pressoché identica a quella del C++; tuttavia, non sono state
introdotte caratteristiche ritenute fonti di una complessità
non necessaria come l'aritmetica dei puntatori, l'ereditarietà
multipla delle classi, e l'istruzione goto.
In un primo momento Sun decise di destinare questo nuovo
prodotto alla creazione di applicazioni complesse per piccoli
dispositivi elettronici; a metà degli anni ‘90, con l'esplosione
di internet, Java iniziò a farsi notare e a diffondersi
enormemente come strumento di programmazione web.
PUNTI DI FORZA
1.
Paradigma ad oggetti
2.
3.
4.
Portabilità
Ampia disponibilità di librerie e strumenti
Sicurezza del codice
5.
puro ad eccezione dei tipi primitivi
Applet eseguono codice scaricato (tramite browser)
da server remoto in modalità sicura (sandbox)
necessitano della JVM su PC locale
Multithreading nativo
Non dipende dal SO
PORTABILITA’
Java è un linguaggio al tempo stesso compilato
e interpretato
Compilatore produce bytecode (linguaggio
intermedio portabile) che facilità il lavoro
dell’interprete (e quindi le prestazioni)
Interprete JVM dipende dalla piattaforma
hardware/software e deve essere installato sul
PC su cui si avvia il programma
COMPILATORE E JVM
JDK
JRE
LIBRERIE DEL LINGUAGGIO
Java prevede numerose librerie che permettono
l’interazione con diverse tecnologie software:
Accesso a DB relazionali
XML
Programmazione WEB sia client sia server
Interfaccia grafica utente
multimedialità
LIBRERIE E PIATTAFORME SOFTWARE (API)
Il linguaggio in sé definisce solo una minima
parte delle librerie utilizzabili. La parte restante
è definita dalla piattaforma sulla quale il
programma sarà eseguito.
La Oracle mette a disposizione tre piattaforme
ufficiali, ciascuna destinata ad ambiti diversi:
Java
Platform, Standard Edition
Java Platform, Micro Edition
Java EE
JAVA PLATFORM, STANDARD EDITION
La Java Platform, Standard Edition è
una piattaforma software ampiamente utilizzata
nella programmazione in linguaggio Java per
costruire e distribuire applicazioni portatili ad uso
generale.
Java SE consiste di
una macchina virtuale (Java Virtual Machine), che deve
essere usata per eseguire
(interpretare) programmi Java
Librerie (API) necessarie per consentire l'uso di file
system, reti, interfacce grafiche e così via, all'interno di
tali programmi.
JAVA PLATFORM, ENTERPRISE EDITION
La specifica Java EE include tecnologie che estendono
le funzionalità di base della piattaforma Java;
principalmente abbiamo:
Componenti web
Componenti enterprise
Le componenti che rientrano in questa categoria sono
quelle legate alla visualizzazione delle pagine web ed
all'esposizione di web service.
L'uso di queste componenti è richiesto solamente in
applicativi di medie e grandi dimensioni.
Componenti per l'interazione con la base dati
Questa categoria contiene le tecnologie che permettono la
persistenza dei dati all'interno di una base dati relazionale
MAPPA DEGLI ELEMENTI JAVA
JRE Java Runtime
Environment (comprende la
JVM)
JDK Java Development
Kit (motore di compilazione
del codice sorgente,
comprende il compilatore
javac)
JSR Java Specification
JavaFX è una famiglia di
Requests (specifiche di API
sia approvate/implementate
che in fase di approvazione)
software applicativi, basati
sulla Piattaforma Java, per la
creazione di rich Internet
applications.
PACKAGE
Le classi che costituiscono un programma JAVA sono
normalmente suddivise in insiemi definiti PACKAGE, in modo
da avere una struttura il più possibile ordinata
Package nomePackage;
I package una volta compilati possono essere memorizzati in
file compressi con estensione .JAR che ne comprendono i
Lbytecode
Un package definisce un nuovo spazio dei nomi per le classi
che si trovano al suo interno, per questo i programmatori
possono creare classi con lo steso nome all’interno di
package diversi
E’ possibile importare package diversi tramite le istruzioni
import java.io.InputStream;
import java.io.*;
CLASSI
Regole
Il nome della classe deve coincidere con il nome del file
(convenzionalmente inizia con la lettera maiuscola)
Convenzione di inserire una sola classe per file
Può avere un proprio metodo main di tipo static
Un programma è composto da 1 o + classi che risiedono su
altrettanti file. Almeno una classe deve possedere il metodo
main
Sintassi
Public class nomeClasse
{
Attributi (o proprietà)
Costruttori
Metodi
}
Eventuale metodo static main per l’avvio
FILE CHE CONTIENE LA CLASSE
Deve avere lo steso nome della classe che
contiene
Struttura e Sintassi
Commento
di intestazione del file
Dichiarazione del package
Sezione di import di altri package
Package
dell’applicazione
Package delle librerie
Definizione
della classe
INCAPSULAMENTO
L’incapsulamento è legato al concetto
di “impacchettare” in un oggetto i dati (attributi) e
le azioni (metodi) ammissibili su tali dati (il tutto è
riconducibili all’astrazione di un singolo
componente denominato classe).
Gli attributi sono variabili che descrivono lo stato
informativo della classe.
I metodi sono i comportamenti che la classe
implementa, sono definite in modo analogo alle
funzioni, ma possono accedere direttamente a
tutti gli attributi della oggetto che li invoca.
MODIFICATORI DI ACCESSIBILITA’
Il modificatore va anteposto alla definizione della classe,
attributo, metodo e ha lo scopo di come tale elemento
sia visto all’esterno del file/classe dove sia definito.
E’ preferibile mantenere tutti gli attributi privati e
prevedere specifici metodi di accesso/scrittura: in tale
modo posso gestire eventuali accessibilità specifiche e
differenti per SCRITTURA e LETTURA.
MEMBRI STATIC
Con il modificatore STATIC è possibile associare
attributi o metodi all’intera CLASSE invece che ai
singoli oggetti istanziati.
Tali membri sono condivisi quindi da tutti gli
oggetti della classe
Per poter invocare il metodo static o accedere
all’attributo static occorre premettere al nome del
membro il nome della CLASSE:
NomeClasse.NomeAttributoStatico
NomeClasse.NomeMetodoStatico(…)