Prob en java
Fermé
jiha
-
13 juin 2008 à 17:20
choubaka Messages postés 39420 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 19 février 2025 - 16 juin 2008 à 07:48
choubaka Messages postés 39420 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 19 février 2025 - 16 juin 2008 à 07:48
A voir également:
- Prob en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java décompiler - Télécharger - Langages
14 réponses
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
13 juin 2008 à 17:24
13 juin 2008 à 17:24
Salut
ta question n'est pas très claire
tu peux développer ? quitte à mettre ton code
merci
ta question n'est pas très claire
tu peux développer ? quitte à mettre ton code
merci
slt,
j ai 1 probleme avec les vecteurs en java
j ai fait un prog ou 2 classes heritent d 1 seule j ai entrer fait les deux classes mais lorsque j veux afficher le vecteur
la premiere s affiche et la deuxieme non j sais pas koi faire
merci d avance
pr plus d infos voici mon prog
import java.io.*;
import java.util.*;
public class Principal {
static BufferedReader buf= new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) {
try
{
char reponse='n',choix='n';
PErsonne_physique p= new PErsonne_physique();
Personne_morale m=new Personne_morale();
Vector v= new Vector();
Client c= new Client();
Object o= new Object();
String st;
do
{
System.out.println("\t 1---> entrer un client physique ");
System.out.println("\t 2---> entrer un client morale ");
System.out.println("\t 3---> afficher les clients entres ");
choix=buf.readLine().charAt(0);
switch(choix)
{
case '1' : char repons= 'n';
do
{
p= new PErsonne_physique();
p.Saisir();
v.add(p);
System.out.println("voulez vous saisr un aitre client physique");
repons=buf.readLine().charAt(0);
}while(repons=='o'||repons=='O');
break;
case'2' : char repon= 'n';
do
{
m= new Personne_morale();
m.Saisir();
v.add(m);
System.out.println("voulez vous saisir un autre client morale?");
repon=buf.readLine().charAt(0);
}while(repon=='o'||repon=='O');
break;
case'3' : for ( Enumeration e=v.elements();e.hasMoreElements();)
{
o=e.nextElement();
p=(PErsonne_physique)o;
if(p.nomclasse.compareToIgnoreCase("personne physique")==0)
{ st=p.ToString();
System.out.println(st);}
else
{ m=(Personne_morale)o;
st=m.ToString();
System.out.println(st);}
}
break;
default :System.out.println("Cas non traite");
}
System.out.println("\tvoulez vous revoir le menu?");
reponse=buf.readLine().charAt(0);
}while(reponse=='o'||reponse=='O');
}catch(Exception e){System.out.println(e.getMessage());}
}
}
j ai 1 probleme avec les vecteurs en java
j ai fait un prog ou 2 classes heritent d 1 seule j ai entrer fait les deux classes mais lorsque j veux afficher le vecteur
la premiere s affiche et la deuxieme non j sais pas koi faire
merci d avance
pr plus d infos voici mon prog
import java.io.*;
import java.util.*;
public class Principal {
static BufferedReader buf= new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) {
try
{
char reponse='n',choix='n';
PErsonne_physique p= new PErsonne_physique();
Personne_morale m=new Personne_morale();
Vector v= new Vector();
Client c= new Client();
Object o= new Object();
String st;
do
{
System.out.println("\t 1---> entrer un client physique ");
System.out.println("\t 2---> entrer un client morale ");
System.out.println("\t 3---> afficher les clients entres ");
choix=buf.readLine().charAt(0);
switch(choix)
{
case '1' : char repons= 'n';
do
{
p= new PErsonne_physique();
p.Saisir();
v.add(p);
System.out.println("voulez vous saisr un aitre client physique");
repons=buf.readLine().charAt(0);
}while(repons=='o'||repons=='O');
break;
case'2' : char repon= 'n';
do
{
m= new Personne_morale();
m.Saisir();
v.add(m);
System.out.println("voulez vous saisir un autre client morale?");
repon=buf.readLine().charAt(0);
}while(repon=='o'||repon=='O');
break;
case'3' : for ( Enumeration e=v.elements();e.hasMoreElements();)
{
o=e.nextElement();
p=(PErsonne_physique)o;
if(p.nomclasse.compareToIgnoreCase("personne physique")==0)
{ st=p.ToString();
System.out.println(st);}
else
{ m=(Personne_morale)o;
st=m.ToString();
System.out.println(st);}
}
break;
default :System.out.println("Cas non traite");
}
System.out.println("\tvoulez vous revoir le menu?");
reponse=buf.readLine().charAt(0);
}while(reponse=='o'||reponse=='O');
}catch(Exception e){System.out.println(e.getMessage());}
}
}
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
13 juin 2008 à 17:32
13 juin 2008 à 17:32
Salut
tes classes héritent ou sont des instanciations ?
tes classes héritent ou sont des instanciations ?
1tsdi
Messages postés
4
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
14 juin 2008
14 juin 2008 à 00:16
14 juin 2008 à 00:16
slt
merci pour ton attention
les classes heritent
merci pour ton attention
les classes heritent
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
14 juin 2008 à 12:52
14 juin 2008 à 12:52
Salut
essaye de déclarer tes attributs comme attribut de classe
je veux dire les déclarer en dehors de ta méthode main.
ensuite, l'instanciation des ces objets attributs (dont fait partie le vector)peut être faite dans le constructeur de la classe;
ce n'est pas toujours très bon de tout faire dans la méthode main..
essaye de déclarer tes attributs comme attribut de classe
je veux dire les déclarer en dehors de ta méthode main.
ensuite, l'instanciation des ces objets attributs (dont fait partie le vector)peut être faite dans le constructeur de la classe;
ce n'est pas toujours très bon de tout faire dans la méthode main..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
1tsdi
Messages postés
4
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
14 juin 2008
14 juin 2008 à 14:49
14 juin 2008 à 14:49
slt
merci pour ta reponse mais lorsque j ai fait c que tu m as demande j n ai pu saisir qu une seul fois puis le programme s est bloque en affichant null
et encore merci
merci pour ta reponse mais lorsque j ai fait c que tu m as demande j n ai pu saisir qu une seul fois puis le programme s est bloque en affichant null
et encore merci
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
14 juin 2008 à 15:39
14 juin 2008 à 15:39
salut
il est clair que si tu veux travailler comme celà, la structure du programme doit être revue
ce qui s'est passé, à mon avis, c'est q'une seule classe à été instanciée
il est clair que si tu veux travailler comme celà, la structure du programme doit être revue
ce qui s'est passé, à mon avis, c'est q'une seule classe à été instanciée
1tsdi
Messages postés
4
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
14 juin 2008
14 juin 2008 à 15:49
14 juin 2008 à 15:49
slt
merci encore une fois
mais j ai instancie toute les classes
merci encore
merci encore une fois
mais j ai instancie toute les classes
merci encore
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
14 juin 2008 à 18:50
14 juin 2008 à 18:50
ok ..
peux tu m'expliquer brièvement ce que ton programme est sensé faire, svp ?
peux tu m'expliquer brièvement ce que ton programme est sensé faire, svp ?
slt
mon programme fait entrer des objets dans 1 vecteur et les lis
autrement dis il fait entrer et sortir des objets d un vecteur
sauf que les objets utilises sont ceux de 2 classes qui heritent d 1 seule
le probleme c est que lorsque j execute le programme la premiere calsse s affiche alors que la 2 eme bloque le prog en affichant le nom de la 2 eme classe
merci pour votre interret
mon programme fait entrer des objets dans 1 vecteur et les lis
autrement dis il fait entrer et sortir des objets d un vecteur
sauf que les objets utilises sont ceux de 2 classes qui heritent d 1 seule
le probleme c est que lorsque j execute le programme la premiere calsse s affiche alors que la 2 eme bloque le prog en affichant le nom de la 2 eme classe
merci pour votre interret
slt
je sais que mon probleme est trop banale mais
j sais pas comment faire pour le resoudre et j ai jamais travaille avec la metode que tu m avais propose ce qui fait j n sais pas ce que j dois changer pour qu il marche
j vais devenir dingue
merci pour ton attention
je sais que mon probleme est trop banale mais
j sais pas comment faire pour le resoudre et j ai jamais travaille avec la metode que tu m avais propose ce qui fait j n sais pas ce que j dois changer pour qu il marche
j vais devenir dingue
merci pour ton attention
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
15 juin 2008 à 20:57
15 juin 2008 à 20:57
ok
tes classes héritent d'une seule classe
mais as-tu modifié quelque choses à ces classes par rapport à la classe mère ?
tes classes héritent d'une seule classe
mais as-tu modifié quelque choses à ces classes par rapport à la classe mère ?
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
15 juin 2008 à 21:03
15 juin 2008 à 21:03
si je permettre un avis ...
le fait d'utiliser "do" en java n'est pas recommendé du tout
le fait d'utiliser "do" en java n'est pas recommendé du tout
slt
merci pour ton interret
j n sais pas ce que tu veux dire par si j ai chage quelque chose par rapport a la classe mere ni son rapport avec le vecteur
entout cas voisi le cod de la classe mere et des 2 classes filles
voici la classe mere
import java.io.*;
public class Client {
/********************Declaration general************************/
static BufferedReader buf= new BufferedReader(new InputStreamReader(System.in));
protected String nom;
protected String prenom;
protected int code;
/************************Constructeur********************************/
public Client()
{
nom="espoire";
prenom="espoire";
code=0;
}
public void Saisir()
{
try {
System.out.println("entrer le nom");
nom=buf.readLine();
System.out.println("entrer le prenom");
prenom=buf.readLine();
System.out.println("entrer le code");
code=Integer.parseInt(buf.readLine());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*****************************Afficher*************************/
public String ToString()
{
return("\n le nom est :"+nom+"\n le penom est :"+prenom+"\n le code est :"+code+"\n\t-----------------------------");
}
}
la 1 ere classe fille
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class PErsonne_physique extends Client{
/*************************Declaration globale*********************/
static BufferedReader buf= new BufferedReader(new InputStreamReader(System.in));
private String adresse;
private String tel;
public String nomclasse="Personne physique";
/**************************Constructeur******************/
public PErsonne_physique()
{ super();
adresse="nul";
tel="nul"; }
/**************************Saisir***********************/
public void Saisir()
{
super.Saisir();
try {
System.out.println("entrer l adresse ");
adresse=buf.readLine();
System.out.println("entrer le numero de telephone ");
tel=buf.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/********************************Afficher***************************/
public String ToString()
{
String st;
st=super.ToString();
return(st+"\nl adresse :"+adresse+"\n le numero de telephone est :"+tel+"\n\t...............");
}
}
voici la 2eme classe fille qui cree le prob
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Personne_morale extends Client{
/********Declaration Globale**************/
static BufferedReader buf= new BufferedReader(new InputStreamReader(System.in));
private String cin;
private String raison;
public String nomclasse="Personne morale";
/********************Constructeur**********************/
public Personne_morale()
{
super();
cin="nul";
raison="nul";
}
/*********************************Saisir************************/
public void Saisir()
{
super.Saisir();
try {
System.out.println("entrer le CIN ");
cin=buf.readLine();
System.out.println("entrer la raison sociale");
raison=buf.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*****************************Afficher**************************/
public String ToString()
{
String st;
st=super.ToString();
return(st+"\nle CIN :"+cin+"\n la raison sociale :"+raison+"\n\t°°°°°°°°°°°°°");
}
}
merci une autre fois
merci pour ton interret
j n sais pas ce que tu veux dire par si j ai chage quelque chose par rapport a la classe mere ni son rapport avec le vecteur
entout cas voisi le cod de la classe mere et des 2 classes filles
voici la classe mere
import java.io.*;
public class Client {
/********************Declaration general************************/
static BufferedReader buf= new BufferedReader(new InputStreamReader(System.in));
protected String nom;
protected String prenom;
protected int code;
/************************Constructeur********************************/
public Client()
{
nom="espoire";
prenom="espoire";
code=0;
}
public void Saisir()
{
try {
System.out.println("entrer le nom");
nom=buf.readLine();
System.out.println("entrer le prenom");
prenom=buf.readLine();
System.out.println("entrer le code");
code=Integer.parseInt(buf.readLine());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*****************************Afficher*************************/
public String ToString()
{
return("\n le nom est :"+nom+"\n le penom est :"+prenom+"\n le code est :"+code+"\n\t-----------------------------");
}
}
la 1 ere classe fille
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class PErsonne_physique extends Client{
/*************************Declaration globale*********************/
static BufferedReader buf= new BufferedReader(new InputStreamReader(System.in));
private String adresse;
private String tel;
public String nomclasse="Personne physique";
/**************************Constructeur******************/
public PErsonne_physique()
{ super();
adresse="nul";
tel="nul"; }
/**************************Saisir***********************/
public void Saisir()
{
super.Saisir();
try {
System.out.println("entrer l adresse ");
adresse=buf.readLine();
System.out.println("entrer le numero de telephone ");
tel=buf.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/********************************Afficher***************************/
public String ToString()
{
String st;
st=super.ToString();
return(st+"\nl adresse :"+adresse+"\n le numero de telephone est :"+tel+"\n\t...............");
}
}
voici la 2eme classe fille qui cree le prob
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Personne_morale extends Client{
/********Declaration Globale**************/
static BufferedReader buf= new BufferedReader(new InputStreamReader(System.in));
private String cin;
private String raison;
public String nomclasse="Personne morale";
/********************Constructeur**********************/
public Personne_morale()
{
super();
cin="nul";
raison="nul";
}
/*********************************Saisir************************/
public void Saisir()
{
super.Saisir();
try {
System.out.println("entrer le CIN ");
cin=buf.readLine();
System.out.println("entrer la raison sociale");
raison=buf.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*****************************Afficher**************************/
public String ToString()
{
String st;
st=super.ToString();
return(st+"\nle CIN :"+cin+"\n la raison sociale :"+raison+"\n\t°°°°°°°°°°°°°");
}
}
merci une autre fois
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
16 juin 2008 à 07:48
16 juin 2008 à 07:48
Bonjour ..
j'ai déjà ma réponse au niveau de la méthode Saisir, tu effectues bien un override au niveau des tes sous-classe.
Maintenant, j'ai remarqué dans ta classe Main que tu passais par un objet o pour "caster" les objets venant du vecteur.
ça peut poser des problèmes, en sachant qure tu n'es pas certain de ce que tu vas récuper. Je m'explique.
Tu vas récupérer un objet de type Client, ça c'est certain. Par contre es-tu certain que tu récupère un personne morale ou physique ??
Il existe une méthode de la classe Object qui te permet de tester si tu traites la bonne classe. C'est la méthode "equals"
public boolean equals(Object obj)
donc, je pense que dans ce bout de code
case'3' : for ( Enumeration e=v.elements();e.hasMoreElements();)
{
o=e.nextElement();
p=(PErsonne_physique)o;
if(p.nomclasse.compareToIgnoreCase("personne physique")==0)
{ st=p.ToString();
System.out.println(st);}
else
{ m=(Personne_morale)o;
st=m.ToString();
System.out.println(st);}
}
break;
default :System.out.println("Cas non traite");
}
tu devrait tester avant tout le type de classe qui ressort du vecteur avec la méthode equals.
Autre chose, pour entrer un objet dans ton vecteur, utlise la méthode du vecteur "addElement" plutot que "add".
http://java.sun.com/j2se/1.3/docs/api/java/util/Vector.html
tiens moi au courant.
j'ai déjà ma réponse au niveau de la méthode Saisir, tu effectues bien un override au niveau des tes sous-classe.
Maintenant, j'ai remarqué dans ta classe Main que tu passais par un objet o pour "caster" les objets venant du vecteur.
ça peut poser des problèmes, en sachant qure tu n'es pas certain de ce que tu vas récuper. Je m'explique.
Tu vas récupérer un objet de type Client, ça c'est certain. Par contre es-tu certain que tu récupère un personne morale ou physique ??
Il existe une méthode de la classe Object qui te permet de tester si tu traites la bonne classe. C'est la méthode "equals"
public boolean equals(Object obj)
donc, je pense que dans ce bout de code
case'3' : for ( Enumeration e=v.elements();e.hasMoreElements();)
{
o=e.nextElement();
p=(PErsonne_physique)o;
if(p.nomclasse.compareToIgnoreCase("personne physique")==0)
{ st=p.ToString();
System.out.println(st);}
else
{ m=(Personne_morale)o;
st=m.ToString();
System.out.println(st);}
}
break;
default :System.out.println("Cas non traite");
}
tu devrait tester avant tout le type de classe qui ressort du vecteur avec la méthode equals.
Autre chose, pour entrer un objet dans ton vecteur, utlise la méthode du vecteur "addElement" plutot que "add".
http://java.sun.com/j2se/1.3/docs/api/java/util/Vector.html
tiens moi au courant.