Inizio corso

Programmazione a oggetti

Tutto è un oggetto
  1. Un oggetto è un po’ come un piccolo computer
  • Ha uno stato
  • Può eseguire delle operazioni
  1. Ogni oggetto ha una propria memoria “fatta” di altri oggetti (incapsulamento e information hiding)
  • Un nuovo oggetto può esser creato utilizzando oggetti esistenti
  • Un programma può nascondere la sua complessitĂ  mediante la semplicitĂ  degli oggetti
Ogni oggetto ha un suo tipo
  • Ogni oggetto è istanza di una classe
  • La classe è identificata dai messaggi (metodi) che essa possiede
Tutti gli oggetti di uno stesso tipo possono ricevere gli stessi messaggi

EreditarietĂ 

Vogliamo evitare di ricreare nuove classi di oggetti quando esse hanno funzionalitĂ  simili
  • La super classe “Forma” possiede delle sottoclassi “Cerchio”, “Triangolo”, “Rettangolo”

Polimorfismo

E’ possibile utilizzare la classe base senza dover conoscere necessariamente la classe specifica
  • Permetti di scrivere codice che non dipende dalla classe specifica
  • Posso aggiungere nuove sottoclassi anche in seguito

Java

Java

  • è un linguaggio di programmazione nato nel 1995
  • costruito per essere “sicuro”, cross-platform e internazionale
    • Cross-platform → funziona su tutti i sistemi operativi
Java è continuamente aggiornato con nuove feature e librerie:

Portabile “WORA” (write once, run anywhere)

|

E’ il linguaggio delle applicazioni di business Android SDK usava Java

Caratteristiche di Java

Elenco

Indipendenza della piattaforma

Al contrario dei linguaggi C e C++ non viene compilato su una macchina o piattaforma, ma nel bytecode di una macchina virtuale

Sicurezza

Non permette manipolazioni
  • Le tecniche di autenticazione sono basate su chiavi pubbliche e private

Robustezza

Situazioni tipiche d’errore vengono eliminate il più possibile a tempo di copulazione

Multithreaded

Supporta nativamente programmi che gestiscono attivitĂ  eseguite in contemporanea (thread)
  • Facilita la costruzione di applicazioni interattive

Interpretato e compilato

Il byte code e tradotto “al volo” in istruzioni macchina native
  • Rende piĂą veloce e snello il processo di sviluppo

Enterprise, Web e Mobile

Esistono diverse distribuzioni, che si riportano allo sviluppo Enterprise, web e mobile