Section outline

  • Lezione svolta il 9/11/2015 h.16-18 in A.M. Edif.H3. Due esempi semplici di classi di oggetti: derisori e contatori, con un'applicazione dei contatori alla risoluzione iterativa del problema che la lezione scorsa avevamo risolto ricorsivamente. 

    • =====================================================================================

      Perche` riflettiate su classi ed oggetti, ho preparato una classe

      Derisore ,

      assieme ad un'altra,

      TestDerisore ,

      che serve al suo collaudo.


      -------------------------------------------------------------------------------------

      Questo esempio ci ricorda una caratteristica importante degli oggetti:
      oltre a poter fornire come servizi i metodi loro propri
      (implementati nella loro classe), hanno di solito dei 'campi di esemplare'.

      Ogni oggetto e` un'inestricabile mescolanza di dati e comportamenti,
      realizzati rispettivamente dai campi dell'oggetto e dai suoi metodi.

      =====================================================================================

    • // Implementiamo qui di seguito, in due maniere diverse, un contatore
      // binario il cui numero di bit viene fissato al momento della costruzione.

      // Le operazioni previste sono:
      // (0) costruzione e (ri)azzeramento;
      // (1) incremento unitario (fino a un valore massimo stabilito al momento della costruz.);
      // (2) accesso progressivo ai bit del contatore, cominciando dal meno significativo;
      // (3) ''esposizione'', sotto forma di String, del valore corrente del contatore.

      // Firma dei metodi:
      // Costruttori:
      // public Contatore( int nrBit )
      // public Contatore( )
      //
      // Metodi di accesso:
      // public Boolean leggiRotella( ) // il prossimo bit (metaforicam. 'rotella')
      // public String toString( ) // versione stampabile del contatore
      //
      // Metodi di modifica dello stato:
      // public void azzera( ) // inizializzazione / reset
      // public boolean incr( ) // incremento unitario del contatore