SlideShare a Scribd company logo
1 of 10
PROGRAMMAZIONE
AD OGGETTI
GIUSEPPE CRAMAROSSA
ALTERNANZA SCUOLA-LAVORO @ LICEO SCIENTIFICO «G. GALILEI» BITONTO
11 FEBBRAIO 2017
SOMMARIO
 Tipi di dati
 Classi, proprietà e metodi
 Accesso a proprietà e metodi
 Esempio pratico di un oggetto di uso comune: la penna
 Principi della programmazione ad oggetti
 Programmazione generica
 Eccezioni
 Esercizi
DATI E TIPI DI DATI
 Durante l’esecuzione di un programma è necessario salvare o ottenere dati
 Variabili come contenitori di dati
 Esistono vari tipi di dati
 Interi
 Reali
 Stringhe
 Booleani
 Definiti dal programmatore
 …
 I tipi determinano le operazioni che si possono fare con i dati
 I dati sono identificati da un nome, che può essere scelto dal programmatore
CLASSI E OGGETTI
 La classe definisce un nuovo tipo di dato composto
 Proprietà
 Contengono i dati della classe. Tutti i metodi della classe potranno accedere alle proprietà
 Risponde alla domanda: cosa deve contenere l’oggetto?
 Metodi
 Risponde alla domanda: cosa deve fare l’oggetto? E di cosa ha bisogno per farlo?
 Possono anche contenere dati, ma potranno essere utilizzati solamente nel metodo
 Possono restituire valori di tutti i tipi
 Diventa oggetto quando viene usato come tipo di un dato per una variabile,
una proprietà o un metodo
 L’oggetto è l’istanza di una classe
MODIFICATORI DI ACCESSO DELLE
PROPRIETÀ E DEI METODI
 Oltre a un tipo, una
proprietà o un metodo può
avere una visibilità
 Alcuni linguaggi possono
supportare più tipi di
visibilità o non supportarle
affatto
 Alcuni tipi di visibilità sono
 Public (pubblica)
 Private (privata)
 Protected (protetta)
Visibilità Descrizione
Privata La proprietà o il metodo è
visibile solo all’interno della
classe che lo contiene
Pubblica La proprietà o il metodo è
visibile all’interno e
all’esterno della classe che
lo contiene
Protetta Simile alla visibilità privata,
con la differenza che il
metodo o la proprietà è
visibile anche alle classi
derivate
ESEMPIO PRATICO DI UN OGGETTO DI
USO COMUNE: LA PENNA
 Alcune proprietà
 Lunghezza : numero
 Marca : stringa
 Tappo : può essere visto come un oggetto a sè stante
 Ha le sue proprietà e i suoi metodi
 Alcuni metodi
 Scrive un testo su un supporto
 Disegna una figura
 Scarica l’inchiostro
 Metodo privato
PRINCIPI DELLA PROGRAMMAZIONE
AD OGGETTI
 Si basa su tre principi
 Ereditarietà
 Una classe può ereditare proprietà e metodi da un’altra classe, purchè siano pubblici o
protetti
 Esempio: i cani sono mammiferi, che a loro volta sono animali
 Polimorfismo
 Possono esistere più metodi che hanno lo stesso nome
 Si ha un esempio nella lingua italiana nella parola «principi»
 Come faccio a capire se mi riferisco alla persona o agli ideali?
 Incapsulamento
 La base dell’incapsulamento è la classe, che contiene i dati e il comportamento
 Ad esempio, il volante agisce sulle ruote, ma non sul motore
PROGRAMMAZIONE GENERICA
 Chiamato anche polimorfismo parametrico
 I tipi di dati vengono passati come parametri
 Porta vari vantaggi
 Scrittura di algoritmi generici
 Eliminazione del cast, e quindi una migliore leggibilità del codice
 Maggiore sicurezza, perché i controlli vengono fatti durante la
compilazione e non durante l’esecuzione del programma
 Può essere utilizzato con le proprietà e con i metodi
ECCEZIONI
 Gestire comportamenti anomali
 Un numero di telefono contiene anche dei caratteri
 Si vuole dividere un numero per zero
 Blocco try/catch
 Nel try vengono inserite le istruzioni da fare normalmente
 Nel catch vengono invece inserite le istruzioni da eseguire in caso si verifica
l’eccezione
 Le eccezioni vengono definite in classi con postfisso «Exception»
 Alcune sono già implementate (es. divisione per zero, file non trovato)
 Si possono creare anche eccezioni personalizzate
