Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237

    problema stupido

    Ciao a tutti,
    mi sono imbattuto in questo piccolissimo errore ma che non riesco proprio a risolvere

    codice:
     non-static variable c cannot be referenced from a static context
    mi è venuto fuori mentre provavo un esempio preso da una guida, ma vi riporti il codice di un esempio molto più semplice :

    codice:
    package contatore;
    
    
    public class Main {
    
        contatore c;
    
        public static void main(String[] args) {
        c = new contatore(); //QUÌ MI SEGNALA ERRORE
        }
    
    }
    codice:
    package contatore;
    
    public class contatore {
     int x, y;
        
        public static void somma (int x, int y){
        int somma = x + y;
        System.out.println(somma);
    
        }
    
    }
    il problema a quanto pare è il fatto che non ci sia STATIC davanti al CLASS CONTATORE, se non sbaglio!
    Ma allora perchè mi segnala errore nella creazione dell'oggetto contatore?

  2. #2
    L'errore deriva dal fatto che da un metodo static (main) stai cercando di usare una variabile non-static (c). Questo ovviamente non si può fare, dato che, perché un membro non-static esista, si deve avere a che fare con un'istanza della classe, e i metodi statici, per definizione, non operano su un'istanza della classe*.

    Per risolvere, dichiara c come static.

    * effettivamente operano tutti sulla singola istanza static della classe che contiene solo i membri static.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    ah ecco!!!
    In internet leggevo ovunque che bisognasse dichiarare static la classe!!
    Grazie per l'aiuto!

  4. #4
    Amaro C++, il gusto pieno dell'undefined behavior.

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

    Moderazione

    Originariamente inviato da sgogghy
    problema stupido
    Usiamo titoli più significativi in futuro, come indicato nel Regolamento.

    Ho corretto io il titolo di questa discussione, giusto per fornire un esempio.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  6. #6
    @alka: così al volo questa roba in realtà mi sembrerebbe Java più che C++ (package, l'uso di una classe per il main, ...).
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da MItaly
    @alka: così al volo questa roba in realtà mi sembrerebbe Java più che C++ (package, l'uso di una classe per il main, ...).
    È Java infatti
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Spostata la discussione nel forum dedicato a Java e corretto il titolo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.