1. Modificateurs d'accès

Avant chaque méthode, les programmeurs peuvent spécifier ce que l'on appelle des modificateurs d'accès. Ceux-ci incluent les mots-clés suivants : public, protected, private.

Ces modificateurs d'accès vous permettent de restreindre l'accès d'autres classes à une méthode.

Par exemple, si vous écrivez le privatemot-clé avant une déclaration de méthode, la méthode ne peut être appelée qu'à partir de la même classe dans laquelle elle est déclarée. Le publicmot-clé permet d'accéder à la méthode marquée à partir de n'importe quelle méthode de n'importe quelle classe.

Il existe au total 3 modificateurs de ce type, mais il existe 4 types d'accès à une méthode. C'est parce que l'absence d'un modificateur d'accès signifie aussi quelque chose.

Accès depuis...
Modificateurs N'importe quelle classe Classe enfant Son forfait Sa classe
public Oui Oui Oui Oui
protected Non Oui Oui Oui
aucun modificateur Non Non Oui Oui
private Non Non Non Oui

1. publicmodificateur

Une méthode (ou une variable, ou une classe) marquée avec le publicmodificateur est accessible de n'importe où dans le programme . C'est le plus haut degré d'ouverture — il n'y a pas de restrictions.

2. privatemodificateur

Une méthode (ou variable ou classe) marquée avec le privatemodificateur n'est accessible qu'à partir de la même classe où elle est déclarée . Pour toutes les autres classes, la méthode (ou variable) marquée est invisible. C'est comme si ça n'existait pas. Il s'agit du niveau de restriction le plus élevé - uniquement sa propre classe.

3. Aucun modificateur (modificateur par défaut)

Si une méthode (ou une variable) n'est marquée d'aucun modificateur, elle est considérée comme ayant le « modificateur par défaut ». Les variables ou les méthodes avec ce modificateur (c'est-à-dire sans aucun) sont visibles pour toutes les classes du package dans lequel elles sont déclarées . Et seulement à eux. Ce modificateur est aussi parfois appelé package-private, indiquant que l'accès aux variables et aux méthodes est ouvert à l'ensemble du package dans lequel se trouve leur classe.

4. protectedmodificateur

Si une méthode est marquée avec le protectedmodificateur, elle est accessible à partir de la même classe, du même package et des descendants (classes qui héritent de la classe dans laquelle la méthode est déclarée). Nous analyserons ce sujet plus en détail dans la quête Java Core.

Vous pouvez utiliser le publicmodificateur sur toutes vos méthodes (ainsi que toutes vos classes et variables de classe) jusqu'à ce que vous atteigniez la fin de la quête Java Syntax. Vous aurez besoin des autres modificateurs lorsque nous commencerons à apprendre activement la POO.

Pourquoi les modificateurs d'accès sont-ils nécessaires ?

Ils deviennent nécessaires pour les grands projets écrits par des dizaines et des centaines de programmeurs en même temps.

Parfois, il y a des situations où un programmeur veut diviser une méthode excessivement grande en parties et déplacer une partie du code dans des méthodes d'assistance. Mais en même temps, il ou elle ne veut pas que d'autres programmeurs appellent ces méthodes d'assistance, car le code correspondant peut ne pas fonctionner correctement.

Ils ont donc proposé ces modificateurs d'accès. Si vous marquez une méthode d'assistance avec le mot private , aucun code autre que votre classe ne peut voir votre méthode d'assistance.



2. staticmot clé

Le staticmot clé rend une méthode statique. Nous verrons ce que cela signifie plus tard. Pour l'instant, n'oubliez pas quelques faits sur les méthodes statiques.

Fait 1. Une méthode statique n'est attachée à aucun objet , mais appartient à la place à la classe dans laquelle elle est déclarée. Pour appeler une méthode statique, vous devez écrire :

ClassName.MethodName()

Exemples de méthodes statiques :

Nom du cours Nom de la méthode statique
Thread.sleep() Thread sleep()
Math.abs() Math abs()
Arrays.sort() Arrays sort()

Le nom de classe avant le nom d'une méthode statique peut être omis si vous appelez la méthode statique depuis sa classe. C'est pourquoi vous n'avez pas besoin d'écrire Solutionavant le nom de chacune des méthodes statiques appelées.

Fait 2. Une méthode statique ne peut pas accéder aux méthodes non statiques de sa propre classe. Une méthode statique ne peut accéder qu'aux méthodes statiques. En conséquence, nous déclarons toutes les méthodes que nous voulons appeler à partir de la mainméthode static.

Pourquoi? Vous serez en mesure de répondre vous-même à cette question lorsque vous commencerez à apprendre la POO et à comprendre le fonctionnement des méthodes statiques.



3. throwsmot clé

Il y a un autre mot-clé que vous avez probablement vu dans une déclaration de méthode — le throwsmot-clé. Contrairement aux modificateurs d'accès et au staticmot-clé, ce mot-clé est placé après les paramètres de méthode :

public static Type name(parameters) throws Exception
{
  method body
}

Nous reviendrons sur sa signification précise un peu plus loin lorsque nous étudierons les exceptions.

Mais pour y toucher superficiellement, on peut dire qu'une méthode marquée avec le mot-clé throws peut lancer des erreurs (exceptions), c'est-à-dire des instances de la Exception classe (et des classes qui en héritent). Si plusieurs types d'erreurs différents peuvent se produire dans une classe, vous devez lister chacun d'entre eux en les séparant par des virgules.


4. mainméthode

La ligne où une méthode est déclarée, qui contient tous les modificateurs, affectera la façon dont cette méthode est appelée à partir d'autres classes et méthodes. Il affecte le type de résultat que la méthode renverra et indique quelles erreurs sont possibles lors de son exécution.

Une telle ligne s'appelle une déclaration de méthode et a le format général suivant :

access modifier static Type name(parameters) throws exceptions
Format général d'une déclaration de méthode

access modifiers est remplacé par public, protected, private, ou rien du tout ;

si la méthode est statique, alors le staticmot clé apparaît (il est absent pour les méthodes non statiques)

Typeest le type de la valeur de retour ( voids'il n'y a pas de résultat)

Maintenant, vous comprenez probablement ce que signifient tous les mots-clés dans la déclaration de la mainméthode :

public static void main(String[] args) throws Exception
Déclarer la mainméthode

L'accès à la main()méthode est possible depuis n'importe quelle classe, comme l'indique le publicmot-clé.

La méthode est statique, elle peut donc être appelée explicitement en tant que Solution.main().

La mainméthode ne renvoie aucun résultat. Le type de retour est void(pas de type).

La mainméthode prend des arguments (!) : un tableau de chaînes. Et le nom du paramètre argssuggère des "arguments" à nos esprits. Lorsque le programme démarre, vous pouvez lui passer des arguments - un tableau de chaînes. Ils seront contenus dans le args tableau de la main()méthode.

Des erreurs non gérées comme Exception(ou ses descendants) peuvent se produire dans la main()méthode.