Académique Documents
Professionnel Documents
Culture Documents
L3-Miage 2021-2022
CM1
Plan de cours
• Collections
• Généricité
• Threads
• Les fonctions Lambda
• Streams
• Interfaces graphiques Swing
• Connection aux bases de données
Historique
• Développé par Sun Microsystems à partir de 1991
• Green team
• James Gosling
• Patrick Naughton
• Mike Sheridan
• Pour les télévisions et décodeurs
• Première version en 1995
• Version actuelle SE 17
Principes
• Simple et familier
• Robuste et sécurisée
• Portable et indépendante de l'architecture
• Haute performance, Multithread et distribuée
• Interprété et dynamique
• Orienté objet
Principes
• Orienté objet (toute est classe à base Objet)
• Fortement typé (sûr)
• Gestion automatique de la mémoire (garbage collector)
• Peut être utilisé pour faire du web
Compilation / interprétation
Compiler
Code Byte
JVM
Java code
Interpréter
Code Machine AMD
projet.class
class Projet {
method public static void main (java.lang.String[])
max_stack 2 {
getstatic java.io.PrintStream java.lang.System.out ldc "Hello world" -> java projet
invokevirtual void java.io.PrintStream.println(java.lang.String) return
}
}
IDE's
Conventions
• Le fichier .java porte le nom de la classe qu'il contient
• La classe Projet est dans le fichier Projet.java
• Le nom de package commence par minuscule Projet.java
• java.lang.* import java.lang.*;
Le chien est un mammifère quadrupède carnivore caractérisé par sa facilité à être domestiqué,
par une course rapide, un excellent odorat et par son cri spécifique, l'aboiement.
Chiko Baron
public class Chien {
String nom;
int vitesse = 5; Champs
String[] color;
public Chien(String nom, int vitesse, String[] color) {
this.nom = nom;
this.vitesse = vitesse; Constructeur
this.color = color;
}
public void marcher() {
System.out.println("marcher");
}
public void courir() {
System.out.println("courir " + vitesse);
Méthodes
}
public void aboyer() {
System.out.println("wof wof");
}
public static void main(String[] args) {
Chien chiko = new Chien("Chiko", 3, new String[] {"noir", "blanc", "brun"});
Chien baron = new Chien("Baron", 5, new String[] {"doré", "noir"});
chiko.marcher();
baron.aboyer();
}
}
Inheritance (héritage)
• Une classe plus spécifique (sous-classe) que la classe mère
• class Golden_retriever extends Chien
• Elle possède automatiquement toutes les caractéristiques (champs)
et méthodes de la classe mère (sauf les private)
Privilèges d'accès
Type de déclaration Classe Package Sous-classe Monde
public ✓ ✓ ✓ ✓
protected ✓ ✓ ✓
Package (par défaut) ✓ ✓
private ✓
Classe (Chien)
package1
Classe (Chat)
Sous-classe
Package 2
(Golden_retriever)
La classe abstraite
abstract class Animal { Animal
public abstract void animalSound();
public void sleep() {
System.out.println("Zzz");
}
}
L'interface public class Autruche extends {
Oiseau
@Override }
double a = Math.PI;
double b = Math.sqrt(9.0);
double c = Math.max(a, b);
Les exceptions
• Mécanisme permettant de gérer facilement les cas d'erreurs
• Toutes les exceptions héritent de la classe java.lang.Exception
int[] arr = new int[4];
try { ERROR 4
int i = arr[4]; finally block executed
System.out.println("Inside try block"); Outside try-catch-finally clause
} catch(ArrayIndexOutOfBoundsException ex) {
System.out.println("ERROR " + ex.getMessage());
//ex.printStackTrace();
ERROR 4
finally block executed
} finally {
Outside try-catch-finally clause
System.out.println("finally block executed");
java.lang.ArrayIndexOutOfBoundsException: 4
}
at Chien.main(Chien.java:42)
System.out.println("Outside try-catch-finally clause");