我试图在提到他们的名字时改变一个人的性别价值。我的函数changerSexe()
是为此过程创建的函数。但我继续得到error.unexpected type
第83行在函数changerSexe()
中,并且是:pers[i].getSexe()=sexe;
。它不允许我访问并改变它。
import java.util.*;
class Personne{
private String nomPre;
private double taille;
private char sexe;
private double poids;
private int codePerm;
public Personne(String nomPre,char sexe,double taille,double poids,int codePerm){
this.nomPre=nomPre;
this.taille=taille;
this.sexe=sexe;
this.poids=poids;
this.codePerm=codePerm;
}
public Personne(){
}
public String getNomPre(){
return nomPre;
}
public double getTaille(){
return taille;
}
public char getSexe(){
return sexe;
}
public double getPoids(){
return poids;
}
public int getCodePerm(){
return codePerm;
}
public String redNomPre(){
return String.format("%s",getNomPre());
}
public String redTaille(){
return String.format("%f",getTaille());
}
public String redSexe(){
return String.format("%c",getSexe());
}
public String redPoids(){
return String.format("%f",getPoids());
}
public String redCodePerm(){
return String.format("%d",getCodePerm());
}
public char getSexe(char sexe){
return sexe;
}
}
public class numero2{
static void afficher(Personne[]pers){
int count=0;
for(int i=0;i<pers.length;i++){
System.out.printf("%s %c %f %f %d\n",pers[i].getNomPre(),pers[i].getSexe(),pers[i].getTaille(),pers[i].getPoids(),pers[i].getCodePerm());
count++;
}
System.out.printf("Il y a %d de personne.\n",count);
}
static void afficherT(Personne[]pers){
for(int i=0;i<pers.length;i++){
System.out.printf("%s %s %s %s %s\n",pers[i].redNomPre(),pers[i].redSexe(),pers[i].redTaille(),pers[i].redPoids(),pers[i].redCodePerm());
}
}
static int search(Personne[]pers,String mot){
for(int i=0;i<pers.length;i++){
if(pers[i].getNomPre()==mot)
return i;
}
return -1;
}
static void changerSexe(Personne[]pers,char sexe,String nom ){
for(int i=0;i<pers.length;i++){
if(pers[i].getNomPre()==nom){
pers[i].getSexe()=sexe;
}
}
}
public static void main(String[]args){
Personne[]pers={new Personne("ROY CHANTAL",'F',1.63,54.9,2759),new Personne("MOLAISON CLAUDE",'M',1.57,62.2,1848),
new Personne("BEDARD MARC-ANDRE",'M',1.43,80.5,2636),new Personne("MONAST STEPHANIE",'M',1.65,61.7,1750),
new Personne("JALBERT LYNE",'F',1.63,61.7,1750),new Personne("DUBE FRANCOISE",'F',1.68,67.5,4612),
new Personne("ROBITAILLE JACQUES",'M',1.72,65.4,2325),new Personne("LABELLE LISE",'F',1.79,68.0,1512),
new Personne("RIVERIN HELENE",'F',1.71,60.8,2340),new Personne("MICHAUD NORMAND",'M',1.73,103.7,3428),
new Personne("RICHER AGATHE",'F',1.65,53.1,3563),new Personne("BEGIN MARIE-LUCE",'F',1.62,49.0,4101),
new Personne("ROBITAILLE SUZANNE",'F',1.48,61.5,4371),new Personne("DUMITRU PIERRE",'M',1.92,99.4,3629),
new Personne("FILLION ERIC",'M',1.78,75.7,2630),new Personne("DESMARAIS DENISE",'F',1.75,58.7,3215),
new Personne("TREMBLAY MARC",'M',1.79,64.9,3529),new Personne("TREMBLAY SYLVIE",'M',1.83,86.2,1538),
new Personne("ROBITAILLE SUZANNE",'F',1.58,60.2,4119),new Personne("CHOQUETTE ALAIN",'M',1.78,70.3,5678),
new Personne("ROY HELENE",'F',1.62,61.7,4146)};
System.out.println("1.Remplir le tableau pers et de compter puis retourner le nombre de personnes lues:");
afficher(pers);
System.out.println("\n");
System.out.println("2.Afficher le contenu du tableau pers en utilisant la redefinition de toString:");
afficherT(pers);
System.out.println("\n");
System.out.println("Tremblay Sylvie est a l'index : "+search(pers,"TREMBLAY SYLVIE"));
System.out.println("Robitaille Suzanne est a l'index : "+search(pers,"ROBITAILLE SUZANNE"));
System.out.println("Tremblay Caroline est a l'index : "+search(pers,"TREMBLAY CAROLINE"));
}
}
答案 0 :(得分:1)
您需要为要写入值的类成员创建“setter”。在您的情况下,您可以将其添加到Personne类:
public void setSexe(char sexe) {
this.sexe = sexe;
}
然后使用pers[i].getSexe()=sexe
而不是pers[i].setSexe(sexe)
。
答案 1 :(得分:0)
以下内容无效
pers[i].getSexe() = sexe;
编译器评估expresseion的rvalue并将其放在lvalue中。但在这里你试图评估右值。
Personne
public char getSexe(char sexe) {
return sexe;
}
这个功能的目的是什么。您已经定义了一个getter。 只需将其更改为setter。像这里:
public void setSexe(char sexe) {
this.sexe = sexe;
}
现在,您可以通过替换以下内容在changerSexe(...)
函数中使用它:
pers[i].getSexe() = sexe;
用这个:
pers[i].setSexe(sexe);