Petit programme en JAVA
amir121
Messages postés
3
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
slt,
SVP, aidez-moi à exécuter cet programme :)
.................................................................................................................
package date1;
public class Main {
public class Date
{
private int jj,mm,aaaa;
private Date(int jj,int mm,int aaaa)
{
this.jj=jj;
this.mm=mm;
this.aaaa=aaaa;
}
}
void nbr_jrs(Date t)
{
int m=t.mm;
switch(m)
{
case 1:System.out.println("nbr_jrs = 31");break;
case 2:System.out.println("nbr_jrs = 28");break;
case 3:System.out.println("nbr_jrs = 31");break;
case 4:System.out.println("nbr_jrs = 30");break;
case 5:System.out.println("nbr_jrs = 31");break;
case 6:System.out.println("nbr_jrs = 30");break;
case 7:System.out.println("nbr_jrs = 31");break;
case 8:System.out.println("nbr_jrs = 31");break;
case 9:System.out.println("nbr_jrs = 30");break;
case 10:System.out.println("nbr_jrs = 31");break;
case 11:System.out.println("nbr_jrs = 30");break;
case 12:System.out.println("nbr_jrs = 31");break;
}
}
int date_v(Date t)
{
int j=t.jj,m=t.mm,a=t.aaaa;
if(j<1 || j>31)
return 0;
else if(m<1 || m>12)
return 0;
else if(a<1)
return 0;
else
return 1;
}
void date_d(Date t)
{
int j=t.jj,m=t.mm,a=t.aaaa;
if(j==31 || j==30 || j==28)
{
j=1;
m++;
}
if(m>=12)
{
m=1;
a++;
}
System.out.println("Demain est: "+j+"/"+m+"/"+a);
}
public class Test_Date
{
public void main(String[] args)
{
Date t = null;
t.jj=Integer.parseInt(args[0]);
t.mm=Integer.parseInt(args[1]);
t.aaaa=Integer.parseInt(args[2]);
System.out.println("La Date: "+t.jj+"/"+t.mm+"/"+t.aaaa);
int k=date_v(t);
if(k==1)
{
nbr_jrs(t);
date_d(t);
}
else
System.out.println("ERREUR!!");
}
}
}
.................................................................................................................
run:
java.lang.NoSuchMethodError: main
Exception in thread "main" Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
!!!!!!!
Qu'est ce que je vais faire ? :)
Aidez-moi svp
SVP, aidez-moi à exécuter cet programme :)
.................................................................................................................
package date1;
public class Main {
public class Date
{
private int jj,mm,aaaa;
private Date(int jj,int mm,int aaaa)
{
this.jj=jj;
this.mm=mm;
this.aaaa=aaaa;
}
}
void nbr_jrs(Date t)
{
int m=t.mm;
switch(m)
{
case 1:System.out.println("nbr_jrs = 31");break;
case 2:System.out.println("nbr_jrs = 28");break;
case 3:System.out.println("nbr_jrs = 31");break;
case 4:System.out.println("nbr_jrs = 30");break;
case 5:System.out.println("nbr_jrs = 31");break;
case 6:System.out.println("nbr_jrs = 30");break;
case 7:System.out.println("nbr_jrs = 31");break;
case 8:System.out.println("nbr_jrs = 31");break;
case 9:System.out.println("nbr_jrs = 30");break;
case 10:System.out.println("nbr_jrs = 31");break;
case 11:System.out.println("nbr_jrs = 30");break;
case 12:System.out.println("nbr_jrs = 31");break;
}
}
int date_v(Date t)
{
int j=t.jj,m=t.mm,a=t.aaaa;
if(j<1 || j>31)
return 0;
else if(m<1 || m>12)
return 0;
else if(a<1)
return 0;
else
return 1;
}
void date_d(Date t)
{
int j=t.jj,m=t.mm,a=t.aaaa;
if(j==31 || j==30 || j==28)
{
j=1;
m++;
}
if(m>=12)
{
m=1;
a++;
}
System.out.println("Demain est: "+j+"/"+m+"/"+a);
}
public class Test_Date
{
public void main(String[] args)
{
Date t = null;
t.jj=Integer.parseInt(args[0]);
t.mm=Integer.parseInt(args[1]);
t.aaaa=Integer.parseInt(args[2]);
System.out.println("La Date: "+t.jj+"/"+t.mm+"/"+t.aaaa);
int k=date_v(t);
if(k==1)
{
nbr_jrs(t);
date_d(t);
}
else
System.out.println("ERREUR!!");
}
}
}
.................................................................................................................
run:
java.lang.NoSuchMethodError: main
Exception in thread "main" Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
!!!!!!!
Qu'est ce que je vais faire ? :)
Aidez-moi svp
A voir également:
- Petit programme en JAVA
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
1 réponse
Tu ne peux avoir qu'une classe publique par fichier (qui doit porter le nom de cette classe).
De plus tu ne peux pas les imbriquer. Donc enlève public class Main { et garde seulement public class Date { .
Remarque il te faudra supprimer l'accolade fermante après ton constructeur Date.
Ensuite soit tu places ta classe Test_Date dans un autre fichier soit (et c'est plus logique), tu mets ta méthode main dans la classe Test.
Remarque, elle doit être static pour pouvoir être appellée à l'éxecution.
Ensuite dans ta classe main, tu ne devrais pas utiliser les méthodes privées. En particulier passe ton constructeur public, et utilise le pour initialiser ton objet t, car t=null n'est pas une initialisation. Et puis sinon ça ne sert à rien de définir un constructeur !!!
Et enfin, une méthode ne s'appelle pas en passant l'objet en paramètre mais en mettant un point entre l'objet et la méthode. Par exemple int k=t.date_v() plutôt que int k=date_v(t)
Si vraiment tes méthodes ne s'appliquent à aucun objet (ce qui ne devrait pas être le cas ici) il faudrait que ces méthodes soient static ! De plus le t passé en paramètre (dans ta version) ne pourra pas être modifié seul l'objet peut être modifié !
Bref, lis et relis autant que nécessaire les concepts d'objets, de méthodes, et de classes en conception objet en général, et en Java en particulier. Porte en particulier attention aux différents mots-clé private, protected, private et "friendly"...
De plus tu ne peux pas les imbriquer. Donc enlève public class Main { et garde seulement public class Date { .
Remarque il te faudra supprimer l'accolade fermante après ton constructeur Date.
Ensuite soit tu places ta classe Test_Date dans un autre fichier soit (et c'est plus logique), tu mets ta méthode main dans la classe Test.
Remarque, elle doit être static pour pouvoir être appellée à l'éxecution.
Ensuite dans ta classe main, tu ne devrais pas utiliser les méthodes privées. En particulier passe ton constructeur public, et utilise le pour initialiser ton objet t, car t=null n'est pas une initialisation. Et puis sinon ça ne sert à rien de définir un constructeur !!!
Et enfin, une méthode ne s'appelle pas en passant l'objet en paramètre mais en mettant un point entre l'objet et la méthode. Par exemple int k=t.date_v() plutôt que int k=date_v(t)
Si vraiment tes méthodes ne s'appliquent à aucun objet (ce qui ne devrait pas être le cas ici) il faudrait que ces méthodes soient static ! De plus le t passé en paramètre (dans ta version) ne pourra pas être modifié seul l'objet peut être modifié !
Bref, lis et relis autant que nécessaire les concepts d'objets, de méthodes, et de classes en conception objet en général, et en Java en particulier. Porte en particulier attention aux différents mots-clé private, protected, private et "friendly"...