Java 私有声明但不';不接受变量
我已将变量声明为private,并希望在类noter上使用note,如下所示:Java 私有声明但不';不接受变量,java,class,get,set,private,Java,Class,Get,Set,Private,我已将变量声明为private,并希望在类noter上使用note,如下所示: public class Etudiant { private String nom , prenom ; private int anneeNais, LIMITE=60; private double note; private String code ; 这是它的课程: public class GroupeEtudiant { fin
public class Etudiant {
private String nom , prenom ;
private int anneeNais, LIMITE=60;
private double note;
private String code ;
这是它的课程:
public class GroupeEtudiant {
final int MAX=20;
Etudiant[] etudiants = new Etudiant[MAX];
int nbreEtudiants ;
public void ajouterEtudiant(Etudiant unEtudiant){
etudiants[nbreEtudiants]=unEtudiant;
nbreEtudiants ++;
}
public void SetNoter(int i, double uneNote) {
etudiants[i].getNote=uneNote;
}
它说note在Etudiant中有私人访问权限
它说note在Etudiant中有私人访问权限
这是因为注意
是类Etudiant
的私有字段,因此它在类外不可见或不可访问,而是在Etudiant
类内为其创建一个getter
和setter
方法
注意-在您的情况下,您不一定需要getter
,但在将字段声明为私有字段时提供它们是一种很好的做法
例如:
在Etudiant
类中,创建一个getNote
字段,如下所示:
public double getNote(){
return this.note;
}
类中还有一个setNote
字段:
public void setNote(double note){
this.note = note;
}
假设您已经完成了上述建议,只需替换以下内容:
为此:
我认为您正在尝试为
SetNoter()
中的methode赋值:
您应该将unnote
作为参数传递给它(如果方法public void setNote(double note)
实际存在):
更新:
要访问私有成员变量,应使用公共方法
(所谓的getter和setter):
然后可以使用
setNote()
method来设置上面提到的变量。这个类甚至没有编译,因为您的GroupeTudiont引用了一个名为getNote的字段,但该字段并不存在。@MeBigFatGuy是的,如果您看到对象Etudiont从中获取它,我认为您没有正确区分成员和方法。@SteveHarris我正在学习老师说要像这样做this@OusmaneMahyDiawdidI真的很抱歉,但它不起作用。我正在发送一个谷歌驱动器的代码链接,以便您可以看到:@studentofjava我提供的解决方案100%有效。如果您需要任何进一步的帮助,请随时更新您的帖子,而不是外部链接。@studentofjava我只需要您用我提供的建议更新Etudiant类,我会从那里看到的。好吧,我按您的要求做了,当我试图在这里发布时,它被拒绝了
public void SetNoter(int i, double uneNote) {
etudiants[i].getNote=uneNote;
}
public void SetNoter(int i, double uneNote) {
etudiants[i].setNote(uneNote);
}
public void SetNoter(int i, double uneNote) {
etudiants[i].getNote=uneNote;
}
etudiantes[i].setNote( uneNote );
public class Etudiant {
private String nom , prenom ;
private int anneeNais, LIMITE=60;
private double note;
private String code;
// for reading the variable
public double getNote() {
return this.note;
}
// for setting the variable
public void setNote( double uneNote ) {
this.note = uneNote;
}
}