Programma elementare di richiamo variabili - errore

di il
7 risposte

Programma elementare di richiamo variabili - errore

Ciao a tutti,
sto studiando Java 9 e ho creato due classi, mi sto esercitando per capire come funzionano le variabili e come richiamarle in altre classi, tuttavia Eclipse in System.out.println(....) mi restituisce, per le 4 righe l'errore "nomevariabile" cannot be resolved to a variable, dove sto sbagliando? ecco il listato della prima classe e della seconda in cui richiamo la prima, e attribuisco i valori degli attributi alla variabile
vi ringrazio.

public class Persona {
public String occhi;
public String capelli;
public double altezza;
public String nome;
}

public class PersonaSpecifica {

public static void main(String[] args) {

Persona anto = new Persona ();
anto.nome = "Anna";
anto.capelli = "biondi";
anto.occhi = "azzurri";
anto.altezza = 1.70;

System.out.println("La ragazza di nome " + nome); //errore nome cannot be resolved to a variable
System.out.println("ha i capelli " + capelli); // errore capelli cannot be resolved to a variable
System.out.println("ha gli occhi " + occhi); // errore occhi cannot be resolved to a variable
System.out.println("è alta circa " + altezza); // errore altezza cannot be resolved to a variable

}
}

7 Risposte

  • Re: Programma elementare di richiamo variabili - errore

    I campi sono public, quindi l'accesso diretto ai campi è tecnicamente corretto.

    L'assegnamento ai campi è ok. Ma anche quando vuoi "leggere" il campo devi usare la stessa forma ovvero in generale:

    rifOggetto.nomeCampo
  • Re: Programma elementare di richiamo variabili - errore

    Quello che andbin ti sta dicendo è che quelle istruzioni dovrebbero essere scritte così:
    
    System.out.println("La ragazza di nome " + anto.nome);
    System.out.println("ha i capelli " + anto.capelli);
    System.out.println("ha gli occhi " + anto.occhi);
    System.out.println("è alta circa " + anto.altezza);
    
    Correggetemi se sbaglio... sto imparando anch'io.
  • Re: Programma elementare di richiamo variabili - errore

    SpiritoLibero ha scritto:


    quelle istruzioni dovrebbero essere scritte così:
    
    System.out.println("La ragazza di nome " + anto.nome);
    System.out.println("ha i capelli " + anto.capelli);
    System.out.println("ha gli occhi " + anto.occhi);
    System.out.println("è alta circa " + anto.altezza);
    
    Esatto, proprio così.
  • Re: Programma elementare di richiamo variabili - errore

    Bah, sarò fuso io, ma il costruttore non sembra impostato per ricevere alcun parametro, e i vari getter (almeno quelli), come può funzionare quel codice?
  • Re: Programma elementare di richiamo variabili - errore

  • Re: Programma elementare di richiamo variabili - errore

    Se non sbaglio (che è probabile) una classe può non avere un costruttore esplicito (e sarà il compilatore a crearlo vuoto) e può anche non avere metodi, se tutti i suoi campi sono pubblici (come la classe mostrata da MariaDB).
  • Re: Programma elementare di richiamo variabili - errore

    SpiritoLibero ha scritto:


    una classe può non avere un costruttore esplicito (e sarà il compilatore a crearlo vuoto)
    Corretto, se non c'è alcun costruttore esplicito scritto dal programmatore, il compilatore genera quello di "default", che non ha argomenti, fa una chiamata super(); senza argomenti e prende lo stesso livello di accesso della classe.

    SpiritoLibero ha scritto:


    e può anche non avere metodi, se tutti i suoi campi sono pubblici
    Corretto.
Devi accedere o registrarti per scrivere nel forum
7 risposte