Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Funzionamento di "This"

    Salve a Tutti, Sono nuovo di questo forum e anche alle primissime armi con java.se io scrivo
    codice:
    public class First{
       static int x=10;
       public static void main(String args[])
       {
          System.out.println(x);
       }
    }
    fin qua tt bene. Ma perchè se scrivo
    codice:
    public class First{
       static int x=10;
       public static void main(String args[])
       {
          System.out.println(this.x);
       }
    }
    mi esce l'errore "non static variable this cannot be referenced from a static context"??

    Scusate l'assoluta ignoranza solo che ho aperto il libro da due giorni

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Funzionamento di "This"

    Originariamente inviato da The Foul
    mi esce l'errore "non static variable this cannot be referenced from a static context"??
    Scusate l'assoluta ignoranza solo che ho aperto il libro da due giorni
    Grazie in anticipo
    Non puoi usare this su un campo statico!
    "this" si riferisce ad una particolare istanza della classe corrente. "static" invece slega un attributo/metodo da un oggetto particolare e lo mette in condivisione per tutte le istanze di quella classe. Capirai che le due cose sono l'opposto!
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Quindi per gestire i campi statici nn devo usare this ma le istanze di classe, Giusto??

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da The Foul
    Quindi per gestire i campi statici nn devo usare this ma le istanze di classe, Giusto??
    Istanza di una classe = oggetto. Per accedere a un campo statico dovrai usare il nome della classe!
    codice:
    class A {
      public static int x = 10;
    }
    
    public class Main {
      public static void main(String[] args) {
        System.out.println("x = " + A.x);
      }
    }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    L'"istanza" di una classe è un oggetto. Immagino che tu ti riferissi al "nome" di una classe, e in questo caso la risposta è sì

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.