Module 3 - Java
Module 3 - Java
Syllabus :
Classes
mot-clé
Héritage
hiérarchie, surcharge de méthode.
Belle penséeVous devez grandir de l'intérieur vers l'extérieur. Personne ne peut vous enseigner, personne
peut vous rendre spirituel. Il n'y a pas d'autre enseignant que votre propre âme.― Swami
Vivekananda
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 1
Concepts orientés objet 15CS/IS45
[Link] :
Définition
Une classe est un modèle pour un objet et définit les champs de données et les méthodes.
de l'objet. Les méthodes de classe permettent d'accéder pour manipuler les champs de données. Le
Les « champs de données » d'un objet sont souvent appelés « variables d'instance ».
Exemple de programme :
classe RectangleArea
{
public static void main(String args[])
{
Rectangle rect1=new Rectangle();//création d'objet
[Link](10,20); //appelant des méthodes en utilisant un objet avec le point (.)
int area1=[Link]();
[Link]("Aire1="+aire1);
}
}
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology 2
Concepts orientés objet 15CS/IS45
Après avoir défini une classe, elle peut être utilisée pour créer des objets en les instanciant.
classe. Chaque objet occupe une certaine mémoire pour contenir ses variables d'instance (c'est-à-dire
son état).
Après qu'un objet soit créé, il peut être utilisé pour obtenir la fonctionnalité souhaitée.
mémoire pour un objet et renvoie une référence à celui-ci. en java, tous les objets de classe
Les Constructeurs :
Préparé par Nagamahesh BS, Professeur associé, CSE, Sai Vidya Institute of Technology 3
Concepts orientés objet 15CS/IS45
Toutes les classes ont des constructeurs, que vous en définissiez un ou non, car
Exemple :
// Un constructeur simple.
classeMaClasse
{
int x;
// Voici le constructeur
MaClasse()
{
x = 10;
}
}
classe ConsDemo
{
public static void main(String args[])
{
MyClass t1 = new MyClass();
MyClass t2 = new MyClass();
[Link](t1.x + " " + t2.x);
}
}
Préparé par Nagamahesh BS, Professeur Assistant, CSE, Institut de Technologie Sai Vidya 4
Concepts orientés objet 15CS/IS45
Constructeur paramétré :
de la même manière qu'ils sont ajoutés à une méthode : il suffit de les déclarer
Exemple :
// Un constructeur simple.
classeMaClasse
{
int x;
classe ConsDemo
{
public static void main(String args[])
{
MyClass t1 = new MyClass( 10 );
MyClass t2 = new MyClass( 20 );
[Link](t1.x + " " + t2.x);
}
}
10 20
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology 5
Concepts orientés objet 15CS/IS45
mot-clé statique
3. bloc
4. classe imbriquée
variable statique
Dans cet exemple, nous avons créé une variable d'instance nommée count.
qui est incrémenté dans le constructeur. Puisque la variable d'instance obtient le
mémoire au moment de la création de l'objet, chaque objet aura une copie de la
variable d'instance, si elle est incrémentée, cela ne se reflétera pas sur les autres objets. Donc
chaque objet aura la valeur 1 dans la variable de compte.
classe Compteur
{
int count=0;//la mémoire sera allouée lors de la création de l'instance
Compteur()
{
compte++;
[Link](count);
}
}
Classe MyPgm
{
public static void main(String args[])
{
Compteur c1 = nouveau Compteur();
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Sai Vidya Institute of Technology 6
Concepts Orientés Objet 15CS/IS45
Comme nous l'avons mentionné ci-dessus, la variable statique n'obtiendra la mémoire que
une fois, si un objet change la valeur de la variable statique, elle la conservera
valeur.
classe Compteur
{
staticint count=0;//ne prendra la mémoire qu'une seule fois et conservera sa valeur
Compteur()
{
compter++;
[Link](count);
}
}
Classe MyPgm
{
public static void main(String args[])
{
Counter c1=new Counter();
Compteur c2=new Compteur();
Compteur c3=new Compteur();
}
}
Sortie : 1
2
3
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 7
Concepts orientés objet 15CS/IS45
méthode statique
Si vous appliquez le mot clé statique à une méthode, cela s'appelle une méthode statique.
il.
//Programme pour obtenir le cube d'un nombre donné par méthode statique
classe Calculer
{
static int cube(int x)
{
retourner x*x*x;
}
Classe MyPgm
{
public static void main(String args[])
{
// appeler une méthode directement avec la classe (sans création d'objet)
int resultat=[Link](5);
[Link](result);
}
}
Sortie : 125
ce mot clé
ce mot-clé peut être utilisé pour faire référence à la variable d'instance de la classe actuelle.
Préparé par Nagamahesh BS, Professeur Assistant, CSE, Institut de Technologie Sai Vidya 8
Concepts orientés objet 15CS/IS45
0 nul
0 nul
Dans l'exemple ci-dessus, les paramètres (arguments formels) et les variables d'instance sont
c'est pourquoi nous utilisons ce mot-clé pour faire la distinction entre la variable locale et
variable d'instance.
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology neuf
Concepts Orientés Objet 15CS/IS45
student(intid,Stringname)
{
[Link]= id;
[Link]
}
void afficher()
{
[Link](id + " " + name);
}
}
Classe MyPgm
{
public static void main(String args[])
{
Étudiant s1 = new Étudiant(111, "Anoop");
Étudiant s2 = nouveau Étudiant(222,"Aryan");
[Link]();
[Link]();
}
}
Sortie111 Anoop
222 Aryan
Classe interne
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology 10
Concepts orientés objet 15CS/IS45
{
public void afficher()
{
Inner in=new Inner();
[Link]();
}
classe Interne
{
public void montrer()
{
[Link]("À l'intérieur de l'intérieur");
}
}
}
classe Test
{
public static void main(String[] args)
{
Outer ot=new Outer();
[Link]();
}
}
À l'intérieur intérieur
En Java, la destruction des objets de la mémoire est effectuée automatiquement par la JVM.
Lorsqu'il n'y a aucune référence à un objet, cet objet est alors supposé être non
plus besoin et les souvenirs occupés par l'objet sont libérés. Ceci
Cette technique s'appelle la collecte des ordures. Cela est accompli par la JVM.
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 11
Concepts de la programmation orientée objet 15CS/IS45
Non, la collecte des déchets ne peut pas être forcée explicitement. Nous pouvons demander à la JVM de
la collecte des ordures en appelant la méthode [Link](). Mais cela ne garantit pas que
méthode finalize()
Parfois, un objet devra effectuer une tâche spécifique avant d'être détruit.
comme fermer une connexion ouverte ou libérer toute ressource détenue. Pour gérer cela
La méthode situationfinalize() est utilisée. La méthode finalize() est appelée par le ramasse-miettes.
fil avant de collecter l'objet. C'est la dernière chance pour tout objet d'effectuer
outil de nettoyage.
//finaliser-code
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology 12
Concepts orientés objet 15CS/IS45
Méthode gc()
La méthode gc() est utilisée pour appeler explicitement le collecteur de déchets. Cependant, la méthode gc() ne fait pas ...
ne garantit pas que la JVM effectuera la collecte des déchets. Elle ne fait que demander le
JVM pour la collecte des déchets. Cette méthode est présente dans la classe System et Runtime.
Sortie :
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 13
Concepts orientés objet 15CS/IS45
Héritage
Comme son nom l'indique, l'héritage signifie prendre quelque chose qui est
déjà fait. C'est l'une des caractéristiques les plus importantes de l'Objet
but
L'héritage est le mécanisme par lequel nous pouvons dériver des classes
d'autres classes.
La classe dérivée est appelée classe enfant ou sous-classe ou nous pouvons dire
Pour dériver une classe en Java, le mot-clé extends est utilisé. Le suivant
Types d'héritage
2. Héritage multilevel
3.Héritage multiple (Java ne prend pas en charge l'héritage multiple)
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de technologie Sai Vidya 14
Concepts orientés objet 15CS/IS45
Héritage simple/monovalent
mécanisme est connu sous le nom d'héritage simple. Dans le cas de l'héritage simple
Exemple
classeA
{
intx;
inty;
intget(intp, intq)
{
x=p;
y=q;
return(0);
}
voidShow()
{
[Link](x);
}
}
classBextendsA
{
public static void main(String args[])
{
A a = newA();
[Link](5,6);
[Link]();
}
voiddisplay()
{
[Link]("y"); //hérité de “y” de la classe A
}
}
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Sai Vidya Institute of Technology 15
Concepts orientés objet 15CS/IS45
La syntaxe pour créer une sous-classe est simple. Au début de votre classe
déclaration, utilisez le mot-clé extends, suivi du nom de la classe pour
hériter de :
classe A
{
Héritage multiniveau
La classe dérivée est appelée la sous-classe ou classe enfant par rapport à sa classe parente.
la classe et cette classe parente fonctionne comme la classe enfant car elle est juste au-dessus
( parent ) classe.
L'héritage multilevel peut aller jusqu'à n'importe quel nombre de niveaux.
classe A
{
int x;
int y;
int obtenir(int p, int q)
{
x=p;
y=q;
return(0);
}
void Afficher()
{
[Link](x);
}
}
Préparé par Nagamahesh BS, Professeur Assistant, CSE, Institut de Technologie Sai Vidya 16
Concepts orientés objet 15CS/IS45
classe B étend A
{
void Afficherb()
{
[Link]("B");
}
}
classe C étend B
{
afficher()
{
[Link]("C");
}
public static void main(String args[])
{
A a = new A();
[Link](5,6);
[Link]();
}
}
SORTIE
5
Héritage multiple
Le mécanisme d'héritage des caractéristiques de plus d'une classe de base dans une
une seule classe est connue sous le nom d'héritage multiple. Java ne prend pas en charge l'héritage multiple.
interface.
Ici, vous pouvez dériver une classe de n'importe quel nombre de classes de base. Dériver un
Une classe ayant plus d'une classe de base directe est appelée héritage multiple.
Préparé par Nagamahesh BS, professeur assistant, CSE, Institut de Technologie Sai Vidya 17
Concepts orientés objet 15CS/IS45
En Java, l'héritage multiple peut être réalisé par l'utilisation d'interfaces par
mot-clé super
Le super est un mot-clé java. Comme son nom l'indique, super est utilisé pour accéder au
Exemple : Supposons que la classe A soit la super classe qui a deux variables d'instance.
en tant que int a et float b. la classe B est la sous-classe qui contient également ses propres membres de données
appelés a et b. ensuite, nous pouvons accéder aux variables de la super classe (classe A) a et b à l'intérieur
[Link];
Ici, un membre peut être soit une variable d'instance, soit une méthode. Cette forme de
super utile pour gérer des situations où les membres locaux d'un
Préparé par Nagamahesh BS, Professeur associé, CSE, Institut de Technologie Sai Vidya 18
Concepts orientés objet 15CS/IS45
Exemple :
classeA
{
inta;
floatb;
voidShow()
{
[Link]("b dans la super classe : " + b);
}
}
classBextendsA
{
inta;
flottantb;
B(intp,floatq)
{
a = p;
super.b = q;
}
voidShow()
{
[Link]();
[Link]("b dans la super classe : " + super.b);
[Link]("a dans la sous-classe : " + a);
}
}
classe Mypgm
{
public static void main(String[] args)
{
B subobj = new B(1, 5);
[Link]();
}
}
SORTIE
b dans la super classe : 5.0
b dans la super classe : 5.0
a dans la sous-classe : 1
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Sai Vidya Institute of Technology 19
Concepts orientés objet 15CS/IS45
Utilisation de super pour appeler le constructeur de la classe parente : La deuxième utilisation du mot-clé
super en java est utilisé pour appeler le constructeur de la classe parente dans la sous-classe. Cette fonctionnalité peut
super(liste-de-paramètres);
Ici, la liste des paramètres est la liste des paramètres requis par le constructeur.
dans la super classe. super doit être la première instruction exécutée à l'intérieur d'un
constructeur de super classe. Si nous voulons appeler le constructeur par défaut, alors nous
Exemple :
classeA
{
inta;
intb;
intc;
A(intp,intq,intr)
{
a=p;
b=q;
c=r;
}
}
classeBétendA
{
intd;
B(intl,intm,intn,into)
{
super(l,m,n);
d=o;
}
voidShow()
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology 20
Concepts orientés objet 15CS/IS45
{
[Link]("a = " + a);
[Link]("b = " + b);
[Link]("c = " + c);
[Link]("d = " + d);
}
}
classe Mypgm
{
public static void main(String args[])
{
B b =newB(4,3,8,7);
[Link]();
}
}
SORTIE
a=4
b=3
c=8
d=7
Surcharge de méthodes
La redéfinition de méthode en Java signifie qu'une méthode de sous-classe redéfinit une méthode de super-classe.
méthode.
La méthode de la superclasse doit être non statique. La sous-classe utilise le mot-clé extends pour
étendre la super classe. Dans l'exemple, la classe Bis est la sous-classe et la classe A
est la super classe. En remplaçant les méthodes à la fois de la sous-classe et de la super classe
possèdent les mêmes signatures. Le remplacement est utilisé pour modifier les méthodes de
Exemple :
Préparé par Nagamahesh BS, Professeur Associé, CSE, Sai Vidya Institute of Technology 21
Concepts de la programmation orientée objet 15CS/IS45
classe A
{
int i;
A(int a, int b)
{
i = a + b;
}
void ajouter()
{
[Link]("La somme de a et b est : " + i);
}
}
classe B étend A
{
int j;
B(int a, int b, int c)
{
super(a, b);
j=a+b+c;
}
void ajouter()
{
[Link]();
[Link]("La somme de a, b et c est : " + j);
}
}
classe SurchargeDeMéthode
{
public static void main(String args[])
{
B b = new B(10, 20, 30);
[Link]();
}
}
SORTIE
La somme de a et b est : 30
La somme de a, b et c est : 60
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 22
Concepts orientés objet 15CS/IS45
Surcharge de méthode
Deux ou plusieurs méthodes ont les mêmes noms mais des listes d'arguments différentes.
Les arguments peuvent différer en type ou en nombre, ou les deux. Cependant, le retour
Les types de méthodes surchargeées peuvent être les mêmes ou différents, cela s'appelle une méthode.
Exemple :
classe SurchargeDeMéthode
{
int ajouter(int a, int b)
{
return(a+b);
}
flottant ajouter(flottant a, flottant b)
{
return(a+b);
}
double ajouter(int a, double b, double c)
{
retourner(a+b+c);
}
}
classe MainClass
{
public static void main( String arr[] )
{
mobj = nouvelle MéthodeSurcharge();
[Link]([Link](50,60));
[Link]([Link](3.5f, 2.5f));
[Link]([Link](10,30.5,10.5));
}
}
SORTIE
110
6.0
51,0
Préparé par Nagamahesh BS, Professeur Assistant, CSE, Institut de Technologie Sai Vidya 23
Concepts orientés objet 15CS/IS45
Classe abstraite
Une classe abstraite ne peut pas être instanciée avec l'opérateur new.
Nous pouvons utiliser le mot-clé abstrait pour créer une méthode abstraite ; une abstraite
Exemple de programme :
classeAbstraite ZonePgm
{
double dim1, dim2;
ZonePgm(double x,double y)
{
x
y;
}
double abstrait surface();
}
classe rectangle étend AreaPgm
{
rectangle(double a,double b)
{
super(a,b);
}
double aire()
{
[Link]("Aire du rectangle");
return dim1*dim2;
}
}
classe triangle étend figure
{
triangle(double x,double y)
{
super(x,y);
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 24
Concepts orientés objet 15CS/IS45
}
double surface()
{
[Link]("Aire du Triangle");
retourne dim1*dim2/2;
}
}
classe MonPgm
{
public static void main(String args[])
{
Le mot clé final en java est utilisé pour restreindre l'utilisateur. Le mot clé final peut être
utilisé dans de nombreux contextes. Final peut être :
1. variable
2. méthode
3. classe
1) variable finale : Si vous déclarez une variable comme finale, vous ne pouvez pas changer sa valeur.
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 25
Concepts orientés objet 15CS/IS45
classe Vélo
{
int limitespeed=90; // variable finale
void exécuter()
{
limite de vitesse=400;
}
}
Classe MyPgm
{
public static void main(String args[])
{
Vélo obj=new Vélo();
[Link]();
}
}
Erreur de compilation
2) méthode finale : Si vous déclarez une méthode comme finale, vous ne pouvez pas la redéfinir.
Exemple :
classe Vélo
{
finalvoid exécuter()
{
[Link]("en cours d'exécution");
}
}
classe Honda étend Vélo
{
void run()
{
[Link]("rouler en toute sécurité à 100 km/h");
}
}
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de technologie Sai Vidya 26
Concepts orientés objet 15CS/IS45
Classe MyPgm
{
public static void main(String args[])
{
Honda honda = new Honda();
[Link]();
}
}
Erreur de compilation
3) classe finale : Si vous faites une classe finale, vous ne pouvez pas l'étendre.
Exemple :
{
[Link]("rouler en toute sécurité à 50 km/h");
}
}
Classe MyPgm
{
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 27
Concepts orientés objet 15CS/IS45
Introduction
Une exception, elle peut être définie comme un événement anormal qui se produit pendant le programme.
exécution et perturbe le flux normal des instructions. L'événement anormal peut être
Les erreurs de compilation se produisent lorsque vous ne suivez pas la syntaxe d'un
langage de programmation.
Concepts d'exceptions
Une exception est une erreur d'exécution qui se produit pendant l'exécution d'un programme Java.
programme.
Exemple : Si vous divisez un nombre par zéro ou ouvrez un fichier qui n'existe pas, un
En Java, les exceptions peuvent être gérées soit par le système d'exécution Java, soit par un utilisateur.
code défini. Lorsqu'une erreur d'exécution se produit, une exception est levée.
Les situations inattendues qui peuvent survenir lors de l'exécution du programme sont :
Mémoire insuffisante
Erreurs d'allocation des ressources
Préparé par Nagamahesh BS, Professeur associé, CSE, Sai Vidya Institute of Technology 28
Concepts orientés objet 15CS/IS45
1. essayer :
attraper.
3. lancer.
4. lance.
5. enfin.
Les exceptions sont gérées en utilisant une construction try-catch-finally, qui a la syntaxe.
essayer
{
}
attraper (<type d'exception1> <paramètre1>)
{
// 0 ou plusieurs <déclarations>
}
enfin
{
// bloc finally<instructions>
}
1. essayer Bloc : Le code java que vous pensez pouvoir produire une exception est placé
dans un bloc try pour un bloc catch approprié afin de gérer l'erreur.
Si aucune exception ne se produit, l'exécution se poursuit avec le bloc finally, sinon cela
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 29
Concepts Orientés Objet 15CS/IS45
Encore une fois, si le gestionnaire d'exception correspondant n'est pas trouvé, l'exécution se poursuit avec
2. bloc catch : Les exceptions levées lors de l'exécution du bloc try peuvent être interceptées
et traité dans un bloc catch. À la sortie d'un bloc catch, l'exécution normale
se poursuit et le bloc finally est exécuté (Bien que le bloc catch lance un
exception).
3. Bloc finally : Un bloc finally est toujours exécuté, indépendamment de la cause de la sortie.
Exemple :
Le tableau suivant est déclaré avec 2 éléments. Ensuite, le code essaie d'accéder à
[Link]
importer [Link].*;
classe publique ExcepTest
{
public static void main(String args[])
{
essayer
{
int a[] = new int[2];
[Link]("Accéder à l'élément trois :" + a[3]);
}
attraper(ArrayIndexOutOfBoundsException e)
{
[Link]("Exception levée :" + e);
}
[Link]("Hors du bloc");
}
}
Préparé par Nagamahesh BS, professeur assistant, CSE, Sai Vidya Institute of Technology 30
Concepts orientés objet 15CS/IS45
Un bloc try peut être suivi de plusieurs blocs catch. La syntaxe pour plusieurs catch
les blocs ressemblent à ce qui suit :
essayer
{
// code
}
attraper(ExceptionType1 e1)
{
//Bloc catch
}
attraper(ExceptionType2 e2)
{
//Bloc catch
}
attraper(ExceptionType3 e3)
{
//Bloc catch
}
Les déclarations précédentes démontrent trois blocs catch, mais vous pouvez en avoir n'importe quel.
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Sai Vidya Institute of Technology 31
Concepts orientés objet 15CS/IS45
déclarations.
classe Multi_Catch
{
public static void main (String args [])
{
essayer
{
int a=[Link];
[Link]("a="+a);
int b=50/a;
int c[]={1}
}
attraper (ArithmeticException e)
{
[Link]("Division par zéro");
}
attraper (ArrayIndexOutOfBoundsException e)
{
[Link]("index de tableau hors limites");
}
}
}
SORTIE
Division par zéro
index de tableau hors limites
Tout comme les multiples blocs catch, nous pouvons également avoir plusieurs blocs try.
Ces blocs try peuvent être écrits indépendamment ou nous pouvons imbriquer les blocs try.
à l'intérieur les uns des autres, c'est-à-dire, garder un bloc try-catch à l'intérieur d'un autre bloc try.
Préparé par Nagamahesh BS, Professeur assistant, CSE, Institut de technologie Sai Vidya 32
Concepts orientés objet 15CS/IS45
Syntaxe
essayer
{
// déclarations
// déclarations
essayer
{
// déclarations
déclarations
}
attraper (<exception_two> obj)
{
déclarations
}
// déclarations
// déclarations
}
attraper (<exception_two> obj)
{
// déclarations
}
Si les chiffres n'étaient pas reçus correctement dans un format numérique, alors pendant
Préparé par Nagamahesh BS, professeur assistant, CSE, Sai Vidya Institute of Technology 33
Concepts Orientés Objet 15CS/IS45
Exemple
class Nested_Try
{
public static void main (String args [ ] )
{
essayer
{
int a = [Link](args[0]);
int b = [Link](args[1]);
int quot = 0;
essayer
{
quot = a / b;
[Link](quot);
}
attraper (ArithmeticException e)
{
[Link]("diviser par zéro");
}
}
attraper (NumberFormatException e)
{
[Link]("Type d'argument incorrect");
}
}
}
SORTIE
java Essai_Niché 2 4 6
4
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de technologie Sai Vidya 34
Concepts orientés objet 15CS/IS45
SORTIE
java Essayer_Niché 2 4 aa
Type d'argument incorrect
SORTIE
java Essai_Imbriqué 2 4 0
diviser par zéro
mot-clé throw
le mot-clé throw est utilisé pour lancer une exception de manière explicite. Seul un objet de
Syntaxe : jeterInstanceDeThrowable
newNullPointerException("test");
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology 35
Concepts orientés objet 15CS/IS45
classe Test
{
static void moyenne()
{
essayer
{
lancer une ArithmeticException("demo");
}
attraper(ArithmeticException e)
{
[Link]("Exception attrapée");
}
}
public static void main(String args[])
{
moyenne();
}
}
Dans l'exemple ci-dessus, la méthode avg() lance une instance d'ArithmeticException.
qui est géré avec succès à l'aide de l'instruction catch.
mot-clé throws
Toute méthode capable de provoquer des exceptions doit énumérer toutes les exceptions
possible pendant son exécution, de sorte que quiconque appelle cette méthode obtienne un préalable
Syntaxe :
type nom_méthode(liste_paramètres)lance_exception_liste
{
//définition de la méthode
}
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology 36
Concepts orientés objet 15CS/IS45
REMARQUE : Il est nécessaire que toutes les exceptions, sauf les exceptions de type TypeError et
classe Test
{
void statique check() lance ArithmeticException
{
[Link]("À l'intérieur de la fonction de vérification");
enfin
La clause finally est écrite avec l'instruction try-catch. Il est garanti
Syntaxe
essayer
{
// déclarations
}
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Sai Vidya Institute of Technology 37
Concepts de la programmation orientée objet 15CS/IS45
enfin est également exécuté et vous obtenez la sortie pour les deux blocs.
Exemple :
classe Bloc_Finalement
{
static void division ( )
{
essayer
{
int num = 34, den = 0;
int quot = num / den;
}
attraper(ArithmeticException e)
{
[Link]("Diviser par zéro");
}
enfin
{
[Link]("Dans le bloc finally");
}
}
classe Mypgm
{
public static void main(String args[])
{
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology 38
Concepts orientés objet 15CS/IS45
SORTIE
Diviser par zéro
Dans le bloc finally
Les exceptions les plus générales de ces types sont des sous-classes du type standard
automatiquement disponible.
Java définit plusieurs autres types d'exceptions qui se rapportent à ses différentes classes.
Exception Description
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Sai Vidya Institute of Technology 39
Concepts Orientés Objet 15CS/IS45
Exception Description
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de technologie Sai Vidya 40
Concepts orientés objet 15CS/IS45
Ici, vous pouvez également définir vos propres classes d'exception en étendant Exception.
Ces exceptions peuvent représenter des conditions d'exécution spécifiques, bien sûr vous le ferez.
vous devez les lancer vous-même, mais une fois lancés, ils se comporteront exactement comme
exceptions ordinaires.
Lorsque vous définissez vos propres classes d'exception, choisissez l'ancêtre avec soin.
La plupart des exceptions personnalisées feront partie de la conception officielle et seront donc vérifiées.
retourner msg;
}
}
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology 41
Concepts Orientés Objet 15CS/IS45
classe test
{
public static void main(String args[])
{
test t = new test();
[Link]();
}
public void ajouter()
{
essayer
{
int i=0;
si( i<40)
lancer une nouvelle MyException();
}
attraper(MyException ee1)
{
[Link]("Résultat:" + ee1);
}
}
}
SORTIE
Vous avez réussi
Exception enchaînée
Les exceptions enchaînées sont les exceptions qui se produisent les unes après les autres, c'est-à-dire
la plupart du temps, la réponse à une exception est donnée par une application par
Chaque fois qu'une exception dans un programme provoque une autre exception,
cela est appelé Exception Chaînée. Java fournit une nouvelle fonctionnalité pour
chaining d'exceptions.
L'enchaînement d'exceptions (également connu sous le nom de "nesting exception") est une technique pour
gérer l'exception, qui se produit l'une après l'autre, c'est-à-dire la plupart du temps
Préparé par Nagamahesh BS, Professeur Assistant, CSE, Institut de Technologie Sai Vidya 42
Concepts orientés objet 15CS/IS45
est donné par une application pour répondre à une exception en lançant une autre
exception.
un autre.
Les constructeurs qui prennent en charge les exceptions en chaîne dans la classe Throwable sont :
Throwable initCause(Throwable)
Throwable(Throwable)
Throwable(String, Throwable)
Throwable getCause()
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology 43
Concepts orientés objet 15CS/IS45
Packages en JAVA
Il existe de nombreux packages intégrés tels que java, lang, awt, javax, swing, net, io, util,
sql etc.
1) Le paquet Java est utilisé pour classer les classes et les interfaces afin qu'elles puissent être
facile à entretenir.
emballemonemballage;
classe publique simple
{
public static voidmain(String args[])
{
Systè[Link]("Bienvenue dans le package");
}
}
Comment accéder à un package depuis un autre package ?
1. importer le paquet.*;
2. importer [Link];
nom complètement qualifié.
Préparé par Nagamahesh BS, professeur adjoint, CSE, Sai Vidya Institute of Technology 44
Concepts orientés objet 15CS/IS45
1) Utiliser packagename.*
Si vous utilisez package.*, alors toutes les classes et interfaces de ce paquet seront
accessible mais pas de sous-packages.
Le mot clé import est utilisé pour rendre les classes et les interfaces d'un autre package
accessible au package courant.
paquet
classe publiqueA
{
public voidmsg(){[Link]("Bonjour");}
}
packagemypack;
importpack.*;
classeB
{
public static void main(String args[])
{
A obj =newA();
[Link]();
}
}
Bonjour
2) En utilisant [Link]
paquet
classe publique A
{
public void msg() { [Link]("Bonjour");
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 45
Concepts de la programmation orientée objet 15CS/IS45
}
}
packagemypack
importpack.A;
classeB
{
public static void main(String args[])
{
A obj =newA();
[Link]();
}
}
Bonjour
Si vous utilisez un nom entièrement qualifié, alors seule la classe déclarée de ce package sera
accessible. Maintenant, il n'est plus nécessaire d'importer. Mais vous devez utiliser un nom entièrement qualifié.
Il est généralement utilisé lorsque deux packages ont le même nom de classe, par exemple [Link] et
Les packages [Link] contiennent la classe Date.
packagepack;
classe publique A
{
public voidmsg()
{
[Link]("Bonjour");
}
}
emballezmypack
classeB
{
public static voidmain(String args[])
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 46
Concepts orientés objet 15CS/IS45
{
pack.A obj = new pack.A(); //utilisant le nom complètement qualifié
[Link]();
}
}
Bonjour
Modificateurs/Spécificateurs d'accès
Les modificateurs d'accès en java spécifient l'accessibilité (portée) d'un membre de données,
méthode, constructeur ou classe.
privé
2. défaut
3. protégé
4. public
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de technologie Sai Vidya 47
Concepts orientés objet 15CS/IS45
Comprendre tous les modificateurs d'accès Java à l'aide d'un tableau simple.
Interface en java
Une interface en Java est un plan d'une classe. Elle a des variables statiques finales.
et méthodes abstraites.
L'interface en Java est un mécanisme pour atteindre l'abstraction. Il peut y avoir
seules les méthodes abstraites dans l'interface java ne contiennent pas de corps de méthode.
Les champs d'interface sont publics, statiques et finals par défaut, et les méthodes sont
public et abstrait.
Il y a principalement trois raisons d'utiliser une interface. Elles sont énumérées ci-dessous.
Comme montré dans la figure ci-dessous, une classe étend une autre classe, une interface
étend une autre interface mais une classe implémente une interface.
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 48
Concepts Orientés Objet 15CS/IS45
Exemple 1
Dans cet exemple, l'interface Printable n'a qu'une seule méthode, son implémentation est
fourni dans la classe Pgm1.
interface imprimable
{
void imprimer();
}
classe IntefacePgm1
{
public static void main(String args[])
{
Pgm1 obj = nouveau Pgm1();
[Link]();
}
}
Préparé par Nagamahesh BS, professeur assistant, CSE, Institut de Technologie Sai Vidya 49
Concepts orientés objet 15CS/IS45
translated
Bonjour
Exemple 2
Dans cet exemple, l'interface Drawable n'a qu'une seule méthode. Son implémentation est
fourni par les classes Rectangle et Cercle. Dans un scénario réel, l'interface est définie par
Et, il est utilisé par quelqu'un d'autre. La partie implémentation est cachée par l'utilisateur.
interfaceDesservable
{
voiddessiner();
}
//Implémentation : par le deuxième utilisateur
classeRectangleimplémenteDessinnable
{
public void dessiner()
{
[Link]("dessiner un rectangle");
}
}
classCircleimplémenteDrawable
{
public voidtirer()
{
[Link]("dessin d'un cercle");
}
}
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 50
Concepts orientés objet 15CS/IS45
interfaceDeTestDeClasse1
{
public static void main(String args[])
{
//Dans un scénario réel, l'objet est fourni par une méthode, par exemple getDrawable()
Drawable d=newCircle();
[Link]();
}
}
Sortie :
dessiner un cercle
Préparé par Nagamahesh BS, Professeur associé, CSE, Sai Vidya Institute of Technology 51
Concepts de programmation orientée objet 15CS/IS45
Exemple
interfaceImprimable
{
voidprint();
}
interfaceAffichable
{
afficher();
}
classePgm2implémenteImprimable,Montrable
{
public void imprimer()
{
[Link]("Bonjour");
}
Classe InterfaceDemo
{
publique statique vide main(String args[])
{
Pgm2 obj = nouveau Pgm2();
[Link]();
[Link]();
}
}
Bonjour
Bienvenue
Préparé par Nagamahesh BS, Professeur assistant, CSE, Sai Vidya Institute of Technology 52
Concepts Orientés Objet 15CS/IS45
L'héritage multiple n'est pas pris en charge par les classes en Java mais il l'est.
Comme nous l'avons expliqué dans le chapitre sur l'héritage, l'héritage multiple n'est pas
Exemple
interfaceImprimable
{
voidprint();
}
interfaceAffichable
{
voidprint();
}
classeInterfacePgm1implémenteImprimable, Affichable
{
publique voidprint()
{
[Link]("Bonjour");
}
}
classe InterfaceDemo
{
public static void main(String args[])
{
InterfacePgm1 obj = new InterfacePgm1();
[Link]();
}
}
Sortie :
Bonjour
Préparé par Nagamahesh BS, Professeur associé, CSE, Institut de Technologie Sai Vidya 53
Concepts orientés objet 15CS/IS45
Comme vous pouvez le voir dans l'exemple ci-dessus, les interfaces Printable et Showable ont
mêmes méthodes mais son implémentation est fournie par la classe TestTnterface1,
Héritage d'interface
Une classe implémente une interface mais une interface étend une autre interface.
interfaceImprimable
{
voidprint();
}
interfaceAfficherétendImprimable
{
voidshow();
}
classInterfacePgm2implementsShowable
{
public voidimprimer()
{
[Link]("Bonjour");
}
publique voidshow()
{
[Link]("Bienvenue");
}
Classe InterfaceDemo2
{
public static void main(String args[])
{
InterfacePgm2 obj = new InterfacePgm2();
[Link]();
[Link]();
}
}
Output
Bonjour
Bienvenue
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 54
Concepts orientés objet 15CS/IS45
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 55
Concepts orientés objet 15CS/IS45
}
}
classe MonPgm
{
[Link]();
[Link](23);
[Link](2);
[Link](73);
[Link](21);
[Link]();
[Link]();
[Link]();
[Link]();
}
Résultat
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Sai Vidya Institute of Technology 56
Concepts orientés objet 15CS/IS45
Questions
Utilisez une classe de base rectangle avec un constructeur et une méthode pour
Préparé par Nagamahesh BS, Professeur adjoint, CSE, Institut de Technologie Sai Vidya 57
Concepts orientés objet 15CS/IS45
(Jan-2008-8Points) 6Points
12. Expliquez ce qui suit avec un exemple.
Surcharge de méthode
13. Écrire un programme Java pour trouver la distance entre deux points
dont les coordonnées sont données. Les coordonnées peuvent être 2-
ce mot-clé
2. mot-clé super
3. mot-clé final
4. résumé
20. Illustrer les constructeurs avec un programme exemple
Préparé par Nagamahesh BS, professeur associé, CSE, Sai Vidya Institute of Technology 58