Advertisement
neo7bf

java references

Jan 30th, 2022
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.94 KB | None | 0 0
  1. public class Main{
  2.    
  3.     static class Coppia< T > {
  4.    
  5.     private T primo;
  6.     private T secondo;
  7.    
  8.     //Step3: primo è "r" quindi Radio24 mentre secondo è VirginRadio
  9.     public Coppia(T primo, T secondo){
  10.         this.primo = primo;
  11.         this.secondo = secondo;
  12.     }
  13.    
  14.    //Step6: e1 è VirginRadio, quindi entra nella prima if e restituisce primo
  15.    //Dallo step3 sappiamo ora chi è primo
  16.    public T get(Emittente e1){
  17.        if(e1 instanceof VirginRadio)
  18.               return this.primo;
  19.        else
  20.               return this.secondo;
  21.    }
  22.    
  23. }
  24.  
  25.  
  26. static  class Emittente {
  27.     public void stampa() {
  28.         System.out.println("Emittente radiofonica");
  29.     }
  30. }
  31.  
  32. static  class Radio24 extends Emittente {
  33.    
  34.     //step7: quindi l'oggetto X dello step5, restituito dal get è Radio24
  35.     @Override
  36.     public void stampa(){
  37.         System.out.println("Radio 24");
  38.     }
  39. }
  40.  
  41. static  class VirginRadio extends Emittente {
  42.     @Override
  43.     public void stampa(){
  44.         System.out.println("Virgin Radio");
  45.     }
  46. }
  47.    
  48.     public static void main(String[] args){
  49.         Emittente r = new Radio24();
  50.         VirginRadio v = new VirginRadio();
  51.         Emittente e = new Emittente();
  52.         e = v; //Step1: adesso "v" ed "e" sono la stessa cosa (VirginRadio), l'oggetto creato alla riga 54 è perso!
  53.        
  54.         //Step2: viene creato l'oggetto Coppia(r,e), al cui interno vengono inseriti r (Radio24) ed e (VirginRadio)
  55.         //Step4: l'oggetto coppia viene passato a Stampa insieme a v(VirginRadio)
  56.         stampa(new Coppia< Emittente >(r, e), v);
  57.     }
  58.    
  59.     static void stampa(Coppia< ? extends Emittente > c, Emittente v){
  60.         //Step5: c è la coppia e contiene r(Radio24) ed e(virginRadio), qui viene richiamato il metodo get passando come oggetto v (VirginRadio)
  61.         //il quale restituisce un oggetto X su cui viene richiamato stampa
  62.         c.get(v).stampa();
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement