Java: définir et obtenir des méthodes pour les chaînes


Je dois écrire un programme qui utilise les méthodes get et set appropriées pour produire ce qui suit: Cette personne est John Smith (21 ans, homme)

Jusqu'à présent, j'ai atteint ici:

public class Person {

    private int age;
    private String name;
    private String gender;

    public void setAge(int age){

        this.age= age;
    }

    public int getAge(){

        return age;
    }

    public void setName(String thename){

        this.name=name;
    }

    public String getName(){
        return name;
    }

    public void setGender(String gender){
        this.gender= gender;
    }

    public String getGender(){

        return gender;
    }

    public void person(){

        System.out.printf("This person is %s(%d, %s)", getName(), getAge(), getGender());
    }

}

Dans la classe principale:

class MyClass{


        public static void main(String[] args) {

            Person personObj1= new Person();

            String thisname= "John Smith";

            personObj1.setName(thisname);

            personObj1.setAge(21);

            String thisgender= "male";

            personObj1.setGender(thisgender);

            personObj1.person();


        }


    }

Le problème est que je reçois des erreurs comme La méthode setName(String) n'est pas définie pour le type Person pour les méthodes set dans le main. Je suis toujours un débutant en Java, donc je n'ai pas encore compris.

Author: Tia, 2015-06-09

1 answers

Le seul problème que je vois est dans la mise en œuvre de setName lui-même. Vous n'utilisez pas du tout la variable d'entrée thename.

public void setName(String thename){

    this.name=name;
}

La dernière ligne devrait être

this.name = thename;

Mais cela ne vous donnerait pas l'erreur que vous dites avoir (que setName n'existe pas). Je suppose que vous avez défini la méthode réelle avec toutes les minuscules (comme public void setname(String thename)) ou que nous ne voyons pas tout le code.

 3
Author: Steve Francisco, 2015-06-08 23:20:50