public static Client LireClient() throws IOException{
System.out.print("Nom :");
Scanner a= new Scanner(System.in);
String n = a.nextLine();
System.out.print("Prénom :");
Scanner b= new Scanner(System.in);
String p = b.nextLine();
System.out.print("Adresse :");
Scanner c= new Scanner(System.in);
String ad = c.nextLine();
System.out.print("Carte d'Identité :");
Scanner d= new Scanner(System.in);
String ca = d.nextLine();
System.out.print("Numéro de téléphone :");
long t=StdInput.readlnLong();
System.out.println("Vous etes le client : "+n+" "+p+" habitant le "+ad+" carte :"+ca+" téléphone :"+t);
return new Client(n,p,ca,ad,t);
}
public static Directeur LireDirecteur() throws IOException{
System.out.print("Nom :");
Scanner a= new Scanner(System.in);
String n = a.nextLine();
System.out.print("Prénom :");
Scanner b= new Scanner(System.in);
String p = b.nextLine();
System.out.print("Adresse :");
Scanner c= new Scanner(System.in);
String ad = c.nextLine();
System.out.print("Carte d'Identité :");
Scanner d= new Scanner(System.in);
String ca = d.nextLine();
System.out.print("Numéro de téléphone :");
long t=StdInput.readlnLong();
System.out.println("Vous etes le Directeur : "+n+" "+p+" habitant le "+ad+" carte :"+ca+" téléphone :"+t);
return new Directeur(n,p,ca,ad,t);
}
public static Personne LirePersonne() throws IOException{
System.out.print("Nom :");
Scanner a= new Scanner(System.in);
String n = a.nextLine();
System.out.print("Prénom :");
Scanner b= new Scanner(System.in);
String p = b.nextLine();
System.out.print("Adresse :");
Scanner c= new Scanner(System.in);
String ad = c.nextLine();
System.out.print("Carte d'Identité :");
Scanner d= new Scanner(System.in);
String ca = d.nextLine();
System.out.print("Numéro de téléphone :");
long t=StdInput.readlnLong();
System.out.println("Vous etes la personne : "+n+" "+p+" habitant le "+ad+" carte :"+ca+" téléphone :"+t);
return new Personne(n,p,ca,ad,t);
}
public static void main(String[] args) throws IOException{
Personne p = LirePersonne();
System.out.print("Numéro de téléphone");
long tel=StdInput.readlnLong();
Lorsque je crée seulement une nouvelle personne p, ça marche bien, mais quand je rajoute l'instruction pour créer un Directeur et plusieurs Clients, je reçois le message d'erreur suivant :
TesteBanque.java:31: cannot find symbol
symbol : constructor Client(java.lang.String,java.lang.String,java.lang.String,java.lang.String,long)
location : class Client
return new Client(n,p,ca,ad,t);
et le meme message d'erreur pour Directeur.
Les classes Directeur et Client héritent de Personne et redéfinissent son constructeur. Voilà les constructeurs :
public Personne(String n, String p, String a, String c, long t) throws IOException{
Lorsque tu fais un super dans une classe fille, la classe mère doit avoir le constructeur avec les même types. Or tu as Personne(String n, String p, String a, String c, long t) et tu utilises Client(String m, String n, String o, String p, int port) idem pour Directeur.
Change ton long en int, ou tes int en long pour que les constructeurs coïncident.
Remarque : System.in est unique, donc il est inutile de créer plusieurs objets Scanner sur System.in, tu peux directement faire un Scanner clavier = new Scanner(System.in), et ensuite faire tout tes nextLine avec clavier.nextLine().
Attention : après avoir fait clavier.nextInt() ou clavier.nextLong(), tu dois appeller un clavier.nextLine() pour vider les caractères '\r' et '\n' de fin de ligne.
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.