Java: héritage

Fermé
BigFlo93 Messages postés 51 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 30 octobre 2002 - 21 oct. 2002 à 12:23
 fledren - 13 nov. 2007 à 11:06
Salut !

voila je découvre l'héritage en Java et j'ai quelques questions:
J'ai une page jsp avec des beans, et je fais
<jsp:useBean id="id_bean" class="classe1" scope="page" />
<jsp:setProperty name="id_bean" property="*" />
Le bean id_bean en question récupere les valeurs en parametres et les affecte aux variables correspondantes avec les proprietes setXXX.
Ensuite je fais dans ce bean un extends avec une autre classe qui va s'occuper que des valeurs passées en parametres. en fait les variables et autres setXXX déménagent vers la nouvelle classe nommée classe2. Et la je comprends pas, parce que ca marche quand meme avec l'extends alors que j'ai toujours mon
<jsp:setProperty name="id_bean" property="*" />
alors que , pour moi, je devrais mettre plutot:
<jsp:useBean id="id_bean" class="classe1" scope="page" />
<jsp:useBean id="id_bean2" class="classe2" scope="page" />
<jsp:setProperty name="id_bean2" property="*" />

Cela me parait plus logique !
Je voudrais donc savoir si c'est normal que ca marche ou bien justement que ca ne devrais pas marcher ? Parce que la je sui largué !!

Merci de vos réponses !
A voir également:

3 réponses

choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
21 oct. 2002 à 12:49
salut

Ensuite je fais dans ce bean un extends avec une autre classe qui va s'occuper que des valeurs passées en parametres. en fait les variables et autres setXXX déménagent vers la nouvelle classe nommée classe2.

là j'avoue que je ne comprends pas très bien ce que tu veux dire par faire un extends dans un bean?

peux tu m'éclairer?



Choubanimal : 
"L'alcool est un ennemi", c'est lâche de fuir l'ennemi
0
BigFlo93 Messages postés 51 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 30 octobre 2002 5
21 oct. 2002 à 13:01
Salut !

En fait je pense que je me suis mal exprimé ! Je voulais dire :
"J'utilise extends dans la classe qui me sert de bean pour ma page jsp." !
De plus, je viens de me relire et moi-meme j'ai pas compris, lol donc je reformule:
J'utilise les proprietes setXXX pour parametrer des varibales selon des valeurs passées en parametre. Donc dans ma class adéquat j'ai donc des trucs genre setVar1(int nb) { var1=nb;} ...
Donc je bouge toutes ces fonctions setXXX vers une autre classe et je fais un extends. Mais dans ma page jsp j'ai toujours mon truc
<jsp:useBean id="id_bean" class="classe1" scope="page" />
<jsp:setProperty name="id_bean" property="*" />
sans rien rajouter ca marche quand meme !
Vu que je ne comprends pas je demande des informations sur ce "phénomen" !

Voila !
0
La notion d'héritage est générale au monde objet : çà fonctionne en JAVA comme dans n'importe quel autre langage à peu de choses près. Bref, si un bean bean1 hérite de bean2, toutes les méthodes définies dans une classe Bean2 (et non privées) sont utilisable sur un objet de type Bean1. Exemple :

class Bean2 {
private String str = "";
public Bean2() {
}
protected String getStr() {
return this.str;
}
protected void setStr(String str) {
this.str = str;
}
}

class Bean1 extends Bean2 {
private int entier= "";
public Bean1() {
}
protected int getEntier() {
return this.entier;
}
protected void setEntierStr(int entier) {
this.entier = entier;
}
}

Tu pourras faire :
Bean1 bean1 = new Bean1();
bean1.setStr("string");

alors que la méthode "setStr" est uniquement définie dans la classe Bean2

Si tu m'as suivi jusque là, c'est bon : tu étends simplement le concept à tes balises JSP (à la syntaxe près, évidemment) :
<jsp:useBean id="bean1" class="Bean1">
<jsp:setProperty name="bean1" property="str" value="string"/>
fonctionne très au même titre que :
<jsp:useBean id="bean2" class="Bean2">
<jsp:setProperty name="bean2" property="str" value="string"/>
0