ESERCIZI
 Definire le proprietà e i metodi dei seguenti oggetti
 Triangolo
 Bicicletta
 Serpente
 Termosifone
 Sole
 Quali eccezioni potrebbero esserci nei seguenti scenari?
 Login con username e password
 Registrazione utenti
 Acquisto di un prodotto

More Related Content

What's hot

Programmazione ad oggetti
Programmazione ad oggettiProgrammazione ad oggetti
Programmazione ad oggettimariacaporale
 
Programmazione ad oggetti
Programmazione ad oggettiProgrammazione ad oggetti
Programmazione ad oggettiAnna_1969
 
Lezione 10 - Programmazione Ad Oggetti, Vb Accenni
Lezione 10 - Programmazione Ad Oggetti, Vb AccenniLezione 10 - Programmazione Ad Oggetti, Vb Accenni
Lezione 10 - Programmazione Ad Oggetti, Vb AccenniRice Cipriani
 
programmazione ad oggetti
programmazione ad oggettiprogrammazione ad oggetti
programmazione ad oggettimariacaporale
 
Programmaoggetti[1]
Programmaoggetti[1]Programmaoggetti[1]
Programmaoggetti[1]Anna_1969
 
Object Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseObject Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseFelice Pescatore
 
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013Matteo Valoriani
 
Presentazione primi principi oop
Presentazione primi principi oopPresentazione primi principi oop
Presentazione primi principi oopyrcorr
 
Presentazione Xml
Presentazione XmlPresentazione Xml
Presentazione Xmltave10
 

What's hot (15)

Programmazione ad oggetti
Programmazione ad oggettiProgrammazione ad oggetti
Programmazione ad oggetti
 
Programmazione ad oggetti
Programmazione ad oggettiProgrammazione ad oggetti
Programmazione ad oggetti
 
Lezione 10 - Programmazione Ad Oggetti, Vb Accenni
Lezione 10 - Programmazione Ad Oggetti, Vb AccenniLezione 10 - Programmazione Ad Oggetti, Vb Accenni
Lezione 10 - Programmazione Ad Oggetti, Vb Accenni
 
programmazione ad oggetti
programmazione ad oggettiprogrammazione ad oggetti
programmazione ad oggetti
 
Programmaoggetti[1]
Programmaoggetti[1]Programmaoggetti[1]
Programmaoggetti[1]
 
Object Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseObject Oriented with Java Programmazione Base
Object Oriented with Java Programmazione Base
 
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013
 
Programmazione in Java Lezione 1
Programmazione in Java Lezione 1Programmazione in Java Lezione 1
Programmazione in Java Lezione 1
 
Linguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e OggettiLinguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e Oggetti
 
Java - Lezione 1
Java - Lezione 1 Java - Lezione 1
Java - Lezione 1
 
Presentazione primi principi oop
Presentazione primi principi oopPresentazione primi principi oop
Presentazione primi principi oop
 
Presentazione Xml
Presentazione XmlPresentazione Xml
Presentazione Xml
 
Lezione01
Lezione01Lezione01
Lezione01
 
Corso Java 1 - BASE
Corso Java 1 - BASECorso Java 1 - BASE
Corso Java 1 - BASE
 
Pe t4 perl-oggetti
Pe t4 perl-oggettiPe t4 perl-oggetti
Pe t4 perl-oggetti
 

Viewers also liked

Introduction to C#
Introduction to C#Introduction to C#
Introduction to C#Guido Magrin
 
Object Oriented Programming with Java
Object Oriented Programming with JavaObject Oriented Programming with Java
Object Oriented Programming with Javabackdoor
 
Java- Concurrent programming - Synchronization (part 1)
Java- Concurrent programming - Synchronization (part 1)Java- Concurrent programming - Synchronization (part 1)
Java- Concurrent programming - Synchronization (part 1)Riccardo Cardin
 
Java - Processing input and output
Java - Processing input and outputJava - Processing input and output
Java - Processing input and outputRiccardo Cardin
 
Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)Riccardo Cardin
 
Java - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basicsJava - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basicsRiccardo Cardin
 
Java - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced conceptsJava - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced conceptsRiccardo Cardin
 
Java Graphics Programming
Java Graphics ProgrammingJava Graphics Programming
Java Graphics ProgrammingRiccardo Cardin
 
Java - Remote method invocation
Java - Remote method invocationJava - Remote method invocation
Java - Remote method invocationRiccardo Cardin
 
Java - Generic programming
Java - Generic programmingJava - Generic programming
Java - Generic programmingRiccardo Cardin
 
