Linguaggi di programmazione ad oggetti - Java
Prima parte
Argomenti prima parte
Cosa vuol dire sviluppare software, algoritmi, diagrammi di flusso, introduzione alla programmazione ad oggetti, cosa sono classi e oggetti come è fatto un programma ad oggetti. Compilatori ed interpreti. Introduzione al linguaggio Java, installazione SDK e suo uso, documentazione e tutorial. Come è fatto un programma in java, il metodo main. Definizione di variabili, tipi di dato, assegnazioni. Operatori ed espressioni, precedenze, regole di promozione e casting. Istruzioni per il controllo di flusso: if-else, switch. I cicli: for, while, do while.
Introduzione alla programmazione ad oggetti
Quello che si vuole fare quando si programma è realizzare un software applicativo o un’applicazione che deve essere eseguita da un computer per risolvere un determinato problema o svolgere un determinato compito. La programmazione a oggetti analizza il problema definendo gli attori del processo e le entità che ne fanno parte.
Algoritmo
Un algoritmo è una sequenza di azioni non ambigue che trasforma i dati iniziali nel risultato finale utilizzando un insieme di azioni elementari che possono essere eseguite da un opportuno esecutore. Un algoritmo è Finito (la sequenza di passi è ben determinata), Non Ambiguo (sequenza di azioni determinabile senza ambiguità), Generalizzato (deve avere carattere di generalità per risolvere una classe di problemi).
Diagramma di flusso
Un grafico che permette di esprimere un algoritmo in modo preciso e intuitivo. Composto da blocchi elementari atti a descrivere azioni e decisioni (solo True/False) ed archi orientati per collegare i vari blocchi descrivendo la sequenza di svolgimento delle azioni.
Programma
Una lista di istruzioni, scritte in linguaggio macchina in modo non ambiguo, eseguibili meccanicamente dal computer. Ogni CPU ha il suo linguaggio macchina.
Compilatore
Il compilatore è un programma che effettua la compilazione. La compilazione è la traduzione da linguaggio di programmazione ad alto livello (codice sorgente) a linguaggio macchina (codice eseguibile). Il linguaggio macchina è legato alla macchina su cui si vuole eseguire il programma, quindi è necessario produrre codici eseguibili diversi per macchine diverse. In Java il compilatore è javac.exe, che quando eseguito dal prompt dei comandi genera un file con estensione .class contenente il programma tradotto in bytecode.
Interprete
L’interprete è un programma che esegue un altro/altri programma/i a partire dal relativo codice sorgente. L’interprete traduce ed esegue il codice sorgente un’istruzione alla volta. Usando un interprete non viene generato un file contenente il codice eseguibile (come nel caso del compilatore) in quanto l’istruzione tradotta viene eseguita immediatamente. Occorrono interpreti diversi a seconda della macchina su cui si vuole eseguire il programma. L’interpretazione è meno ottimizzata rispetto alla compilazione. In Java l’interprete è il file java.exe e si esegue nel prompt dei comandi con la sintassi “java nomefile”.
Portabilità
Java è specificatamente progettato per essere quanto più possibile indipendente dalla piattaforma di esecuzione, questo vuol dire che può essere eseguito in qualunque ambiente in cui sia installata la macchina virtuale Java (cioè il JRE, Java Runtime Environment). Java produce infatti un metacodice detto bytecode, un codice ad alto livello indipendente dalla piattaforma hardware. Lo slogan della Sun (azienda sviluppatrice di Java) è infatti “write once, run everywhere”; di questo slogan esiste la parodia “write once, debug everywhere”, che si riferisce al fatto che le macchine virtuali stesse sono programmi e quindi possono presentare dei bug che vanno corretti.
Produrre un software
Programmare: realizzare un’applicazione che deve essere eseguita da un computer per risolvere un determinato problema. I 7 passi:
- Capire il problema che si vuole risolvere (individuare i requisiti).
- Definire una soluzione al problema (progetto e design del software).
- Implementare la soluzione (scrivere il programma).
- Tradurre il linguaggio utilizzato per programmare in linguaggio macchina (codice eseguibile).
- Eseguire il programma tradotto in linguaggio macchina.
- Verificare il corretto funzionamento dell’applicazione (test e collaudi).
- Manutenere il prodotto software (aggiornare, aumentare funzionalità, risoluzione errori).
Oggetto
Entità dotata di uno stato (attributi che lo descrivono), un comportamento (i metodi per manipolare gli attributi) e di un’identità. L’oggetto è presente in memoria ed i suoi attributi contengono dei valori.
Classe
La definizione di un insieme di oggetti che condividono un comportamento e una struttura comuni. L’oggetto è un’istanza della classe. La classe è la descrizione di un oggetto e si può dire che non è presente in memoria. Un programma ad oggetti è un progetto contenente delle classi scritte in un linguaggio di programmazione ad oggetti (es. Java).
Ereditarietà - cos'è una sottoclasse
Le sottoclassi sono quelle classi che estendono le superclassi ereditandone il codice e le funzionalità. Tramite l’ereditarietà (inheritance), una classe (sottoclasse) può ereditare sia i metodi che le proprietà da un’altra classe.
-
Progetto Linguaggi di programmazione
-
Appunti di Linguaggi e Modelli Computazionali
-
Appunti Linguaggi di programmazione
-
Riassunto Teoria Linguaggi