Différence entre final et statique

En mathématiques et en sciences, la constante est un terme qui désigne une certaine valeur, telle que «π», qui est un nom pratique pour le nombre 3.14159. Java a son genre de constantes. Ce sont des variables qui sous (a) n'appartiennent à aucun objet et sous (b) ne changent pas de valeur une fois qu'elles sont définies. Le mot statique dans la déclaration de variable indique que la variable n'appartient à aucun objet. Un mot clé similaire indique que la valeur de la variable ne sera définie qu'une fois et ne changera pas. C'est le mot clé final. Ce mot clé ne se limite pas aux variables statiques, mais peut être utilisé avec des variables d'instance, des variables locales et même avec des variables qui sont des méthodes paramétriques. En déclarant la variable en tant que finale, vous montrez à tout le monde que la variable au cours de l'existence aura la même valeur. Plus important encore, le compilateur détectera chaque tentative de modification de la valeur d'une variable déclarée ainsi et la rapportera comme une erreur. En ce qui concerne la terminologie Java, la variable déclarée statique et finale est appelée constante..

Quelle est la finale?

Le modificateur final peut être utilisé à plusieurs endroits dans le langage de programmation Java. Ici, nous allons couvrir son utilisation la plus courante. Le modificateur final peut être appliqué à la déclaration d'une variable locale, d'un argument de fonction et de variables membres non statiques ou statiques. Dans ce contexte, le modificateur de variable est converti en une constante. Le traducteur de langue de traduction vérifiera si du code tente de modifier la valeur, et ces tentatives seront signalées comme des erreurs. Voici un exemple.

valeur int finale = 17;

Les variables membres statiques avec ce modificateur sont utilisées comme constantes globales. par exemple, dans la variable PI java.lang.Math, il est indiqué exactement

public final final double PI = 3.14159265358979323846;

Nous pouvons appliquer le modificateur final à la déclaration de fonction. La fonction marquée avec la finale ne peut plus être annulée - c'est sa mise en œuvre finale. Les méthodes abstraites ne peuvent pas être déclarées finales - le fait qu’elles soient abstraites signifie qu’elles manquent de mise en oeuvre; ce ne peut certainement pas être leur état ultime. Voici un exemple.

public final int meaningLife ()

retourne 42;

Nous pouvons appliquer le modificateur final à la déclaration de classe. La classe marquée avec le final ne peut plus hériter, c'est son implémentation finale. Clairement, la classe abstraite ne peut pas être finale en même temps. Voici un exemple

public final class fermé

//…

L'un des exemples de classes finies est la classe java.lang.String - elle est finie, elle ne peut donc pas en hériter, et donc accéder à ses variables membres..

Qu'est-ce que la statique??

Les variables statiques n'appartiennent pas à une instance particulière de la classe. Les variables statiques appartiennent à la classe elle-même et en mémoire, il n'y a qu'un seul emplacement, quel que soit le nombre de copies de cette classe créées en mémoire. Les variables non statiques appartiennent aux spécimens de classe - chaque instance de la classe possède sa propre copie de ces variables. Les variables statiques appartiennent à la classe - la classe en mémoire conserve les valeurs de ces variables; Par conséquent, tous les exemples de classes voient le même contenu, ce qui permet de considérer les variables statiques comme partagées entre toutes les tailles de classe. En mettant à jour la variable de valeur, la nouvelle valeur sera automatiquement visible pour toutes les instances de cette classe. Le filtre statique peut être appliqué à tout élément légalement déclaré dans une classe. Dans le cas de variables d'appartenance, la conséquence est que ces variables de membre ne seront stockées en mémoire qu'à un seul endroit. Qu'est-ce qui se passe si c'est une méthode? En déclarant la méthode statique, le message est le même: la méthode pertinente n'appartient pas aux classes de classes mais à la classe elle-même. Par conséquent, les méthodes statiques ne recevront pas de référence masquée à l'objet sur lequel elles sont appelées lors de l'appel. dans les méthodes de référence statiques, ceci n'est pas disponible. En effet, appeler des méthodes statiques sur l’objet est tout aussi déroutant que d’accéder à des variables membres statiques en se référant à cette référence: dans les deux cas, il est préférable d’écrire simplement le nom de la classe, le point et le nom de la méthode appelante..

Différence entre final et statique

  1. Variable

Statique représente une variable commune à tous les objets qui instancient une classe donnée alors que final définit la constante..

  1. Méthode

Statique est une méthode identique pour chaque classe d'objet donnée. Elle est également appelée membre de classe, par exemple. telle est la méthode principale. La méthode finale ne peut pas être traitée dans la classe héritée.

  1. Classe

La version finale ne peut pas être étendue, c’est-à-dire qu’elle ne permet pas les sous-classes. Statique ne s'applique pas à la classe.

  1. Valeur

Pour le dire simplement, final indique que la valeur ne peut pas être modifiée (substitution). La valeur statique est définie sur sa valeur par défaut, mais peut être réinitialisée.

Final vs Statique: Tableau de comparaison

Résumé final et statique

  • La clé travail statique fournit un accès même lorsqu'il n'y a pas d'objet (instance). Les classes éminentes sont déclarées par le mot clé static. Si vous ne voulez pas que la valeur de certaines modifications plus tard dans le programme disparaisse, ou si vous voulez que le compilateur vérifie et interdise, vous pouvez changer cette promesse en finale. Il y a un bloc statique pour l'initialisation. Le bloc statique pour l'initialisation est déclaré comme clé statique devant les crochets. Ce type de bloc est effectué une fois, lors de la lecture des classes, et initialise généralement les membres statiques de la classe..