Académique Documents
Professionnel Documents
Culture Documents
⚠ Lorsqu'une fonction est située à l'intérieur d'une classe, elle s'appelle une méthode.
Puisque tout le code est situé à l'intérieur de classes, vous pouvez utiliser les deux termes
(fonctions et méthodes) de manière interchangeable.
Deux étapes sont importantes pour qu’un programme Java se lance : la compilation et
l'interprétation. Le compilateur intervient en amont pour prendre le code du développeur
et le transformer en byteCode (ou code binaire – langage machine). Puis
l'interpréteur traduit le byteCode en instructions pour exécuter le programme.
Le langage dans lequel le code Java doit être transformé est appelé Bytecode. Pour
transformer le code Java en Bytecode, il est nécessaire d'utiliser le compilateur javac.
Résumé :
Les programmes Java sont structurés en packages et en classes.
Aucun code n'est écrit en dehors d'une classe, ce qui signifie que toutes les fonctions
sont des méthodes en Java.
Les packages sont mappés dans des dossiers et les classes dans des fichiers.
La commande javac convertit le code Java en Bytecode.
La commande java exécute le programme actuel en exécutant la fonction main dans la
classe fournie.
Il existe deux types de classes :
1. Les classes modèles qui sont utilisées comme modèles pour l'instanciation des objets.
2. Les classes utilitaires qui contiennent des méthodes statiques qui peuvent être appelées
directement sur la classe.
Vous pouvez accompagner vos classes et méthodes avec des commentaires de
documentation, écrits entre /** et */, pour générer une page HTML avec toute la
documentation de la classe, appelée un Javadoc. La méthode main peut vous
être masquée si vous utilisez un Framework.
Les principes du code propre exigent qu'aucune logique ne soit écrite à l'intérieur de la
méthode main. Tout le travail doit être délégué à des fonctions bien nommées.
Niveau de contrôle :
En Java, vous devez utiliser un des mots clés suivants pour désigner un niveau de
contrôle :
public : visible pour tous et par conséquent le moins restrictif ;
protected (protégé) : visible pour le package et l'ensemble de ses sous-classes ;
package-protected (protégé par paquet) : généralement visible uniquement par le
package dans lequel il se trouve (paramètres par défaut). Ne pas mettre de mot clé
déclenche ce niveau de contrôle ;
private (privé) : accessible uniquement dans le contexte dans lequel les variables sont
définies (à l'intérieur de la classe dans laquelle il est situé).
⚠ Rappelez-vous que le paramètre "par défaut" est plus restrictif que "public" ou "protégé".
Résumé :
La portée (scope) d'une variable est la zone de code où elle a été déclarée.
La portée variable générale s'applique à tous les blocs de code, y compris les classes.
Un autre moyen nécessaire pour contrôler l'accès aux variables et aux fonctions est
d'utiliser des niveaux de contrôle : public, protected, package-protected et private.
Résume
Les boucles d'énumération exécutent un ensemble d'instructions un nombre de fois fixe,
basé sur les valeurs limites inférieure et supérieure de l'énumérateur.
Les boucles conditionnelles exécutent un ensemble d'instructions jusqu'à ce qu'une
condition définie soit remplie.
Une erreur courante à surveiller avec les boucles conditionnelles : les boucles infinies !
Les itérations dans une boucle peuvent ignorer certaines instructions à l'intérieur de la
boucle en utilisant la commande continue.
Le cycle de boucle peut être interrompu et la boucle peut être interrompue prématurément à
l'aide de la commande break.
Les opérateurs logiques :
Ces opérateurs vous permettent de combiner des valeurs booléennes : soit des valeurs
booléennes spécifiques, soit des résultats d'expressions. Ils sont au nombre de trois:
&& ET logique.
Le résultat n'est vrai que si toutes les parties participantes sont vraies.
Exemple : le résultat de expression1 && expression2 n’est vrai que si expression1 est
vraie ET expression2 est également vraie.
|| OU logique.
Le résultat est vrai si au moins une des parties participantes est vraie.
Exemple : le résultat de expression1 || expression2 est vrai si expression1 est
vraie OU expression2 est vraie. Il en sera de même si les deux expressions sont
vraies !
! NON logique.
Il inverse simplement l'expression donnée.
Le résultat de !expression1 est vrai si expression1 est fausse ; le résultat est faux
si expression1 est vraie.
Utilisez une classe comme modèle pour vos futurs objets. Dans une classe,
définissez le nom et le type de certaines variables. En Java, ceux-ci sont
généralement appelés attributs et champs ;
Pour utiliser le plan vraiment cool que vous avez créé, vous devez créer un objet
en utilisant le processus d'instanciation. Cela signifie déclarer une
variable avec votre classe comme type, puis utiliser l'expression de création
d'objet que vous avez vue ci-dessus ;
Un objet s'appelle une instance de classe.
En résumé
Une classe est le plan d'un objet.
Une classe vous permet de créer des types complexes en regroupant ses attributs, en
définissant des champs.
Pour créer un objet, vous devez déclarer une variable d'une classe et l'instancier.
Utiliser le point (.) donne accès aux champs.
L’héritage et le polymorphisme:
C’est le concept de polymorphisme. L’idée étant de pouvoir utiliser le même nom de méthode
sur des objets différents. Et bien sûr, cela n’a de sens que si le comportement des méthodes
est différent.
La redéfinition (override) fait référence au remplacement d'une méthode héritée dans une
classe dérivée (sous-classe). Cela se produit lorsque vous avez une hiérarchie de classes avec
une relation d'héritage. La sous-classe peut alors fournir une implémentation différente de la
méthode héritée de sa superclasse.
Dans le contexte de l'héritage, la redéfinition (override) permet de substituer une méthode de
la superclasse avec une méthode de même nom et même signature dans la sous-classe. Cela
permet de modifier ou d'étendre le comportement de la méthode héritée sans avoir à modifier la
superclasse.
En revanche, la surcharge (overload) se produit au sein d'une même classe (ou d'une classe
dérivée) et ne nécessite pas nécessairement d'héritage. Elle permet de définir plusieurs
méthodes avec le même nom, mais des signatures différentes (différents types de paramètres,
différents nombres de paramètres, ordre différent, etc.). Cela permet d'offrir une plus grande
flexibilité en permettant à la classe de traiter différemment les appels de méthode en fonction
des arguments passés.
En résumé, la redéfinition (override) concerne la substitution d'une méthode héritée dans une
sous-classe, tandis que la surcharge (overload) concerne la définition de plusieurs méthodes
avec le même nom mais des signatures différentes dans une même classe (ou une classe
dérivée).
Quelle est la différence entre Héritage et Polymorphisme ?
– L’héritage permet, la réutilisabilité du code et le polymorphisme permet à une fonction d’avoir
différente forme. La différence fondamentale entre l’héritage et le polymorphisme est
que l’héritage permet de réutiliser le code existant dans la classe mère, et
le polymorphisme fournit un mécanisme permettant de décider dynamiquement quelle forme
d’une fonction à invoquer.
L’abstraction est un concept de définition des objets du monde réel en termes de classes ou
d’interfaces.
L’encapsulation est implémentée en combinant des méthodes et des attributs dans une classe.
La classe agit comme un conteneur de propriétés d’encapsulation.
Association est une relation où tous les objets ont leur propre cycle de vie et où il n’y a pas de
maître. L’agrégation est une forme spécialisée d’association dans laquelle tous les objets ont
leur propre cycle de vie, mais il y a un maître et les objets enfants ne peuvent pas appartenir à
un autre objet parent.
En Java, la signature d'une méthode ou d'une fonction fait référence à la combinaison unique
de son nom, de ses types de paramètres et de son type de retour. La signature permet de
distinguer une méthode d'une autre et d'identifier de manière précise la méthode à appeler lors
de l'exécution d'un programme.
Liste :
Declaration :
List<String> myList = new ArrayList<String>();
| Fonction | Rôle |
|---------------------------|----------------------------------------------------------|
| `abs(x)` | Retourne la valeur absolue de `x`. |
| `sqrt(x)` | Retourne la racine carrée de `x`. |
| `pow(x, y)` | Retourne `x` élevé à la puissance `y`. |
| `exp(x)` | Retourne l'exponentielle de `x`. |
| `log(x)` | Retourne le logarithme naturel (base e) de `x`. |
| `log10(x)` | Retourne le logarithme base 10 de `x`. |
| `sin(x)` | Retourne le sinus de `x` (en radians). |
| `cos(x)` | Retourne le cosinus de `x` (en radians). |
| `tan(x)` | Retourne la tangente de `x` (en radians). |
| `floor(x)` | Retourne le plus grand entier inférieur ou égal à `x`. |
| `ceil(x)` | Retourne le plus petit entier supérieur ou égal à `x`. |
| `round(x)` | Retourne l'entier le plus proche de `x`. |
| `random()` | Retourne un nombre aléatoire entre 0.0 (inclus) et 1.0 (exclus). |
| `max(x, y)` | Retourne le plus grand des deux nombres `x` et `y`. |
| `min(x, y)` | Retourne le plus petit des deux nombres `x` et `y`. |
Il est important de noter que ce tableau répertorie uniquement certaines des fonctions
prédéfinies de la classe `Math`, mais il existe d'autres classes et packages dans la
bibliothèque standard de Java qui fournissent des fonctions prédéfinies pour différents
besoins, tels que la manipulation de chaînes de caractères (`java.lang.String`), les
opérations sur les tableaux (`java.util.Arrays`), les opérations sur les dates et heures
(`java.time.*`), etc.
Il est également possible de créer vos propres fonctions définies par l'utilisateur en Java en
utilisant les méthodes définies dans vos propres classes.
| Fonction | Rôle |
|-----------------------------|--------------------------------------------------------------------------|
| `length()` | Retourne la longueur de la chaîne de caractères. |
| `charAt(index)` | Retourne le caractère à l'index spécifié. |
| `substring(beginIndex)` | Retourne une sous-chaîne à partir de l'index spécifié jusqu'à la
fin. |
| `substring(beginIndex, endIndex)` | Retourne une sous-chaîne entre les indices spécifiés
(inclus). |
| `indexOf(str)` | Retourne l'index de la première occurrence de la sous-chaîne
spécifiée. |
| `lastIndexOf(str)` | Retourne l'index de la dernière occurrence de la sous-chaîne
spécifiée. |
| `startsWith(prefix)` | Vérifie si la chaîne commence par le préfixe spécifié. |
| `endsWith(suffix)` | Vérifie si la chaîne se termine par le suffixe spécifié. |
| `toLowerCase()` | Convertit la chaîne en minuscules. |
| `toUpperCase()` | Convertit la chaîne en majuscules. |
| `trim()` | Supprime les espaces blancs au début et à la fin de la chaîne. |
| `replace(oldChar, newChar)` | Remplace toutes les occurrences d'un caractère par un
autre. |
| `replaceAll(regex, replacement)` | Remplace toutes les occurrences correspondant à une
expression régulière. |
| `split(regex)` | Divise la chaîne en sous-chaînes en utilisant une expression
régulière. |
| `concat(str)` | Concatène la chaîne avec une autre chaîne. |
Il est important de noter que ce tableau répertorie uniquement certaines des fonctions
prédéfinies de la classe `String`. La classe `String` offre de nombreuses autres méthodes
utiles pour la manipulation et le traitement des chaînes de caractères. Vous pouvez
consulter la documentation officielle de Java pour obtenir la liste complète des méthodes de
la classe `String` et leurs descriptions détaillées.
Il est également possible d'utiliser d'autres classes de la bibliothèque standard de Java pour
effectuer des opérations avancées sur les chaînes de caractères, telles que `StringBuilder`
pour la construction efficace de chaînes modifiables et `StringBuffer` pour la manipulation
de chaînes dans un contexte multithread.
equals est une méthode de la classe String qui permet de comparer deux chaînes.
Voici un tableau répertoriant certaines des fonctions prédéfinies pour les tableaux et les
vecteurs (Vector) en Java, ainsi que leurs rôles :
| Fonction | Rôle |
|-------------------------------|------------------------------------------------------------------------------------------
--------|
| `length` (pour les tableaux) | Retourne la taille (nombre d'éléments) du tableau.
|
| `size` (pour les vecteurs) | Retourne le nombre d'éléments dans le vecteur.
|
| `clone` (pour les tableaux) | Crée une copie superficielle du tableau (nouvel objet
référençant les mêmes éléments). |
| `addElement` | Ajoute un élément à la fin du vecteur.
|
| `add` (pour les ArrayList) | Ajoute un élément à la fin de la liste.
|
| `removeElement` | Supprime la première occurrence de l'élément spécifié du
vecteur. |
| `remove` (pour les ArrayList) | Supprime la première occurrence de l'élément spécifié de la
liste. |
| `get` | Retourne l'élément à l'index spécifié dans le tableau ou le vecteur.
|
| `set` | Modifie l'élément à l'index spécifié dans le tableau ou le vecteur.
|
| `sort` (pour les tableaux) | Trie les éléments du tableau dans l'ordre naturel (pour les
types primitifs ou implémentant Comparable) ou en utilisant un comparateur spécifié. |
| `toArray` (pour les vecteurs) | Retourne un tableau contenant les éléments du vecteur.
|
| `contains` | Vérifie si le tableau ou le vecteur contient un élément spécifié.
|
| `indexOf` | Retourne l'index de la première occurrence de l'élément spécifié
dans le tableau ou le vecteur. |
| `isEmpty` | Vérifie si le tableau ou le vecteur est vide.
|
Il est important de noter que ce tableau répertorie seulement quelques-unes des fonctions
prédéfinies pour les tableaux et les vecteurs en Java. Il existe d'autres méthodes
disponibles pour manipuler et travailler avec des tableaux et des vecteurs dans la
bibliothèque standard de Java. Vous pouvez consulter la documentation officielle de Java
pour obtenir la liste complète des méthodes disponibles pour ces structures de données.
Fonction Rôle
Convertir les caractères d'une chaîne de
toUpperCase ()
caractères en majuscules.
Convertir les caractères d'une chaîne de
toLowerCase ()
caractères en minuscules.
Permet de remplacer une partie de texte par
replace («val à changer », « nouv val »)
une autre
System.out.println("Bonjour " + nom + ", vous avez " + age + " ans.");
scanner.close();
System.out.println(random);
PHYTON
Tableau :
En Python, les tableaux sont généralement représentés par des listes, qui offrent
un large éventail de fonctions prédéfinies pour les manipuler. Voici quelques-unes
des fonctions couramment utilisées pour travailler avec des listes en Python :
ARRAY NUMPY :
pip install numpy
import numpy as np
my_array = np.array([1, 2, 3, 4, 5])
ou
zeros_array = np.zeros((3, 3)) # Crée un tableau de zéros de dimension 3x3
ones_array = np.ones((2, 4)) # Crée un tableau de uns de dimension 2x4
random_array = np.random.random((2, 2)) # Crée un tableau de nombres
aléatoires de dimension 2x2
element = my_array[index] # Accès à un élément spécifique
slice = my_array[start:end:step] # Accès à une tranche (slice) du tableau
result = array1 + array2 # Addition de deux tableaux
result = array1 * array2 # Multiplication de deux tableaux
result = np.sin(my_array) # Application de la fonction sinus à chaque élément du
tableau
Oui, la bibliothèque NumPy offre de nombreuses fonctions prédéfinies pour
travailler avec les tableaux multidimensionnels. Voici quelques-unes des fonctions
couramment utilisées de NumPy :
import numpy as np