Index


copyOf (arrays)

copyOf metodo statico della classe java.util.Arrays


Metodi con numero variabili di argomenti

type ..

Example:

public static double sum(double...) 

oss

  • Ci può essere una sola sequenza di parametri variabili (deve essere posizionata come ultimo parametro)
  • Se sono presenti altri parametri devono essere dichiarati prima della sequenza

Array a due dimensioni

Gli elementi della matrice vengono inizializzati al valore di default del tipo della matrice


Metodi setX() getX()


Campi statici


Enumerazioni

  • In java esistono le classi e poi le enumerazione
  • Le enumerazioni contengono delle costanti enumerative

Esempio:

Come altre classi possono avere:

  • costruttori
  • campi
  • metodi

Esempio:


Metodi values() e valuesOf()

  • values of è un metodo statico che ci permette data un enum di ottenere un riferimento public final che coincide con …

Enum e switch


Classi wrapper

  • permettono di convertire i valori primitivi in un oggetto
  • forniscono metodi di accesso e visualizzazione dei valori

oss

per confrontare due oggetti si usano:

  • equals()
  • compareTo()

Costo di un oggetto rispetto a un primitivo

.Un oggetto qualsiasi costa minimo 8 byte

  • Informazioni di base come la classe dell’oggetto, flag di status, ID, ecc.
  • Un Integer 8 byte dell’oggetto + 4 byte per l’int + padding = 16 byte
  • Un Long 8 + 8 = 16 byte!
  • Un riferimento “costerebbe” 8 byte, ma si usano i compressed oop (ordinary object pointer) che sono object offset da 32 bit (ogni 8 byte), quindi indicizzano fino a 32Gb di RAM (attivi fino a – Xmx32G), quindi richiedono normalmente 4 byte

Auto-boxing e Auto-unboxing

Auto-boxing:

auto-unboxing:


Ereditarietà

Ereditarietà concetto utilizzato nella metodologia “mattone su mattone”

Estendere una classe:

  • Una sottoclasse estende la super-classe
  • La sottoclasse eredita i membri della super-classe
  • Campi e metodi d’istanza secondo il livello

oss

Inoltre la sottoclasse può:

  • aggiungere nuovi metodi e campi
  • ridefinire i metodi che eredita dalla super-classe (tipicamente NON i campi)

Astrazione

Classi astratte

Serve a definire delle classi che posso riutilizzare come basi per altre classi

  • una classe astratta non può essere utilizzata per creare un oggetto
  • Ma può essere ereditata da altre sotto classi

Metodi astratti

Super keyword


UML ereditarietà