Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Slides object oriented java, Dispense di Programmazione Java

Slides object oriented java programmazione

Tipologia: Dispense

2018/2019

Caricato il 18/03/2019

fedeapple
fedeapple 🇮🇹

4

(3)

2 documenti

1 / 32

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Object'Oriented'programming'
Principles'
1'L.'Console'-'Object'oriented'Principles'
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20

Anteprima parziale del testo

Scarica Slides object oriented java e più Dispense in PDF di Programmazione Java solo su Docsity!

Object Oriented programming

Principles

Programma del Corso

  • Paradigmi di programmazione: Object oriented
    • Collocazione storica
    • Collocazione nel panaorama dei linguaggi
    • O.o. in altre aree dell’informatica
  • Java
  • Object orientation in altri linguaggi
    • Es php
  • Vincolo: Aver seguitoil corso di Sviluppo Software, I anno ICT

Corsi informatica III Anno

  • Future Intwrnet: O.O e Java
  • Design di Applicazioni Web(Gena): Javascript e framework per web
  • Introduzioen a Intercation design (Vernero)
  • Grafica per Web e SEO (3+3) usabili come lab e come corso (in coppia)

….e dopo ….

  • Laurea Comunicazioen ICT e Media (CIME) riformata nei contenuti
  • Per informatica
    • Web Services
    • Sviluppo applicazioni mobile
    • Introduzioen a Intelligenza Artificaile
    • Internet of Things e sviluppo smart Objects
    • Intercation design avanzato
    • Interazioen uomo macchina
    • Cybersecurity
    • Gestioen adti avanzata

Imperativo (procedurale)

  • Astrazione diretta di macchina HW
    • Variabile = cella di Memoria
    • Assegnamento (lettura-elaborazione-scrittura)
    • Controllo sequenziale
  • Algorithm + Data Structures = Programs
    • Strutture dati
    • Algoritmo -> diagramma di flusso
    • Traduzione in programma
  • Programamzione strutturata
    • Nasce con Algol e Pascal anni 60

PHP I anno -> procedurale

  • I anno abbiamo visto PHP in versione procedurale
  • Naturale avvicinamento alla programmazione
  • Esiste anche versione object-oriented (riprenderemo al fondo)

Dynabook

  • Un computer personale nello zaino di ogni bambino (‘70)
  • Bambini imparano per immagini e suoni non per testo -> "Personal Dynamic Media" L. Console - Object oriented Principles 10 By Kay, A.C. - "A personal computer for children of all ages" - paper presented at the ACM National Conference, Boston, Fair use, https://en.wikipedia.org/w/index.php? curid=

GUI e mouse

Da Alan Kay: “User Interfaces: A Personal View

Smalltalk

  • Nuova idea di programamzione
  • In ambiente XeroX in cui nascono modelli di rappresentazione della conoscenza
  • Oggetti da manipolare in modo diretto
  • Messaggi come manipolazione diretta tra oggetti
  • Interfaccia grafica

Da Procedurale a object-oriented

  • Evoluzione in vari passi
    • Necessita’ di strutturazione codice per progetti di grandi dimensioni
    • Necessita’ di separare API e implementazione
    • Necessita’ di maggiore riuso del software
    • Necessita’ di strumenti verso distribuzione e parlallismo

Array

  • Lista di oggetti dello stesso tipo int [] x = new int[10] Si definisce un vettore di 10 interi, inzializzati a 0
  • Dopo la creazione, un array ha lunghezza fissata (e non può cambiare nel programma tramite una nuova dichiarazione).
  • Gli elementi di un array possono essere assegnati ad elementi di un array dello stesso tipo: int [] x= new int[10]; int [] y = new int[50]; x[3]=y[5];
  • new alloca la variabili (crea la var in memoria, vedremo)
  • Inizializzazione anche come lista int [] x = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  • Accesso anhe a singoli elementi int a = x[3];

Array (2)

  • Array possono essere multidimensionali int [][] z= new int[3][5]; [riga, colonna] Matrice di interi int a = z[1,2] (terzo elemento della seconda riga
  • Array possono essere liste di oggetti di un tipo qualunque (ma sempre dello stesso tipo) String [] vettoreDiStringhe

Data structures

  • Per un problema definisco le strutture dati che mi servono usando questi costruttori - A partire da class diagram
  • Poi vado a scrivere funzioni e procedure che operano su tali strutture dati
  • In modello imperativo non ho vincoli su dove scrivo funzioni
  • Due problemi
    • Tutto esplicito, implementazione dati aperta, posso scrivere funzioni che ci rimestano dentro in qualunque modo
    • Nessun modo di raggruppare

Tipi di dati astratti verso object

oriented

2 principi

  1. Encapsulation
  • Raggruppare definizione strutture dati e funzioni che operano su quei dati
  1. Hiding
  • Nascondere implementazione dei dati e offrire solo API delle funzioni => CLASSI IN JAVA