PDA

View Full Version : Le associazioni in java si implementano così


misterx
08-05-2007, 07:03
class Accesso{
private ContaAccessi contatore;
public Accesso(ContaAccessi c){
contatore = c;
}
public void accedi(Cliente c){
contatore.inc();
…..
}
}
class ContaAccessi{
private int count = 0;
public void inc(){
count++;
}
}


se io ora creassi una sottoclasse di Accesso, erediterei anche la variabile contatore oppure, essendo privata mi sarebbe negata ?

black_sand
08-05-2007, 07:16
Le variabili private non sono visibili nelle sottoclassi.
Leggi qua:

http://www2.mokabyte.it/1999/04/javakeyword2.htm#private

misterx
08-05-2007, 09:09
più che altro avevo un dubbio in merito ad uno schema UML dove si vede che le sottoclassi ereditano una associazione.

Allora non può essere che pubblica, vero ?

andbin
08-05-2007, 09:18
Allora non può essere che pubblica, vero ?Un membro (variabile o metodo) è "ereditato" se all'interno della super-classe è marcato:
- public
- default (e la sotto-classe è nello stesso package)
- protected (e la sotto-classe è nello stesso package o anche in uno differente)

Naturalmente tutto questo a condizione che la super-classe sia "visibile". Se ho una classe A con accesso di "default" (non public) messa nel package 'pippo' non posso mettere una classe B nel package 'pluto' per estendere A!!