expression

expression 
      ::= 
      numeric_expression 
      | testing_expression 
      | logical_expression 
      | string_expression 
      | bit_expression 
      | casting_expression 
      | creating_expression 
      | literal_expression 
      | "null" 
      | "super" 
      | "this" 
      | identifier 
      | ( "(" expression ")" ) 
      | ( expression 
      ( ( "(" [ arglist ] ")" ) 
      | ( "[" expression "]" ) 
      | ( "." expression ) 
      | ( "," expression ) 
      | ( "instanceof" ( class_name | interface_name ) ) 
      ) ) 

[rule list]
This rule is called by

-> arglist -> bit_expression -> casting_expression -> creating_expression -> do_statement -> expression -> for_statement -> if_statement -> logical_expression -> numeric_expression -> statement -> string_expression -> switch_statement -> testing_expression -> variable_initializer -> while_statement

Explications

Lorsque l'on parle d'expression, on parle d'une variable ou d'une opération qui retourne un résultat. Il peut s'agir d'un appel à une méthode (fonction), ou d'une opération mathématique. Il peut être nécessaire d'utiliser le parenthésage en fonction des opérations à effectuer.

Les parenthèses servent également à donner les paramètres d'une méthode. Remarquons que si la méthode ne nécessite pas de paramètres, les parenthèses ne peuvent pas être omises.

Les crochets carrés servent à délimiter l'indice du tableau, et à en choisir ainsi l'élément pertinent. Par exemple, le troisième élément du tableau tab sera tab[2] ou encode tab[1+2*1].

Pour des informations concernant l'utilisation de la virgule, veuillez consulter la documentation sur la boucle for

Les identificateurs spéciaux null, super et this sont présents dans toutes les classes. Voici leur signification :

null
Lorsqu'un objet ne fait référence à aucune instance d'une classe, il vaut null. Cela signifie qu'à la déclaration d'un objet, avant d'appeler le constructeur, l'objet vaut null.
null peut être utilisé en lieu et place de n'importe quel objet. On peut par exemple faire appel à une méthode en fournissant null comme paramètre, même si le type de celui-ci est formeCarre.
super
super permet de faire référence à l'objet dont est dérivé l'objet courant. On l'utilise souvent pour faire appel au constructeur de la classe parente.
this
Cet identificateur désigne l'instance de l'objet dans lequel il est utilisé. L'exemple donné en fin de page montre une utilisation de this et la page expliquant la visibilité des variables donnera d'autres informations à ce sujet.
instanceof
instanceof permet de tester l'appartenance d'un objet à une classe, ou s'il est conforme à une interface. L'exemple ci-dessous montre qu'il est possible de traiter de manières différentes toutes sortes d'objets à partir d'une seule procédure générique.

Exemple

class formeCarre {
    float largeur;
    float longueur;

    public formeCarre(float largeur,float longueur) {
        this.largeur = largeur;
        this.longueur = longueur;
    }
}

class formeCercle {
    float rayon;
    
    public formeCercle(float rayon) {
        this.rayon = rayon;
    }
}

class exInstanceof {

    public static float surface(Object forme) {
        if (forme instanceof formeCarre)
            return ((formeCarre)forme).largeur*((formeCarre)forme).longueur;
        else if (forme instanceof formeCercle)
            return (float)(Math.pow(((formeCercle)forme).rayon,2d)*Math.PI);
        return 0;
    }

    public static void main(String args[]) {
        formeCarre carre = new formeCarre(20f,20f);
        formeCercle cercle = new formeCercle(20f);

        System.out.println("la surface de l'objet "+carre+" vaut "+surface(carre));
        System.out.println("la surface de l'objet "+cercle+" vaut "+surface(cercle));
    }

}

Exécution

la surface de l'objet formeCarre@5e300848 vaut 400
la surface de l'objet formeCercle@5e300860 vaut 1256.64

Index général - Index concepts - Règles BNF
© 1996, DIP Genève, Alexandre Maret & Jacques Guyot
page générée Fri Jun 21 15:40:53 MET DST 1996