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

  1. #1
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Points : 90
    Points
    90
    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
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 086
    Points : 7 997
    Points
    7 997
    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.

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 90
    Points
    90
    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 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 631
    Points
    21 631
    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.

  5. #5
    Membre chevronné
    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
    Points : 1 788
    Points
    1 788
    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 régulier
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Points : 90
    Points
    90
    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 régulier
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Points : 90
    Points
    90
    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 chevronné
    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
    Points : 1 788
    Points
    1 788
    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
    Points : 3 675
    Points
    3 675
    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