Anteprima
Vedrai una selezione di 7 pagine su 29
Teoria di tecniche di programmazione Pag. 1 Teoria di tecniche di programmazione Pag. 2
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Teoria di tecniche di programmazione Pag. 6
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Teoria di tecniche di programmazione Pag. 11
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Teoria di tecniche di programmazione Pag. 16
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Teoria di tecniche di programmazione Pag. 21
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Teoria di tecniche di programmazione Pag. 26
1 su 29
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Ricapitolazione Java

Editing

Scrivere il programma in un linguaggio sintatticamente corretto.

Codice Eseguibile

  • I programmi vengono compilati → punto Java e file compilato.
  • Bytecode: che poi viene eseguito.
  • Java è un linguaggio portabile perché il bytecode consente di girare su diverse macchine grazie alla JVM, senza dover bisogno di essere ricompilato.
  • Java è portabile ma perde in efficienza, ovvero i programmi sono più lenti.

API

= librerie di Java

Tipi primitivi: boolean, byte, short, ...

Dichiarazione di Variabile

int x = 4;int y;

  1. Devo dire il tipo di variabile e la visibilità.
  2. Quando il compilatore legge int x = 4, prima legge int x, va in memoria e alloca una posizione di memoria che deve contenere un int x, poi (quando la trova) verifica se esiste in memoria e scrive 4.

Visibilità della Variabile

Dal punto in cui la scrivo e in tutti i sottoblocchi successivi, posso usarla => è visibile.

La Stringa

Non è un tipo primitivo ma è un oggetto

String s = "ciao";

  1. Il compilatore vede il tipo String va in memoria e crea un puntatore ad una posizione di memoria (non crea una posizione di memoria); solo dopo aver scritto = segue il puntatore e crea la memoria e scrive "ciao".

String S = new String("ciao");

Fra una nuova memoria S, un nuovo puntatore e un copia del precedente:

Se scrivo S1 = S;

Qualche gli array abbiamo un puntatore che punta alla memoria che crea quando poi scrivo new int [ ]

  1. Differenza tra i puntatori e oggetti:
    • Nel LHS una dichiarazione
    • Oggetti visualizzati dai puntatori
    • Tipi primitivi direttamente in memoria

Se per esempio scrivo System.out.println(a), stampa puntatore, ma se scrivo System.out.println(s), stampa stringa perché Java possiede il metodo toString() che si repercute nella libreria.

Per la lunghezza di una stringa s, s.length();

Se la applichi alla stringa vuota ha "" . length() = 0

Operazione concat concatenare due stringhe

String s1: concatena la stringa s1 a l'altra e memorizza tutto in s

Si operatore substring ha inizio e fine.

Se S. SubString (a, c)

equivale f, e forma

S = "abcdefghi"

Se il primo numero (a) indicata dove si inizia, il secondo numero (c) indica dove si deve esclusa

Metodo:

è una parola da evitare, indipendente dal programma, √ perché ci serve se non lo sottometiamo

"Main" è l'unico metodo in quale si esegue

I programmi devono avere la compatibilità per essere eseguiti altrimenti saranno inutili.

Firma = intestazione

public static int somma (int, int)

Proprietà formali:

Nome di metodi: Alias, non esistono fisicamente, quindi quando lo riscontriamo in memoria, non possiamo operare mai dato che sono locazione di memoria.

Esempio:

  1. public static int somma (int a, int y)
  2. Variabili = metodo chiamato
    • Locali appena variabile chiamata

public static void main (String args [ ] )

a = 3; b = 5;

System.out.println (somma(a,b));

Parametri attuali:

All'esterno del metodo, sono le variabili locali non esistono di condivisione delle variabili, e delle variabili sono più visibili

I parametri attivi all'interno del stack

Implementazione

  • Allocazione di memoria: in una variabile viene memorizzato un valore letto o costante. In una variabile di tipo oggetto, viene memorizzato un identificativo.

Incapsulamento

Dobbiamo pensare a un oggetto come un contenitore in cui sono messi dati sensibili e metodi che agiscono su di essi; le classi possono usare i metodi ma non alterare direttamente lo stato.

Information Hiding

Il mascheramento dell’implementazione è effettuato rendendo privati gli oggetti sensibili.

  • Automezzo
    • Attributo -> privato
    • Metodo -> privato
  • Autista
    • Attributo -> pubblico
    • Metodo -> pubblico

Interfaccia

  • Permette di vedere i metodi pubblici e tutto ciò che l’oggetto mette a disposizione
  • Permette di nascondere ciò che è privato
  • L’accesso con un’altra classe può avvenire solo con elementi pubblici, mentre quelli privati devono essere modificati con appositi metodi.

Schimano

  • Marca: Kymco
  • Modello: Agility 125
  • Proprietario: Giovanni

Se Schimano

  • modificare una velocità tramite il metodo accelerazione
  • richiamare il metodo accelerazione con l’attributo visibile

con Punto p = new Punto();

creazione di new e costruzione

il costruttore vuoto in memoria un oggetto di tipo punto

  • x
  • 1
  • C5
  • C4
  • x1
    • x
    • x1
    • x
  • x1

(x1

3

5

C5

  • 3
  • x1
  • x1
  • x1
  • x1
  • x1
  • 4
  • 4
  • C4

COSTRUTTORI

  • COSTRUTTORE VUOTO: public ()
  • COSTRUTTORE DI COPIA: public (tipo c)

Si applica a x1 e l'elemento della classe separa

Questso costruttore crea un oggetto che è la copia esatta dell'oggetto

Nella stessa classe ci può essere solo un costruttore vuoto!

  1. Nome
  2. public Punto (Punto c)
    • x = c.x;
    • y = c.y;
  3. Nel main
    • Punto P = new Punto();
    • in vocazion esperto il costruttore vuoto
  4. p1
    • x1 = x;
    • x
  5. Nel main:
  6. Punto p2 = new Punto(p1);
  7. System.out.println (p1.toString());
  8. System.out.println (p2.toString());
  9. System.out.println (p3.toString());

(con Punto p2 = new Punto(p1); = CONDIVISIONE DI MEMORIA

(sempre fatti condivisi) => P, scomponi!

costruttore per parametri:

  • public Punto (int x, int y) {
  • public (doubleargomento
  • x = px;
  • y = py;
  • Sostituisce tutto punto p3: new Punto(4,5);
  • Nel main
  • Punto p3 = new Punto(4,5);

OVERLOADING

  • metodi con lo stesso nome
  • i metodi devono essere distinguibili
  • i metodi sono diversi se
    • hanno numero di parametri ≠
    • avere numeri uguali ➔
    • per i tipi dei parametri? NO!!!
  • 0, 1, 4, 2

COMPOSIZIONE TRA CLASSI

class Quadrato {

la composizione tra le classi letto

Punto q;

SUPER il richiamo di ...

  • Si utilizza con i metodi che hanno lo stesso nome ...
  • Se nella classe derivata ...

OVERRIDING si riscrive un metodo con stessa firma ...

  • Se il metodo nella classe ...

OVERLOADING si riscrivono i metodi ...

  • Si utilizza ...

REGOLA ... modulo ...

  • DEFAULT: con il metodo ...

OBJECT ...

CONTROLLO STATICO DEI TIPI

  • ...

Con l’ereditarietà ...

  • ...

REGOLA: UPCASTING

Un esempio ...

  • Base b = ...

Il tipo statico ...

  • Non posso scrivere ...
Dettagli
Publisher
A.A. 2018-2019
29 pagine
1 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher LucreF di informazioni apprese con la frequenza delle lezioni di Tecniche di programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università della Calabria o del prof Guzzo Antonella.