Programmation orienté objet :
Interface :
Description de contraintes imposées (pour l’essentiel) sous forme de signatures formelles de
méthodes :
- Résulte du processus de conception
- Analogie limitée avec les prototypes (langage C)
- Description via le mot clé interface
- Application via le mot clé implements
- Lien à la charge du programmeur
Règles de structuration :
- Fichier source avec définition complète de l’interface
- Une interface est un bloc ({---})
- Extension fichier source .java
- La compilation génère un fichier .class
- Règles d’accès et de visibilité identiques à celles des classes
- Règles syntaxiques identiques à celles des classes
Déclaration de linterface (dans un fichier java à part)
Implémentation de linterface dans une classe
public interface Figure {
public double perimetre ();
public double surface ();
}
public class Rectangle implements Figure {
public double perimetre () {}
public double surface () {}
}
Il s’agit dune partie du modèle formel des classes qui l’implémentent. Une interface spécifie
un protocole pour ses classes utilisatrices.
Le protocole est défini par la signature de l’ensemble des méthodes de l’interface et/ou
par un ensemble de constantes applicatives.
Une interface peut avoir des attributs de classe (qui nécessiteront la spécification final,
obligatoire pour des constantes) mais une interface ne peut pas avoir d’attribut d’instance.
Elle peut également avoir des méthodes de classes et/ou dinstances mais elles devront être
abstraites.
Il est impossible quelle possède des méthodes privés ou protégées, elle nest pas pour autant
forcément publique, elle peut être « amicale ».
Une interface ne permet pas dimplémenter une interface, elle est complétement abstraite.
Elle peut cependant sétendre à une autre interface, on obtient alors la réunion de méthode
abstraites héritées et des méthodes abstraites locales.
Toutes les méthodes sont à surcharger, on ne peut donc pas utiliser le spécificateur final pour
ses méthodes, ni pour elle-même puisquelle est obligatoirement implémentable.
Elle peut définir des interfaces internes :
Déclaration
Définition
Interface X { interface Y { voidf();} }
public classZ implements X.Y {
public void f() { }
}
Une interface ne possède pas de constructeurs et peut définir une classe interne à condition
dutiliser le spécificateur static.
Package :
Il sagit dune instruction à placer au début de chaque fichier définissant une classe du
package, suivie du nom du package :
- Permet à l’utilisateur de définir ses propres packages
- L’instruction définit l’identificateur du package cible
- A placer en tête des fichiers sources
- Propriétés identiques à celles des packages prédéfinis
Exemple : package exemp;
Production des fichiers .class dans le répertoire exemp dédié à ce package
Chemin d’accès au répertoire amont de exemp à décrire dans la variable
d’environnement CLASSPATH
Spécificateur :
public class nomClasse {}
class nomClasse {…}
Importation statique :
Possibilité d’éviter de préfixer systématiquement les appels des méthodes de classe par
l’identificateur de la classe support.
Exemple : import static java.lang.System.*;
Permet décrire « out.println » au lieu de « System.out.println »
Signature formelle extensible :
La signature formelle d’une méthode peut spécifier un nombre variable de paramètres.
Usage de la meta description (nommée ellipse)
Exemple :
public static float moyenne (int ... notes) {
float resultat= 0.0f;
for (int i=0; i < notes.length ; i++) resultat += notes[i];
return resultat / notes.length;
}
public static void main(String[] args) {
System.out.println ("M1= " + moyenne (12, 8, 13));
System.out.println ("M2= " + moyenne (12, 8, 13, 10, 17));
}
Enumération :
Un type énuméré est un type dont la valeur fait partie d’un jeu de constantes prédéfinies.
Description d’une liste de constantes par une instruction spécifique (enum)
Pas de conversion possible avec le type int.
enum Ressource {sel, orge, the, jade, or};
La classe est accessible partout
(même à lextérieur du package)
Pas de spécificateur, la classe n’est accessible que par les
autres classes du même package (et des sous packages)
Le ; est facultatif, il faut traiter lénumération
comme une classe, seule dans un fichier .java
Instruction prinft
Permet au programmeur de maîtriser la mise en
forme du flux de sortie (méthode de la classe
java.io.PrintStream).
Exemple : double x= 1./3;
System.out.printf(" %5.2f ", x);
Permet l’analyse lexicale (depuis un fichier par
exemple).
Il sagit du clavier
Ne pas oublier de fermer
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !