Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Lodin Visualizza il messaggio
    Ora però continuo a non capire perché x debba essere per forza statico.
    Ma infatti non è che deve per forza essere static. Dipende dal senso e uso che ne intendi fare!
    Un membro static ("di classe") è associato alla classe ed è sostanzialmente "unico". Un membro non static ("di istanza") è associato distintamente a ciascun oggetto di quella classe.

    Se quel x è statico, il "conteggio" con quel incremento è unico, "globale". Se x è non static, è associato a ciascun oggetto di tipo B. Un oggetto B potrebbe avere x=5, un altro x=10 ecc...


    E tra l'altro, già che ci sono, quel i++ nel m() semplicemente NON serve a nulla. Incrementare il parametro NON cambia ciò che ha il chiamante. Incrementare il parametro i in sostanza non cambia quella variabile y nel main.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    55
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Ma infatti non è che deve per forza essere static. Dipende dal senso e uso che ne intendi fare!
    Un membro static ("di classe") è associato alla classe ed è sostanzialmente "unico". Un membro non static ("di istanza") è associato distintamente a ciascun oggetto di quella classe.

    Se quel x è statico, il "conteggio" con quel incremento è unico, "globale". Se x è non static, è associato a ciascun oggetto di tipo B. Un oggetto B potrebbe avere x=5, un altro x=10 ecc...


    E tra l'altro, già che ci sono, quel i++ nel m() semplicemente NON serve a nulla. Incrementare il parametro NON cambia ciò che ha il chiamante. Incrementare il parametro i in sostanza non cambia quella variabile y nel main.
    però se compilo il codice del mio ultimo messaggio mi viene fuori questo errore:
    Cannot make a static reference to the non-static field x
    risolvibile mettendo x statico.

    P.S Non considerare il senso del codice... quello iniziale del primo post è il testo di un esercizio quindi non ha molto senso

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Lodin Visualizza il messaggio
    risolvibile mettendo x statico.
    Oppure mettendo b.x nel println invece che solo x.
    Il punto non è l'uno o l'altro modo ma perché ti dovrebbe servire x come static piuttosto che non static.

    Ho già spiegato prima la questione di static/non-static. Dipende dove serve l'uno piuttosto che l'altro. E detto in generale, static NON va mai messo solamente perché "ti fa comodo" accedere ad un certo membro. Non è quello l'obiettivo in Java e nei linguaggi ad oggetti.

    Quote Originariamente inviata da Lodin Visualizza il messaggio
    P.S Non considerare il senso del codice... quello iniziale del primo post è il testo di un esercizio quindi non ha molto senso
    Sì, naturalmente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2026 vBulletin Solutions, Inc. All rights reserved.