Différence entre final et statique

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 modifie pas leur valeur une fois qu'ils sont définis. Le mot statique dans la déclaration variable montre que la variable n'appartient à aucun objet. Il existe un mot-clé similaire qui indique que la valeur de la variable ne sera définie qu'une seule fois et ne changera pas. Ceci 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 de paramètres. En déclarant la variable en tant que finale, vous montrez à tout le monde que la variable pendant l'existence aura la même valeur. Plus important encore, le compilateur détectera chaque tentative de modification de la valeur d'une variable soi-disant et de le signaler comme une erreur. Quant à la terminologie Java, la variable déclarée statique et finale est appelée constante.

Qu'est-ce qui est final?

Le modificateur final peut être utilisé à plusieurs endroits du langage de programmation Java. Ici, nous couvrirons 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 de membres non statiques ou statiques. Dans ce contexte, le modificateur variable se convertit en constante. Le traducteur de la langue de traduction vérifiera si un code tente de modifier la valeur, et ces tentatives seront signalées comme une erreur. Voici un exemple.

Valeur int finale = 17;

Les variables de membres statiques avec ce modificateur sont utilisées comme constantes mondiales; Par exemple, dans le java.égouter.Pi variable mathématique, il est indiqué exactement

Double Pi final statique public = 3.14159265358979323846;

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

public final int sensLife ()

retour 42;

Nous pouvons appliquer le modificateur final à la déclaration de classe. La classe qui est marquée de la finale ne peut plus hériter - c'est-à-dire sa mise en œuvre finale. De toute évidence, la classe abstraite ne peut pas être définitive en même temps. Voici un exemple

classe finale publique fermée

//…

L'un des exemples de classe finis est le java.égouter.Classe de chaînes - Il est fini afin que personne ne puisse l'hériter et donc accéder à ses variables membre.

Qu'est-ce qui est statique?

Les variables statiques n'appartiennent pas à une instance particulière de classe. Les variables statiques appartiennent à la classe elle-même et en mémoire il n'y a qu'un seul endroit, quel que soit le nombre de copies de cette classe qui sont créées en mémoire. Les variables non statiques appartiennent aux spécimens de classe - chaque instance de la classe a sa propre copie de ces variables. Les variables statiques appartiennent à la classe - la classe en mémoire conserve les valeurs de ces variables; Toutes les classes d'échantillons voient donc le même contenu afin que nous puissions considérer les variables statiques 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é à n'importe quel élément légalement déclaré dans une classe. Dans le cas des variables d'adhésion, la conséquence est que ces variables de membres ne seront stockées qu'en un seul endroit. Que se passe-t-il si c'est une méthode? En déclarant la méthode comme 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 cachée à l'objet sur lequel ils sont appelés à l'appel; Dans les méthodes de référence statiques, ce n'est pas disponible. En effet, invoquer des méthodes statiques à travers l'objet est tout aussi déroutant que l'accès aux variables de membres statiques en se référant à cette référence: dans les deux cas, il vaut mieux écrire le nom de la classe, le point et le nom de la méthode d'appel.

Différence entre final et statique

  1. Variable

Static signifie une variable commune à tous les objets qui instancient une classe donnée tandis que final définit la constante.

  1. Méthode

Static est une méthode qui est la même pour chaque objet donné la classe - est également appelé membre de la classe E.g. 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 finale ne peut pas être élargie i.e. n'autorise pas les sous-classes. Statique ne s'applique pas à la classe.

  1. Valeur

Pour le dire simplement, la dernière a indiqué que la valeur ne peut pas être modifiée (remplacement). La valeur statique est définie sur sa valeur par défaut, mais peut être réinitialisée.

Final vs. Statique: graphique de comparaison

Résumé de la finale et statique

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