Classe "AMIE"

Fermé
lecameleon99 - 16 déc. 2001 à 20:31
 blcw - 19 déc. 2001 à 18:23
Comment on accede à la partie private d'une autre classe??

G pourtant mis dans cette classe que la premiere etait une classe "Amie" mais comme ça je n'arrive ka acceder a la partie public..
Quelqu'un eput m'aider???

2 réponses

Si tu parles de classes en Java, voici la réponse:
il n'y a PAS moyen d'accéder directement à la partie "private " d'une autre classe. C'est d'ailleurs là le bute de toute méthode ou variable "private" (sécurité, besoin d'en savoir).

Si tu veux accéder à des méthodes "private "d'une classe, tu ne peux le faire QUE depuis la classe.

Par contre, si tu veux accéder à des variables"private", il te suffite de créer un "getter" et un "setter" pour cette variable. Un "getter" est une méthode publique permettant de récupérer une variable privée; un "setter" est une méthode publique permettant d'attribuer une valeur à une variable privée.

Un conseil: si tu programmes en Java, essaie de définir toutes tes variables "private", toutes tes méthodes "public" et ne définit que des constructeurs sans arguments. de cette manière, toutes tes classes seront des Java Bean (beaucoup plus réutilisables).

Exemple de code pour ton problème:

public class Person{
private String firstName;
private String lastName;

//Constructeur
public void Person(){
}

public String getLastName(){
return lastName;
}

public void setLastName(String lastName){
this.lastName = lastName;
}


public String getFirstName(){
return firstName;
}

public void setFirstName(String firstName){
this.firstName = firstName;
}
}


;-)
1
lecameleon99
17 déc. 2001 à 09:52
Merci pour ta réponse. Je vais aprofondir les getter et setter car il me semble qu'ils existent en C++.
En tout cas merci.
0
Alors en C++, il n'y pas moyen d'acceder à ce qui est private.
Toutefois, si tu souhaite accéder aux attributs de ta classe, tu peux créer les fonctions GetAttribut et SetAttribut en public qui respectivement vont lire et ecrire ton attribut.
L'ideal est de le faire inline.
si par exemple ton attribut est un char * de nom toto, cela donnerait

char *GetToto(void){ retrun toto;}
void SetToto(char *ValToto) {strcpy(toto, ValToto);}

La deuxième étant sous réserve d'avoir la longueur suffisante pour ecrireValToto.

Voila
0