Java Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and LoggingJava Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and LoggingRiccardo Cardin
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections frameworkRiccardo Cardin
 

Viewers also liked (14)

Lezione 11 - Javascript
Lezione 11 - JavascriptLezione 11 - Javascript
Lezione 11 - Javascript
 
Introduction to C#
Introduction to C#Introduction to C#
Introduction to C#
 
Object Oriented Programming with Java
Object Oriented Programming with JavaObject Oriented Programming with Java
Object Oriented Programming with Java
 
Java - Sockets
Java - SocketsJava - Sockets
Java - Sockets
 
Java- Concurrent programming - Synchronization (part 1)
Java- Concurrent programming - Synchronization (part 1)Java- Concurrent programming - Synchronization (part 1)
Java- Concurrent programming - Synchronization (part 1)
 
Java - Processing input and output
Java - Processing input and outputJava - Processing input and output
Java - Processing input and output
 
Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)
 
Java - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basicsJava - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basics
 
Java - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced conceptsJava - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced concepts
 
Java Graphics Programming
Java Graphics ProgrammingJava Graphics Programming
Java Graphics Programming
 
Java - Remote method invocation
Java - Remote method invocationJava - Remote method invocation
Java - Remote method invocation
 
Java - Generic programming
Java - Generic programmingJava - Generic programming
Java - Generic programming
 
Java Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and LoggingJava Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and Logging
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections framework
 

More from Giuseppe Cramarossa

Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RGiuseppe Cramarossa
 
Lezione 8 - Teoria - Progettare una base di dati
Lezione 8 - Teoria - Progettare una base di datiLezione 8 - Teoria - Progettare una base di dati
Lezione 8 - Teoria - Progettare una base di datiGiuseppe Cramarossa
 
Lezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareLezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareGiuseppe Cramarossa
 
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkLezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkGiuseppe Cramarossa
 
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumentiLezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumentiGiuseppe Cramarossa
 
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetLezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetGiuseppe Cramarossa
 
Cortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocaleCortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocaleGiuseppe Cramarossa
 
Internet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and framesInternet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and framesGiuseppe Cramarossa
 
UWP e Mobile App Mobile Services
UWP e Mobile App Mobile ServicesUWP e Mobile App Mobile Services
UWP e Mobile App Mobile ServicesGiuseppe Cramarossa
 
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Giuseppe Cramarossa
 
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramIl linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramGiuseppe Cramarossa
 
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Giuseppe Cramarossa
 
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Giuseppe Cramarossa
 

More from Giuseppe Cramarossa (18)

Lezione 9 - Il linguaggio SQL
Lezione 9 - Il linguaggio SQLLezione 9 - Il linguaggio SQL
Lezione 9 - Il linguaggio SQL
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-R
 
Lezione 8 - Teoria - Progettare una base di dati
Lezione 8 - Teoria - Progettare una base di datiLezione 8 - Teoria - Progettare una base di dati
Lezione 8 - Teoria - Progettare una base di dati
 
Lezione 7 - CSS
Lezione 7 - CSSLezione 7 - CSS
Lezione 7 - CSS
 
Lezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareLezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del software
 
Lezione 5 - L'HTML
Lezione 5 - L'HTMLLezione 5 - L'HTML
Lezione 5 - L'HTML
 
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkLezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
 
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumentiLezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
 
Lezione 3 - Il CMS Joomla
Lezione 3 - Il CMS JoomlaLezione 3 - Il CMS Joomla
Lezione 3 - Il CMS Joomla
 
Lezione 2 - Il World Wide Web
Lezione 2  - Il World Wide WebLezione 2  - Il World Wide Web
Lezione 2 - Il World Wide Web
 
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetLezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
 
Cortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocaleCortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocale
 
Internet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and framesInternet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and frames
 
UWP e Mobile App Mobile Services
UWP e Mobile App Mobile ServicesUWP e Mobile App Mobile Services
UWP e Mobile App Mobile Services
 
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
 
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramIl linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
 
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
 
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
 

Recently uploaded

RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.giuliofiorerm
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldivaleriodinoia35
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxMartin M Flynn
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiorevaleriodinoia35
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaRafael Figueredo
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativovaleriodinoia35
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaRafael Figueredo
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 

Recently uploaded (9)

RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldi
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptx
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiore
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativo
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 

