Come funziona l'accesso alle variabili a livello di classe in java?

-2

Sto facendo il mio terzo corso online per imparare java perché non sono riuscito a capire come avviare un progetto da zero. C'è stata una lezione in questo nuovo corso che mi ha fatto fare questa domanda sul codice e su come scriverlo. Si trattava di versi che utilizzavano la notazione a punti quando si utilizzavano variabili di livello di classe.

Ecco come appariva il codice dell'istruttore:

import java.util.Scanner;

public class TicTacT {

    public static String usrStr;

    public static void main(String[] args) {

        System.out.print("Enter some text: ");
        Scanner input = new Scanner(System.in);
        TicTacT.usrStr = input.nextLine();

        System.out.println(TicTacT.usrStr);

    }

}

Ora ecco la mia versione dello stesso codice che ha funzionato troppo.

import java.util.Scanner;

public class TicTacT {

    public static String usrStr;
    public static String instruction = "Enter some text: ";

    public static void main(String[] args) {

        System.out.print(instruction);
        Scanner input = new Scanner(System.in);
        usrStr = input.nextLine();

        System.out.println(usrStr);

    }
}

Quindi entrambi i metodi per accedere alle variabili di livello di classe sono corretti ed è solo una preferenza personale?

    
posta Rafael Cortes 16.10.2016 - 03:54
fonte

1 risposta

2

L'utilizzo di Classname.fieldname rende chiaro a un lettore che fieldname è un campo statico .

L'utilizzo di anInstanceOfTheClass.fieldname (o la forma implicita come sottolineato da @Robert Harvey) lascia supporre al lettore che, in realtà, la maggior parte supporrebbe erroneamente che fieldname sia una variabile di istanza.

Preferisco la chiarezza e la leggibilità.

    
risposta data 16.10.2016 - 06:01
fonte

Leggi altre domande sui tag