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 private
mot-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 public
mot-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. public
modificateur
Une méthode (ou une variable, ou une classe) marquée avec le public
modificateur 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. private
modificateur
Une méthode (ou variable ou classe) marquée avec le private
modificateur 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. protected
modificateur
Si une méthode est marquée avec le protected
modificateur, 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 public
modificateur 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. static
mot clé
Le static
mot 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 Solution
avant 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 main
mé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. throws
mot clé
Il y a un autre mot-clé que vous avez probablement vu dans une déclaration de méthode — le throws
mot-clé. Contrairement aux modificateurs d'accès et au static
mot-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. main
mé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
Où access modifiers
est remplacé par public
, protected
, private
, ou rien du tout ;
si la méthode est statique, alors le static
mot clé apparaît (il est absent pour les méthodes non statiques)
Type
est le type de la valeur de retour ( void
s'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 main
méthode :
public static void main(String[] args) throws Exception
L'accès à la main()
méthode est possible depuis n'importe quelle classe, comme l'indique le public
mot-clé.
La méthode est statique, elle peut donc être appelée explicitement en tant que Solution.main()
.
La main
méthode ne renvoie aucun résultat. Le type de retour est void
(pas de type).
La main
méthode prend des arguments (!) : un tableau de chaînes. Et le nom du paramètre args
suggè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.
GO TO FULL VERSION