Lezione 10 - Programmazione ad oggetti

  • 1. PROGRAMMAZIONE AD OGGETTI GIUSEPPE CRAMAROSSA ALTERNANZA SCUOLA-LAVORO @ LICEO SCIENTIFICO «G. GALILEI» BITONTO 11 FEBBRAIO 2017
  • 2. SOMMARIO  Tipi di dati  Classi, proprietà e metodi  Accesso a proprietà e metodi  Esempio pratico di un oggetto di uso comune: la penna  Principi della programmazione ad oggetti  Programmazione generica  Eccezioni  Esercizi
  • 3. DATI E TIPI DI DATI  Durante l’esecuzione di un programma è necessario salvare o ottenere dati  Variabili come contenitori di dati  Esistono vari tipi di dati  Interi  Reali  Stringhe  Booleani  Definiti dal programmatore  …  I tipi determinano le operazioni che si possono fare con i dati  I dati sono identificati da un nome, che può essere scelto dal programmatore
  • 4. CLASSI E OGGETTI  La classe definisce un nuovo tipo di dato composto  Proprietà  Contengono i dati della classe. Tutti i metodi della classe potranno accedere alle proprietà  Risponde alla domanda: cosa deve contenere l’oggetto?  Metodi  Risponde alla domanda: cosa deve fare l’oggetto? E di cosa ha bisogno per farlo?  Possono anche contenere dati, ma potranno essere utilizzati solamente nel metodo  Possono restituire valori di tutti i tipi  Diventa oggetto quando viene usato come tipo di un dato per una variabile, una proprietà o un metodo  L’oggetto è l’istanza di una classe
  • 5. MODIFICATORI DI ACCESSO DELLE PROPRIETÀ E DEI METODI  Oltre a un tipo, una proprietà o un metodo può avere una visibilità  Alcuni linguaggi possono supportare più tipi di visibilità o non supportarle affatto  Alcuni tipi di visibilità sono  Public (pubblica)  Private (privata)  Protected (protetta) Visibilità Descrizione Privata La proprietà o il metodo è visibile solo all’interno della classe che lo contiene Pubblica La proprietà o il metodo è visibile all’interno e all’esterno della classe che lo contiene Protetta Simile alla visibilità privata, con la differenza che il metodo o la proprietà è visibile anche alle classi derivate
  • 6. ESEMPIO PRATICO DI UN OGGETTO DI USO COMUNE: LA PENNA  Alcune proprietà  Lunghezza : numero  Marca : stringa  Tappo : può essere visto come un oggetto a sè stante  Ha le sue proprietà e i suoi metodi  Alcuni metodi  Scrive un testo su un supporto  Disegna una figura  Scarica l’inchiostro  Metodo privato
  • 7. PRINCIPI DELLA PROGRAMMAZIONE AD OGGETTI  Si basa su tre principi  Ereditarietà  Una classe può ereditare proprietà e metodi da un’altra classe, purchè siano pubblici o protetti  Esempio: i cani sono mammiferi, che a loro volta sono animali  Polimorfismo  Possono esistere più metodi che hanno lo stesso nome  Si ha un esempio nella lingua italiana nella parola «principi»  Come faccio a capire se mi riferisco alla persona o agli ideali?  Incapsulamento  La base dell’incapsulamento è la classe, che contiene i dati e il comportamento  Ad esempio, il volante agisce sulle ruote, ma non sul motore
  • 8. PROGRAMMAZIONE GENERICA  Chiamato anche polimorfismo parametrico  I tipi di dati vengono passati come parametri  Porta vari vantaggi  Scrittura di algoritmi generici  Eliminazione del cast, e quindi una migliore leggibilità del codice  Maggiore sicurezza, perché i controlli vengono fatti durante la compilazione e non durante l’esecuzione del programma  Può essere utilizzato con le proprietà e con i metodi
  • 9. ECCEZIONI  Gestire comportamenti anomali  Un numero di telefono contiene anche dei caratteri  Si vuole dividere un numero per zero  Blocco try/catch  Nel try vengono inserite le istruzioni da fare normalmente  Nel catch vengono invece inserite le istruzioni da eseguire in caso si verifica l’eccezione  Le eccezioni vengono definite in classi con postfisso «Exception»  Alcune sono già implementate (es. divisione per zero, file non trovato)  Si possono creare anche eccezioni personalizzate
  • 10. ESERCIZI  Definire le proprietà e i metodi dei seguenti oggetti  Triangolo  Bicicletta  Serpente  Termosifone  Sole  Quali eccezioni potrebbero esserci nei seguenti scenari?  Login con username e password  Registrazione utenti  Acquisto di un prodotto