Vous êtes sur la page 1sur 11

1 donnez les diffrences entre surcharge et redfinition de fonction

Une mthode dune sous-classe peut porter le mme nom et avoir la


mme signature que celle de la superclasse on dit que lon redfini la
mthode La mthode de la super classe est encore accessible mais en la
prfixant du mot super, mais contrairement la surcharge la signature
doit tre la mme
La surcharge est aussi possible, mais alors elle ne masque pas la mthode
de la super classe
En redfinissant une mthode il est possible dtedre sa zone de visibilit
mais pas la restreindre
Une classe peut interdire quune sous classe redfinisse une mthode en
lui appliquant le modificateur final
affiche : on va redfinir la mthode affiche de la classe de base ou super
classe, et dans cette nouvelle mthode on fera appel la mthode affiche
de la classe de base en utilisant lidentificateur super super.affiche()
La surcharge (polymorphisme statique) consiste proposer
diffrentes signatures de la
mme
mthode
La redfinition (polymorphisme dynamique) ne se produit que dans
l'hritage d'une classe par redfinition de la mthode mre avec une
mthode fille (ayant ou n'ayant pas la mme signature).
2 quand emploie -t on le modificateur static
On emploie le modificateur satic lorsque lon souhaite utiliser une
variable ou une mthode n importe quel endroit dun programme java,un
objet dclar comme static n aura sa mmoire alloue quune seule fois et
son utilisation pourra tre inter-classe ,une variable dinstance d une
classe dclare en static deviendra une variable de classe et pourra par
exemple tre utilise comme compteur d objets apartenant cette
classe ,il suffit d incrementer le compteur dans le constructeur dobjet de
cette classe,et chaque nouvel objet cre le compteur sera incrment .
Une mthode dclare en static pourra tre utilise via uniquement son
nom et ne devra pas tre rfrence par un objet .
Un programme java contient obligatoirement au minimum une mthode
static qui est la mthode main ,elle sera excute en premier lors du
lacement de l application
Les mthodes appeles depuis une mthode static doivent tre static sauf
si elles sont rfrences par un objet
Exemple d utilisation : les methodes de la classe Math
Ex dans Equation on utilise Math.sqrt(delta) ;

3 quand emploie -t on le modificateur abstract


Le mot cl abstract est utilis pour reprsenter une classe ou une
mthode abstraite, qui sont en fait des modes permettant de dfinir
ultrieurement des actions spcifiques
Une mthode dclare abstract dans une classe mre
Na pas de corps de mthode
Nest pas excutable
Doit obligatoirement tre redfinie dans un classe fille
Une mthode abstraite nest quune signature de mthode sans
implmentation dans la classe
Une classe qui possde au moins une mthode abstraite est abstraite et
doit tre dclare avec le modificateur abstract
Les classes abstraites ne permettent pas dinstancier des objets
Pour crer des objets il faut ncessairement crer une sous classe dans
laquelle les mthodes seront dfinies
Si une mthode abstract nest pas redfinie dans une sous classe celle ci
doit tre dfinie abstract
Une classe ne comportant pas de mthodes abstraites peut tre dclare
abstract
Consquence du paragraphe prcdent, une classe drive qui redfinit
toutes les mthodes abstract de la classe mre sauf une (ou plus d'une)
ne peut pas tre instancie et subit la mme rgle que la classe mre :
elle contient au moins une mthode abstraite donc elle aussi une classe
abstraite et doit donc tre dclare en abstract.
Quand des classes possdent des caracttistiques communes et dautres
diffrentes il est commode de crer une superclasse possdant des
mthodes c
oncrtes pour les comportements communs et des mthodes abstraites
pour les comportements diffrents
4 expliquez la diffrence entre la composition et lhritage

5 expliquez la diffrence entre les trois modificateurs public, protected et


priv

Public

Private

Protecte
d

Package

Toutes les attributs ou mthodes d'une classe dfinies avec le


mot cl public sont utilisables par tous les objets. Il s'agit du
niveau le plus bas de protection. Ce type de protection est
employ pour indiquer que vous pouvez utiliser sans contrainte
les attributs et mthodes d'une classe.

Tous les membres d'une classe dfinis avec le mot cl private


sont utilisables uniquement par les mthodes de la classe. Cette
tiquette de protection constitue le niveau le plus fort de
protection. Sachez que les variables appartenant une classe
sont gnralement dclares comme prives.
Tous les membres d'une classe dfinis avec le mot cl protected
sont utilisables uniquement par les mthodes de la classe, par
les mthodes des classes drives et par les mthodes des
classes appartenant au mme package. Cette technique de
protection est fortement associe la notion d'hritage (voir
ultrieurement).

Comme indiqu plus haut, le niveau de protection package est


employ quand aucune des trois tiquettes prcdentes n'a t
spcifie. Les packages (ou paquets) permettent de regrouper
des classes Java. Cela signifie dans ce cas que tous les membres
d'une classe dfinis avec ce niveau de protection peuvent tre
utiliss par les autres classes du mme package.

6 quest ce quun constructeur et quand intervient il ?

Les constructeurs sont des mthodes spciales qui crent et initialisent


des nouvelles instance de classes .ils initialisent le nouvel objet et ses
variables
Un constructeur est une mthode appele par loprateur new ,a chaque
appel ,une nouvelle instance dune classe est cre et de la mmoire est
alloue pour celle-ci.
Une classe peut avoir plusieurs constructeurs diffrent par leur
signature(type et nombre d arguments)
Un objet qui n est plus rfrenc ne ncessite pas de destructeur mais
sera detruit automatiquement par un programme spciale appel
garbage collector et la mmoire occupe sera libre
Un constructeur doit porter obligatoirement le mme nom que sa classe et
ne necessite pas qu on lui atribue un type de retour (pas de void ,int
etc)
Format constructeur :

public nomdeclasse objet(int a,float b)


{ varinstance = a
varinstance2=b
}

appel du constructeur :

nomdeclasse nouvelobjet ;
nouvelobjet = new nomdeclasse() ;
ou
nomdeclasse nouvelobjet = new

nomdeclasse() ;
Par dfaut un classe contient un constructeur sans argument qui initialise
0 les attribut et null les rfrences (dfini dans java.lang)
Constructeur de sous classe (concerne lhritage)

crons la classe Cadre


Pour pouvoir utiliser un constructeur dans une sous classe (classe fille) , il
faut obligatoirement le redfinir dans cette sous classe car pour construire
u objet il faut connatre tous ces champs
Quand on dfinit un constructeur dans une sous classe il est souvent
commode de faire appel aux constructeurs de la super classe que lon
invoque par le mot cl super suivi des arguments entre ()
Linvocation du constructeur de la super classe se fait obligatoirement
dans la premire instruction de la mthode (mme rgle que pour le this())
Le constructeur de la classe drive doit prendre en charge lintgralit de
la construction des champs
Si on invoque pas explicitement un constructeur de la super classe le
compilteur fait automatiquement appel au constructeur vide
Il est donc prudent de dfinir automatiquement un constructeur vide dans
chaque classe
7 quappelle t-on variable et fonction de classe

8 que signifie le mot cl this


this() : constructeur faisant appel un constructeur dj dfinis avec
une signature et un nom identique
exemple :
public Date()
{
this(1,1,2003)

lorsque obj.date() sera appel un date sera cre au


1/1/2003,le constructeur paramtr sera appel avec les arguments du this

public Date (int j,int m,int a)


{
jour=j ;
mois=m ;
annee=a ;
}
Le mot cl this utilis sans parethse permet de distinguer une variable
locale dune mthode(dun paramtre) dune variable dinstance
(atribut) lorsqu elles portent le mme nom
Ex :
public Date (int j,int m,int a)
{
this.j=j ;
this.m=m ;
this.a=a ;
}
9 quel est la particularit des tableaux en Java
10 quest ce quun interface
11 quels sont les trois grands principes de la programmation objet
En rsum : Les trois grands prinipes de la programmation objet
ENCAPSULTION
HERITAGE
POLYMORPHISME

12 expliquez le principe dencapsulation


Lencapsulation des donnes est le premier et le plus important des
concepts de la programmation objet, ils stipulent que les donnes et les
fonctions qui oprent sur elles sont encapsules dans des objets
Les seules fonctions pouvoir modifier les donnes dun objet
appartiennent celui ci
Depuis lextrieur dun objet on ne peut accder aux donnes que par des
fonctions de cet objet
Les objets forment une boite noire dont on connat que les fonctions
La plupart des utilisateurs dune voiture ne connaissent pas les
composants de celles ci, mais connaissent les fonctions pour dmarrer,
avancer sarrter
Un objet rassemble en lui mme ses donnes (attributs) et le code capable
dagir sur celles ci (les mthodes)
La structure dun objet nest pas visible de lextrieur, linterface de lobjet
est constitu de mthodes dont lexcution agira sur les attributs
Linterface constitue la partie publique de lobjet
Tout ce qui concerne limplmentation dun objet doit rester cach
lutilisitateur , cest la partie prive de lobjet, de cette manire une
modification de la structure de donnes internes ne modifiera en rien le
code utilisateur
Ex : soit une classe modlisant un point deux dimensions pour laquelle
on fournit deux mthodes renvoyant labscisse et lordonne du point. Peu
importe lutilisateur de savoir que le point est stock sous forme
cartsienne ou sous forme de reprsentation polaire
Rcapitulatif
Lencapsulation :
consiste masquer les dtails dimplmentation dun objet en dfinissant
une interface qui est une vue externe dun objet etqui dfinit les services
accessibles aux utilisateurs
Elle facilite lvolution dune application car on peut modifier
limplmentation des attributs dun objet sans modifier son interface
Elle garantit lintgrit des donne car elle peut interdir laccs direct aux
attributs des donnes
13 expliquez le principe de lhritage

Le principe de lhritage est bas sur lide quun objet spcialis bnfice
des caractristiques de lobjet le plus gnral auquel il rajoute ses
lments propres
La classe associe au concept le plus gnral est appele Classe de base ,
classe mre ou super-classe
Pour chaque concept spcialis, on drive une classe du concept de base
La nouvelle classe est dite classe drive, classe fille ou sous-classe
On traduit la relation dhritage par la phrase :
La classe drive est une version spcialise de sa classe de base
lhritage est une notion fondamentale cest mcanisme qui permet
une classe dhriter des comportements et des attributs dune
autre classe, on dit que la classe ltend
Une sous classe possde tous les champs et toutes les mthodes de
sa super classe lexception des membres privs. La nouvelle
classe est cre en indiquant uniquement les nouveaux attributs et
nouveaux comportements
La classe de base est une super-classe et la classe qui hrite est
une sous classe
Une classe ne peut avoir quune seule super-classe( pas dhritage
multiple) mais une classe peut avoir un nombre illimit de sous
classes
L'hritage est une des notions importantes de la conception et de la
programmation oriente objet. C'est un des facteurs qui permettent
la rutilisation du code.
L'hritage est une relation entre classes dfinie par le mot-cl
extends.
14 expliquez le polymorphisme

Rsum pratique sur le polymorphisme en Java


La surcharge (polymorphisme statique) consiste proposer
diffrentes signatures de la mme mthode.
La redfinition (polymorphisme dynamique) ne se produit que dans
l'hritage d'une classe par redfinition de la mthode mre avec une
mthode fille (ayant ou n'ayant pas la mme signature).
15 On souhaite disposer dune hirarchie de classes permettant de
manipuler des figures gomtriques , on veut quil soit toujours possible
dtendre la hirarchie en drivant de nouvelles classes Ces classes
comprendront toujours les mthodes suivantes void affiche(), void
deplace( int x, int y) et void rotation(double angle)
crire la classe Figure qui servira de classe de base

16 On dispose de la classe Point suivante


class Point
{
private int x,y ;
public Point(int x, int y)
{
this.x=x ;
this.y=y ;
}
public void affiche()
{
System.out.println(x+y) ;
}
}
ralisez une classe PointNonm drive de Point permettant de manipuler
des points dfinis par un nom et les coordonnes x et y
class PointNom extends Point
{ private String nom ;
public PointNom(String n,int x,int y)
{ super(x,y) ;
nom=n ;
}
}
17 quelle est la diffrence essentielle entre tableaux et Vector
le stockage des variables dans un tableau est statiques ,le stockage
des variables dans un vector est dynamique cad que de la mmoire
sera alloue au fur et a mesure que l on ajoute des objets dans le
vector ,la taille du vectore ne devra donc pas tre dfinie lavance

18 Quand utilise t- on les mots cls import et extends


Import : les instructions import sont a utiliser en premier dans le
code ,
Elles permettent dimporter les packages
import repertoire1.repertoire2.nomclasse qui
importera la classe voulue
Ou
import repertoire1.repertoire2.* qui importera toute
les classes de repertoire2(tout le package)
Extends :
Mot-cl utilis pour cre des classes hrites :

Class Cadre extends Personnel


{
.

}
la classe Personnel aura ses propres
caractristiques(mthodes) en plus de ceux hrits de la classe Cadre
19 Quest ce quune instance de classe
Une instance de classe est un groupe de variables et/ou d objet
appartenant un objet crer avec l operateur new , a chaque creation d
objet une nouvelle instance de classe est cre , la mmoire pour les
variables de cet objet est alloue ,et ces variables sont initialise par le
constructeur dobjet.
20 Quest ce quune primitive
Il arrive que pour des traitement simples comme un compteur,un
calcul ,etc ont n ai pas la ncessit d utiliser des objets ,on utilisera
plutot des variables simples par soucis de simplification.
Les varaibles simples sont de type char , int , float ,long ,double,short,
boolean,
21 On dispose de la classe Point suivante
class Point
{
private int x,y ;
public Point(int x, int y)
{
this.x=x ;
this.y=y ;
}
public void affiche()
{
System.out.println(x+y) ;
}
}
Construire une classe segment constitue de deux points
La classe comprendra deux constructeurs diffrents et une mthode
permettant dafficher les deux points du segment
22 on dispose de la classe Figure suivante
abstract class Figure
{
abstract void translate(int x, int y) ;
abstract void affiche() ;
char nom ;
}
construire une classe Point drivant de Figure et possdant deux
constructeurs diffrents
APPLICATION
1. Rappel de quelques notions mathmatiques
Un nombre complexe A possdant une partie imaginaire I et une partie
relle R est not A=R+I*i
Somme de deux nombres complexes

A=R+I*i et B=R2+I2*i
A+B= (R+R2)+(I+I2)*i
Norme= racine carre de (R*R+I*I)
Construire la classe complexe utilise dans lapplication suivante
Public class EssaiComplexe
{
public static void main(String[] arg)
{
Vector Nc =new Vector() ;
Complexe a=new Complexe(1,2) ,b =new Complex(0,3);
Complexe d=new Complex() ;
Complexe c ;
C=Complexe add(a,b) ;
a.add(b) ;
Collections.sort(Nc,new Complexe.Comparaison());
for(int i=0;i<Nc.size();i++)
((Complexe)Nc.elementAt(i)).affiche();
}
le tri seffectue sur la norme dans lordre croissant
Construire la classe Mat2 permettant de manipuler des matrices 2 lignes
2 colonnes et permettant de raliser lapplication suivante
Public class EssaiMat
{
public static vod main(String [] arg)
{
Mat2[] mm =new Mat2[5] ;
mm[1]=new Mat2(1,2,1,3) ;
mm[2]=new Mat2(2,3,4,5) ;
mm[3]=Mat2.add(mm[1],mm[2]) ;
mm[4]=new Mat2() ;
mm[5]=new Mat2() ;
mm[4].add(mm[2]) ;
java.util.Arrays.sort(mm);
for(int i=0 ;i<5 ;i++)mm[i].affiche() ;

}
}
le tri se fera sur la valeur du dterminant

Vous aimerez peut-être aussi