%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NewTP{Classes, héritage simple}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%
\NewExo
%%%%%%%
%%%%%%%
En vous inspirant de la classe \textsf{Crayon} vue en cours,
\'ecrire une classe \textsf{CompteBancaire}.\\
Cette classe devra permettre de cr\'eer des objets CompteBancaire.
Un objet de type CompteBancaire aura un num\'ero de compte et un solde.
Ces deux variables seront d\'eclar\'ees priv\'ees.\\
Le num\'ero du compte sera donn\'e initialement 
par une variable de classe \textsf{compteur}, qui sera incr\'ement\'ee
\`a chaque cr\'eation de compte.\\
Des m\'ethodes de la classe \textsf{CompteBancaire} devront permettre de 
faire des d\'ep\^ots, ou bien des retraits (si le solde le permet), 
sur un compte. Une m\'ethode devra permettre d'afficher le solde d'un compte.


%%%%%%%
\NewExo 
%%%%%%%
%%%%%%%
Cr\'eer une classe  \textsf{Ville}.
Une ville sera d\'ecrite par son nom et son nombre d'habitants.
Le nom de la ville devra \^etre m\'emoris\'e en majuscules.
Le nombre d'habitants peut \^etre inconnu, s'il est connu il sera 
toujours sup\'erieur \`a z\'ero.
Les variables d'instance seront d\'eclar\'ees priv\'ees.\\
On \'ecrira deux constructeurs, selon que le nombre d'habitants de la ville
\`a cr\'eer, est connu ou non.
On \'ecrira une m\'ethode d'affichage des caract\'eristiques d'une ville.
et une m\'ethode donnant la cat\'egorie de la ville: 'G' si le 
nombre d'habitants est sup\'erieur \`a 500000, 'M' si le
nombre d'habitants est compris entre 200000 et 500000, 'P' si le
nombre d'habitants est inf\'erieur \`a 200000.


%%%%%%%
\NewExo 
%%%%%%%
%%%%%%%
Rajouter \`a l'exercice pr\'ec\'edent la classe \textsf{Capitale}
qui h\'erite de la classe Ville. Cette nouvelle classe aura 
une variable d'instance suppl\'ementaire par rapport \`a la classe Ville:
la variable \textsf{pays}.\\
Certaines m\'ethodes seront simplement celles de la classe
m\`ere. D'autres devront \^etre sp\'ecialis\'ees.
Par exemple la m\'ethode donnant la cat\'egorie devra retourner
'C' dans le cas d'une capitale.\\

%%%%%%%
\NewExo
%%%%%%%
%%%%%%%
Taper et compl\'eter le programme \textsf{InfoContact} de la page 
suivante. Regarder L'API pour les classes Date et DateFormat.


%%%%%%%
\NewExo
%%%%%%%
%%%%%%%
Ajouter dans la classe \textsf{InfoContact} une variable 
\textsf{tableau}. Cette variable sera une variable de
classe, c'est-\`a-dire une variable visible et donc utilisable par 
toutes les m\'ethodes de la classe.
Cette variable d\'esignera un tableau d'au plus MAX objets du type 
InfoContact. MAX sera pour l'instant fix\'e a 10.
\begin{itemize}
\item Ecrire dans la classe \textsf{InfoContact} une m\'ethode\\ 
\textsf{public static void ajouter( InfoContac ic)}, qui ajoute 
l'objet ic dans le tableau.
%\item Ecrire dans la classe \textsf{InfoContact} une m\'ethode \\
%\textsf{public static void afficherTout()}, qui affiche tous les 
%\'el\'ements du tableau.\\
\item Ecrire dans la classe \textsf{InfoContact} une m\'ethode \\
\textsf{public static InfoContact chercher(String unNom)},
qui cherche si un objet de nom unNom est pr\'esent dans le tableau.
\end{itemize}
La m\'ethode \textsf{main} cr\'eera plusieurs objets de type
InfoContact, les ajoutera dans le tableau, 
%fera afficher le contenu du tableau, 
cherchera la pr\'esence \'eventuelle d'un \'el\'ement
particulier dans le tableau.

\VrbInput{InfoContact.java}





