Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2016
    Messaggi
    12

    Quando usare Static in JAVA

    Salve a tutti.
    Lo so che la mia è una domanda fatta e rifatta, ma non riesco a venirne a capo.
    Sto affrontando la programmazione ad oggetti e ho notato che quando creo una nuova classe oggetto, i metodi non sono statici. Mentre quando programmo normalmente senza oggetti, sono statici.

    Potreste spiegarmi in modo più semplice possibile la differenza tra Statico e non statico e quando usare i due?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Un membro (variabile o metodo) static appartiene alla classe, non a ciascun singolo oggetto. Al contrario, un membro non static appartiene all'oggetto, quindi è distinto per ciascuna istanza della classe.

    Prova questo:

    codice:
    public class Prova {
        private static int sCont;
        private int iCont;
    
        public Prova() {
            sCont++;
            iCont++;
        }
    
        public String toString() {
            return "sCont=" + sCont + "  iCont=" + iCont;
        }
    
        public static void main(String[] args) {
            Prova p1 = new Prova();
            Prova p2 = new Prova();
            Prova p3 = new Prova();
            System.out.println(p1);
            System.out.println(p2);
            System.out.println(p3);
        }
    }

    Vedrai che sCont viene stampato da tutti gli oggetti come 3. Questo perché sCont appartiene alla classe, c'è una sola variabile per così dire "globale". Mentre iCont è "di istanza", ciascun oggetto ha il SUO campo iCont distinto da quello degli altri oggetti.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2016
    Messaggi
    12
    Grazie mille della risposta.
    Sapete spiegarmi cosa significa "istanza", "istanziare una classe"?

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.