2017-03-26 9 views
-1

Ich habe meine Variablen als privat deklariert und wollte wie hier Hinweis auf die Klasse noter verwenden:Privat erklärt aber akzeptiert keine Variable

public class Etudiant { 
    private String nom , prenom ; 
     private int anneeNais, LIMITE=60; 
     private double note; 
     private String code ; 

Und das ist die Klasse für sie:

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; 
    } 

es sagt Note privaten Zugang in Etudiant

+0

Diese Klasse kompiliert nicht einmal, da Ihr GroupeEtudiant auf ein Feld namens getNote verweist, das nicht existiert. – MeBigFatGuy

+0

@MeBigFatGuy Ja gut, wenn Sie das Objekt Estudiant von dort aus sehen – studentofjava

+0

Ich glaube nicht, dass Sie zwischen Mitgliedern und Methoden richtig unterscheiden. –

Antwort

0

es sagt, hat zur Kenntnis privaten Zugang in Etudiant hat

, die auf den Grund, wegen sind die note ein privates Feld der Klasse ist Etudiant daher ist es nicht sichtbar oder zugänglich außerhalb der Klasse, sondern macht eine getter & setter Methoden für ihn in Etudiant Klasse.

Hinweis - in Ihrem Fall brauchen Sie nicht unbedingt eine , aber es ist eine gute Praxis, diese anzugeben, wenn Sie Felder als privat deklarieren.

Beispiel:

innerhalb Etudiant Klasse, erstellen Sie ein getNote Feld wie folgt aus:

public double getNote(){ 
    return this.note; 
} 

auch ein setNote Feld innerhalb der Klasse:

public void setNote(double note){ 
    this.note = note; 
} 

vorausgesetzt, Sie haben Bearbeite die obigen Vorschläge, ersetze einfach dieses:

public void SetNoter(int i, double uneNote) { 
     etudiants[i].getNote=uneNote; 
} 

mit diesem:

public void SetNoter(int i, double uneNote) { 
     etudiants[i].setNote(uneNote); 
} 
+0

hat immer noch die gleichen Fehler – studentofjava

+0

sehen @studentofjava –

+0

aktualisieren funktioniert nicht entweder – studentofjava

0

Ich glaube, Sie versuchen, einen Wert zu einer Methode innerhalb SetNoter() zuweisen:

public void SetNoter(int i, double uneNote) { 
    etudiants[i].getNote=uneNote; 
} 

Sie sollten eher uneNote als ein Pass Argument dazu (wenn die Methode public void setNote(double note) tatsächlich existiert):

etudiantes[i].setNote(uneNote); 

UPDATE:

Um ein privaten Membervariable zugreifen Sie öffentliche Methoden (sogenannte Getter und Setter) verwenden sollte:

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; 
    } 

} 

Dann können Sie die setNote() Methode verwenden, setze die Variable wie oben erwähnt.

+0

nicht arbeiten Mann – studentofjava

Verwandte Themen