IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

débutant: class et méthode


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Par défaut [résolu]débutant: class et méthode
    bonjour,

    Je suis débutant en java et je ne comprends pas les lignes marquées( 1,2,3).

    Je créé un objet mt2 qui est du type class menu2,ligne 1.
    Mais pourquoi recreer la même chose à la ligne 2.
    Que représente la méthode menu2 à la ligne 3 ?
    Quand je veux donner 2 noms différents à la class menu2 et à la méthode menu2 cela ne fonctionne pas, pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    public class _4_exo_18_3_menu_bis {
    	
    	
    	public static void main(String[]args){
    		String[]chain1={"partir loin","rester au lit","se lever"};
    		String[]chain2={"rouge","vert","bleu","jaune","violet"};
    		String[]chain3={"canard","poule","pintade","oie","dinde","pleiad"};
    				
    		menu2[]mt2=new menu2[3];  ligne 1
    		
    		boolean saisieok;
    		try{
    			mt2[0]=new menu2("que voulez vous faire ? ",chain1); ligne 2
    			mt2[1]=new menu2("quelle est votre couleur preferee ?",chain2);
    			mt2[2]=new menu2("trouvez l'intrus ",chain3);
    			
    		}catch(npasbon ex){
    			
    		}
    		
    			do{
    				try{
    					saisieok=true;
    					mt2[0].executermenu();
    					mt2[1].executermenu();
    					mt2[2].executermenu();
    					
    				}catch(horsintervalle ex){
    					Terminal.ecrireString("vous devez entrer un des choix proposes");
    					saisieok=false;
    				}catch(pasnombre ex){
    					Terminal.ecrireStringln("vous devez entrer un nombre ");
    					saisieok=false;
    				}
    			}while( saisieok==false);
    		
    		
    		
    	
    	}	
    	
    	
    	
    
    }
    
    class pasnombre2 extends Exception{}
    class horsintervalle2 extends Exception{}
    
    class menu2{
    	String[]tabchoix2;
    	String question2;
    	
    	menu2(String q,String[]t)throws npasbon{   ligne 3	
    		tabchoix2=t;	ligne 4						
    		question2=q; 
    	}
    	void affiche(){
    		Terminal.sautDeLigne();
    		Terminal.sautDeLigne();
    		Terminal.ecrireStringln(question2);
    		Terminal.sautDeLigne();
    		for(int i=0;i<tabchoix2.length;i++){
    			Terminal.ecrireStringln(tabchoix2[i] + ": tapez " + (i+1));
    		}
    		Terminal.ecrireString("entrez votre choix: ");
    	}
    	
    	
    	
    	int saisir()throws pasnombre,horsintervalle{
    		
    		int rep=0;
    		
    		try{
    			rep=Terminal.lireInt();
    		}catch(TerminalException e){
    			Terminal.ecrireStringln("le nombre doit etre un entier");
    		}
    		
    		
    		if((rep==0)  || (rep >tabchoix2.length)){
    			throw new horsintervalle();
    		}
    		
    		return rep;
    	}
    	
    	
    	int executermenu()throws pasnombre,horsintervalle{
    		affiche();
    		return saisir();
    	}
    }
    Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Par défaut
    Pourquoi est ce qu'à la ligne 4 je dois prendre les arguments q et t et les mettre dans tabchoix et question ?

    Quand j'utilise directement q et t, cela me renvoie une erreur en lançant le programme mais pas à la compilation.

    Est ce parce que tabchoix et question sont définis en dehors de la méthode menu et pas q et t ?

  3. #3
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    menu2[]mt2=new menu2[3];  ligne 1
    c'est la declaration d'un tableau d'objet de type menu2 avec 3 cellule


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mt2[0]=new menu2("que voulez vous faire ? ",chain1); ligne 2
    ce n'est pas la meme chose, on a créé le tableau mais ilfaut le remplir maintenant. c'est ce que font ces 3lignes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    menu2(String q,String[]t)throws npasbon{   ligne 3
    c'est le constructeur de la classe menu2, quand tu fais un objet, tu le créé en passant par un constructeur,ici le constructeur requiere 2 parametres : String q et String[]t

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tabchoix2=t;	ligne 4	
    question2=q;
    en faisant cela on change le nom des variables et comme "tabchoix" et "question" sont déclarées pour la classe menu2, il serat possible de les réutiliser dans d'autres methodes de la classe menu2.



    PS: essai d'etre plus clair dans ce que tu veux la prochaine fois, c'est pas évident de te suivre

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Par défaut
    Merci, c'est plus clair maintenant. Je n'avais pas reconnu le constructeur.

    A la ligne 2:
    mt2[0]=new menu2("que voulez vous faire ? ",chain1);
    Je pensais que pour un tableau à 1 dimension, on ne pouvait mettre qu'une donnée par indice du tableau( mt2[0]=qqchose mt2[1]=autrechose etc...).

    Est la creation d'un constructeur avec plusieurs paramètres qui permet cela ?
    menu2(String q,String[]t)throws npasbon{

  5. #5
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    C'est le constructeur de la class menu2 qui doit etre un truc du ype :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public menu2( String q, String[] t= {
    //code de la class
     
    }

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Par défaut
    Merci,

    J'ai pu finir mon exo et le refaire sans problème.

Discussions similaires

  1. [débutant] Class et Méthodes
    Par abbd dans le forum C#
    Réponses: 5
    Dernier message: 24/02/2007, 19h15
  2. [Tableaux] [Débutant ) Classes
    Par Halobox dans le forum Langage
    Réponses: 5
    Dernier message: 12/01/2006, 15h50
  3. Débutante - Pb appel méthode static
    Par nmetais dans le forum Langage
    Réponses: 2
    Dernier message: 23/09/2005, 17h23
  4. Déclaration de classes et méthodes externes
    Par rulianf dans le forum C++
    Réponses: 6
    Dernier message: 15/09/2005, 15h26
  5. [Débutant]Classe d'Authentification : compilation impossible
    Par acyclique dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 23/08/2003, 19h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo