Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    6

    Problema interpretazione codice

    Buonasera ragazzi, avrei dei problemi con questo codice:

    codice:
    class GameShape {
      public void displayShape() { 
        System.out.println("displaying shape"); 
      } 
      // more code 
    } 
    class PlayerPiece extends GameShape { 
      public void movePiece() {
        System.out.println("moving game piece"); 
      } 
      // more code 
    } 
    class TilePiece extends GameShape { 
      public void getAdjacent() { 
        System.out.println("getting adjacent tiles"); 
      }
     // more code 
    } 
    public class TestShapes { 
      public static void main (String[] args) {
        PlayerPiece player = new PlayerPiece(); 
        TilePiece tile = new TilePiece(); 
        doShapes(player); 
        doShapes(tile); 
      } 
    
      public static void doShapes(GameShape shape) { 
       shape.displayShape(); 
      } 
    }
    Outputs:
    displaying shape
    displaying shape

    Ciò che non capisco è: 1) doShapes vorrebbe dire esegui il metodo Shapes...ma dov'è? Non mi sembra che da nessuna parte si stato dichiarato uno Shapes. 2) Che significa "doShapes(GameShape shape)" 3) perché il risultato è 2 volte displaying shape?^

    Grazie in anticipo

  2. #2
    Non ti è venuto neanche un piccolissimo sospetto che piuttosto che do Shapes si stia invocando il metodo doShapes()?!


    codice:
      ...
    
      public static void doShapes(GameShape shape) { 
       shape.displayShape(); 
      }
    
      ...
    Prima di cercare di capire il funzionamento di un codice ti consiglio di studiarti il linguaggio col quale esso è scritto.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    16
    Lo sto studiand infatti ma sul manuale non e stata spuegata l istruzione do e comunque nell argomento di doshapes viene richiamato shape di gameshape ma non c e nessun sjape nella classe gameshape

  4. #4
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Originariamente inviato da ertello
    Lo sto studiand infatti ma sul manuale non e stata spuegata l istruzione do
    Come ti ha detto chiaramente satifal
    codice:
    public static void doShapes(GameShape shape)
    è un metodo (di classe), NON è un comando.
    E' come se tu chiamassi tale metodo "rendiFigureGeometriche" o simili.

    Originariamente inviato da ertello
    e comunque nell argomento di doshapes viene richiamato shape di gameshape ma non c e nessun sjape nella classe gameshape
    La parte in grassetto
    codice:
    public static void doShapes(GameShape shape)
    sta ad indicare il tipo, o meglio la classe di appartenenza del paremetro formale shape. Cioè, è un modo per dire al compilatore che il metodo doShapes accetta solo oggetti di tipo GameShape e derivati.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    16
    Ah ok grazie mille ero io che mi ero messo in testa che do era un'istruzione comunwue un'altra donanda: gameshape shape si riferisce a gameshape e ai suoi derivati...ma perché shape dovrebbe indicare i suoi derivati? E' vero tutte le classi hanno nel nome la parola shape ma dove sta scritto che sono derivati shape? Grazie ancora

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    6
    scusate ho risposto dal pc del mio collega

  8. #8
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    Originariamente inviato da ertello
    Ah ok grazie mille ero io che mi ero messo in testa che do era un'istruzione comunwue un'altra donanda: gameshape shape si riferisce a gameshape e ai suoi derivati...ma perché shape dovrebbe indicare i suoi derivati? E' vero tutte le classi hanno nel nome la parola shape ma dove sta scritto che sono derivati shape? Grazie ancora
    No aspetta....sei molto confuso.... shape non definisce i suoi derivati...è solo un nome dato a un parametro formale di tipo GameShape...potevi anche chiamarlo
    codice:
    public static void doShapes(GameShape mojitoDaBereSulMare)
    gli è stato dato come nome shape perchè è opportuno che i nomi delle variabili siano il più possibile esplicativi
    I derivati di GameShape sono le classi xxPiece, le quali estendono la classe GameShape

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    6
    ah grazie ora ho capito.

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da Arx91
    scusate ho risposto dal pc del mio collega
    Evita di farlo in futuro, poiché altrimenti è possibile provvedere alla disattivazione di uno dei due account, in quanto è una violazione delle condizioni d'uso del forum.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.