Visualizzazione dei risultati da 1 a 7 su 7

Visualizzazione discussione

  1. #7
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Nel tuo esempio il fatto che x debba essere statico è causato dal fatto che tenti di stamparlo a video all'interno del main, che è un metodo appunto statico e slegato da qualsiasi istanza della classe B.

    Se quel print fosse all'interno del metodo m il compilatore non darebbe errore, perché all'interno del metodo m (di istanza) quel x sarebbe implicitamente this.x, con il this riferito all'istanza su cui il metodo è richiamato (nel tuo caso quel B b che crei poco prima).

    Ma nel metodo main quel x viene interpretato come B.x (NomeClasse.variabile è il modo "completo" per riferirsi a una variabile statica, nella classe stessa però è superfluo scrivere il nome della classe, allo stesso modo il this riferito a un'istanza è superfluo all'interno della stessa, sempre che non ci sia un altro parametro con lo stesso nome), perché sei in un contesto che è appunto statico. Se volevi stampare a video il valore dell'intero x dell'oggetto b allora dentro al main puoi riferirti direttamente a quel campo con b.x (sempre che il livello di visibilità lo consenta ovviamente).
    Se invece volevi stampare un valore x proprio della classe e non di una particolare istanza... beh lo rendi appunto static!

    Il fatto che poi sia considerato un buon design o meno è tutta un'altra cosa (tipicamente metodi/variabili static devono avere una valida motivazione nella programmazione ad oggetti).
    Ultima modifica di Ansharja; 31-01-2017 a 21:27

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.