Capitolo5 Flashcards

1
Q

Astrazione Funzionale

A

Concentrarsi sull’implementazione di metodi che rappresentano concetti dinamici, azioni o funzioni, senza dover tenere conto dell’implementazione stessa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Astrazione dei Dati

A

Definire classi che raccolgono solo le caratteristiche e funzionalità essenziali degli oggetti che devono definire nel contesto specifico.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Astrazione del Sistema

A

Definire un’applicazione nei termini delle classi essenziali che soddisfano gli scopi dell’applicazione stessa, simile al metodo “Top down” nella programmazione procedurale.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Incapsulamento

A

Nascondere i dettagli di implementazione dietro interfacce pubbliche, controllando l’accesso ai dati tramite metodi che possono prevenirne l’usura e la non correttezza.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Differenze di Java da Altri Linguaggi

A

Eliminazione di strumenti “pericolosi”: Come goto e aritmetica dei puntatori.
Migliore gestione dell’incapsulamento: Accesso ai dati tramite metodi pubblici.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Origine di Java

A

Nato da C++: Miglioramenti sull’incapsulamento e orientamento agli oggetti.
“Puro” OOP: Java promuove la programmazione ad oggetti corretta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Astrazione e Riuso

A

Astrazione: Concentrazione sui dettagli essenziali.
Riuso: Utilizzo di codice preesistente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Paradigmi della Programmazione ad Oggetti

A

Incapsulamento: Controllo accesso ai dati.
Ereditarietà: Relazione tra classi.
Polimorfismo: Diverse forme di un metodo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Utilizzo dell’Incapsulamento

A

L’incapsulamento in Java si ottiene dichiarando gli attributi di una classe come privati e fornendo metodi pubblici per accedervi (getter e setter). Questo permette di proteggere i dati e di controllare come vengono accessi e modificati.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Ereditarietà

A

L’ereditarietà è un principio che permette a una classe di ereditare attributi e metodi da un’altra classe, chiamata superclasse. In Java, si utilizza la parola chiave extends per stabilire una relazione di ereditarietà.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Parola Chiave Extends

A

La parola chiave extends viene utilizzata in Java per indicare che una classe deriva da un’altra classe, ereditandone attributi e metodi. Per esempio: public class Sottoclasse extends Superclasse { … }.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Ereditarietà Multipla e Interfacce

A

Java non supporta l’ereditarietà multipla direttamente, ma permette l’uso di interfacce per ottenere un effetto simile. Una classe può implementare più interfacce, ereditando così i metodi definiti in esse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Modificatore Private

A

Il modificatore private è utilizzato per nascondere i dettagli di implementazione di una classe, rendendo gli attributi o i metodi accessibili solo all’interno della classe stessa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Reference This

A

this è una parola chiave in Java che fa riferimento all’oggetto corrente su cui è invocato un metodo, permettendo di distinguere tra variabili d’istanza e parametri con lo stesso nome.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Accessibilità di Classi Private

A

Le classi private non sono accessibili al di fuori del file in cui sono dichiarate, garantendo un alto livello di incapsulamento e protezione dei dati.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Variabili Referenziate e Non Referenziate

A

Le variabili referenziate sono quelle a cui si accede tramite un riferimento esplicito, mentre quelle non referenziate sono accessibili direttamente all’interno della loro classe senza un riferimento esplicito. Il compilatore Java aggiunge implicitamente this alle variabili d’istanza non referenziate.

17
Q

Superclasse

A

Una superclasse è una classe da cui altre classi (sottoclassi) ereditano attributi e metodi. Serve come modello generale che può essere specializzato dalle sottoclassi attraverso l’ereditarietà.

18
Q

Metodi Set e Get

A

I metodi set permettono di modificare il valore di un attributo privato, mentre i metodi get ne consentono la lettura. Entrambi contribuiscono a mantenere l’integrità dei dati seguendo le regole dell’incapsulamento.

19
Q

Regole dell’Incapsulamento

A

L’incapsulamento in Java si ottiene dichiarando gli attributi come private e fornendo metodi public per accedervi (set e get), garantendo così il controllo sull’accesso e la modifica dei dati.

20
Q

Modificatore Protected

A

Il modificatore protected in Java limita l’accesso ai membri di una classe solo alle sottoclassi e ad altre classi nello stesso pacchetto, offrendo un livello di protezione intermedio tra public e private.

21
Q

Rapporto Ereditarietà-Incapsulamento

A

L’ereditarietà permette a una classe di ereditare attributi e metodi da un’altra, mentre l’incapsulamento protegge i dati interni e espone solo metodi sicuri per l’interazione.

22
Q

Utilizzo dell’Ereditarietà

A

L’ereditarietà permette a una classe di ereditare attributi e metodi da un’altra classe, facilitando il riutilizzo del codice e l’organizzazione gerarchica.

22
Q

Classe Object

A

La classe Object è la superclasse di tutte le altre classi in Java e fornisce metodi comuni come equals(), hashCode(), e toString().

23
Q

Relazione “Is A”

A

La relazione “Is A” descrive una relazione gerarchica in cui una classe figlia è un tipo specifico della classe genitore, ereditandone caratteristiche e comportamenti.

24
Q

Generalizzazione e Specializzazione

A

La generalizzazione è il processo di definire caratteristiche comuni in una classe base, mentre la specializzazione si riferisce alla creazione di classi derivate con caratteristiche più specifiche.