Differenze tra Diretta, Composizione, Aggregazione e Associazione temporanea

0

Sto cercando di ottenere la mia certificazione java molto presto, e ho una domanda sui diversi tipi di associazioni descritti nella guida ufficiale di Oracle.

Il libro descrive il 4 come segue:

  • Direct="has-a"
  • Composition="composed-of"
  • Aggregation="part-of"
  • Temporaneo = parametri del metodo o variabili locali all'interno di un metodo ecc.

Capisco gli esempi che forniscono, ma quando viene mostrato un pezzo di codice non riesco mai a capire perché è un tipo piuttosto che un altro. Per favorire la mia frustrazione, questi non sembrano essere termini comuni nei diagrammi uml e la composizione o l'aggragate di solito è descritta come una relazione "ha-a" a seconda di dove si legge.

Ecco un link al libro. link

Le pagine 386-388 descrivono le diverse associazioni. Gli esempi di codice sarebbero molto utili.

    
posta user1020788 16.07.2014 - 20:58
fonte

1 risposta

1

Relazione HAS-A

Has-A significa che un'istanza di una classe "ha un" riferimento a un'istanza di un'altra classe o un'altra istanza della stessa classe. È anche conosciuto come "composizione" o "aggregazione". Non esiste una parola chiave specifica per implementare una relazione HAS-A, ma per lo più dipendiamo dalla parola chiave "nuova".

Composizione:

Senza esistenza dell'oggetto contenitore, se non vi è possibilità di esistenza di oggetti contenuti, si dice che il contenitore e gli oggetti contenuti sono strongmente associati e questa strong associazione è nota come composizione. Ad esempio: una "università" ha diversi "dipartimenti". Senza l'esistenza di "università" non esiste alcuna possibilità che i "dipartimenti" esistano. Quindi "università" e "dipartimenti" sono strongmente associati e questa strong associazione è nota come composizione.

Aggregazione

Senza esistenza dell'oggetto contenitore, se esiste una possibilità di esistenza di oggetti contenuti, si dice che il contenitore e gli oggetti contenuti sono associati in modo approssimativo e questa associazione strong è nota come aggregazione. Ad esempio: un "dipartimento" ha diversi "professori". Senza l'esistenza di "dipartimenti" ci sono buone probabilità che i "professori" esistano. Quindi "professori" e "dipartimento" sono genericamente associati e questa associazione libera è conosciuta come Aggregazione.

Esempio per relazione "Has-A" e "is-A":

Class Library extends School

   {

          Book b=new Book();

          CD cc=new CD(); 

   } 

Facciamo un esempio.

Ha-A:

    Library needs book and cd to run library. If you don't have book and cd then it 

non può essere una libreria. Quindi la Libreria "ha una" relazione con Libro e CD.

IS-A:

    Assume that Library placed inside a school and prohibited to use Third persons 

(esterno) e solo la persona della scuola può usare quella libreria. Quindi Library (class) "is a"

relazione con Scuola (classe).

temporaneo:

    1.Temporary variable or Local Variables or automatic variables have its lifetime  

all'interno di blocchi (ie {e} parentesi), metodi e costruttori.

    2.Access modifiers cannot be used for local variables.

    3. Only final (non-access modifier) maybe used for local variables.

Finiamo questo con un piccolo programma di esempio:

classe TestAge {

int age; // Instance Variable age

public void exampleAge() {
    int age = 7; // Local Variable;
    System.out.println(" Age is : " + age); // prints 7,  Local variable age.
}

public static void main(String args[]) {
    TestAge test = new TestAge();
    test.exampleAge();
    test.age = 10; // accessing Instance Variable
    System.out.print(test.age); // prints 10, Instance Variable age. 

}

}

uscita:  L'età è: 7 10

Spero tu abbia capito. Grazie:)

    
risposta data 17.07.2014 - 13:27
fonte

Leggi altre domande sui tag