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

avec Java Discussion :

Premiers pas en JAVA et déjà une logique qui m'échappe.


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Par défaut Premiers pas en JAVA et déjà une logique qui m'échappe.
    Ola,

    Je débute en JAVA et la logique du code ci-dessous, inspiré d'un tutoriel sur développez, m'échappe franchement :

    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
    public class BulletinAppreciation {
     
    	public char Transformer (int UneNote) {
     
    		if (UneNote >= 18) {
    			return 'P';
    		} else if (UneNote >= 16) {
    			return 'G';
    		} else if (UneNote >= 14) {
    			return 'D';
    		} else if (UneNote >= 12) {
    			return 'S';
    		} else {
    			return 'E';
    		}
    	}
     
    	public static void main(String[] args) {
     
    		BulletinAppreciation Appreciation = new BulletinAppreciation();
    		char Niveau = Appreciation.Transformer(12);
    		switch (Niveau) {
    			case 'P' : 
    				System.out.println("La plus grande distinction !");
    				break;
    			case 'G' : 
    				System.out.println("Grande distinction.");
    				break;
    			case 'D' : 
    				System.out.println("Distinction.");
    				break;
    			case 'S' : 
    				System.out.println("Satisfaction.");
    				break;
    			case 'E' : 
    				System.out.println("Echec.");
    				break;
    		}
    	}
    }
    Avec la configuration des parenthèses, je n'arrive pas à comprendre comment la classe BulletinAppreciation peut inclure une procédure main générant elle-même une instance (Appreciation) de cette même classe .

    Qui peut m'expliquer la logique de ce code ?

    Merci

    JJE

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Je ne sais pas si je t'ai bien suivi mais c'est tout a fait normal que ta classe ait un main.

    Il faut au moins qu'une classe dans ton projet contienne un main, tu ne saurais pas faire autrement (Il faut bien un "point d'entrée" qlq part et donc pourquoi pas dans ta classe bulletin ou autre).

    Par contre rien ne t'interdirais de faire une classe nommée Main avec le main dedans qui instancie un objet bulletin.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Par défaut
    Salut,

    La methode main est static ce qui veut dire qu'elle n'a pas besoin que sa classe soit instancié pour etre utilisable.

    Ensuite la JRE cherche une methode main pour lancer le programme. C'est la premiere chose qui sera executé.

    Je ne sais pas si j'ai pu aider...

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    La méthode public static void main(String[]) est une convention en Java. J'explique : pour démarrer un programme Java, on doit indiquer quelle classe est son point d'entrée. N'importe quelle classe peut servir de point d'entrée, à condition d'avoir une méthode public static void main(String[]). C'est cette méthode qui est appelée au démarrage du programme.

    Bref, cette classe a une méthode main(), pour pouvoir servir de point d'entrée.

    Cette méthode est statique, elle n'a donc pas besoin d'une instance de la classe pour être appelée. Il est donc logique, que pour commencer à travailler, elle commence par construire une instance de la classe. Ce qui lui permet alors d'appeler ses méthodes non-statiques.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Je crois que sont problème n'est pas au niveau de la méthode main, mais plustot au niveau du fait que la classe BulletinAppreciation s'instancie elle même. Ce qui est normal ,Jean-Jacques Engels, BulletinAppreciation étant une classe, elle peut donc être instanciée n'importe ou et par n'importe qui, y compris elle même.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Par défaut
    Citation Envoyé par sovo Voir le message
    étant une classe, elle peut donc être instanciée n'importe ou et par n'importe qui, y compris elle même
    Sovo a bien compris mon problème. Un classe qui peut être instanciée par elle-même, voilà donc quelque chose de nouveau pour moi qui débarque de l'environnement Delphi. Bon, ben on s'y fera !

    Merci à tous.



    JJE

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Par défaut
    Ola,

    Je reviens juste une minute vers vous pour vous dire que j'ai modifié les sources pour qu'elles apparaissent un peu plus "normales" :

    J'ai créé une nouvelle classe Bulletin, dans un .java séparé, et j'y ai déplacé la procédure main. De cette manière, la procédure main n'apparait plus comme quelque chose qui fait partie intégrante de la classe BulletinAppreciation. Cela paraît plus propre à mes yeux.

    Bon, on passe à la suite. Beaucoup de chemin à parcourir encore avant que je ne maîtrise la bête comme je le faisais avec Delphi .



    JJE

  8. #8
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Citation Envoyé par Jean-Jacques Engels Voir le message
    Beaucoup de chemin à parcourir encore avant que je ne maîtrise la bête comme je le faisais avec Delphi .
    mais avec beaucoup de pratique tu veras ca ira mieux et vite (vu que tu faisais deja le delphi)

  9. #9
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par Jean-Jacques Engels Voir le message
    Un classe qui peut être instanciée par elle-même, voilà donc quelque chose de nouveau pour moi qui débarque de l'environnement Delphi
    hum ma période delphi est déjà loin derrière moi, mais je ne me souviens d'aucune contrainte à ce niveau... genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure TForm1.Button1Click(Sender:TObject);
    var f:TForm1;
    begin
        f:=TForm1.Create();
        ...
    end;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Premiers pas avec Java 8 et les expressions lambas.
    Par LGnord dans le forum Langage
    Réponses: 3
    Dernier message: 01/12/2014, 13h56
  2. configuration path / premiers pas en java
    Par exoprod dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 02/04/2010, 10h41
  3. Premiers pas en Java
    Par Jiyuu dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 17/03/2008, 19h21
  4. [MySQL] Variable globale: une notion qui m'échappe
    Par Prosis dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 28/09/2007, 16h13
  5. premier pas avec java
    Par single dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 05/08/2007, 09h41

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