Maison Java javaDidacticiel Que savez-vous du mot-clé Java final ?

Que savez-vous du mot-clé Java final ?

Sep 14, 2018 am 10:35 AM

Pour les débutants, Tomcat est un très bon choix pour exécuter JSP et Servlet. Vous pouvez également utiliser de la résine, qui ne coûte rien. Le support de Resin pour XML est très bon.

1. Modifier la finale du membre de données de base

C'est l'objectif principal de final. Sa signification est équivalente à la const de C/C++, c'est-à-dire que le membre est modifié comme. une constante, ce qui signifie qu’elle ne peut pas être modifiée. Par exemple, PI et E dans la classe java.lang.Math sont des membres finaux et leurs valeurs sont 3,141592653589793 et ​​2,718281828459045.

2. Modifier le final d'une référence à une classe ou un objet

En Java, on ne peut pas laisser l'objet être modifié comme final, mais on peut seulement modifier la référence de l'objet, ce qui signifie que même si vous écrivez public final A a = new A(); En fait, les données de l'objet pointé par a peuvent toujours être modifiées. Ce qui ne peut pas être modifié, c'est la valeur de référence de a lui-même, c'est-à-dire que vous ne pouvez pas réaffecter. un. La même situation se produit dans les tableaux, tels que public final int[] a = {1, 2, 3, 4, 5}. En fait, la valeur de a est modifiable, c'est-à-dire que a[0] = 3 peut être écrite. . Selon la compréhension actuelle, les données du tableau en Java ne peuvent pas être modifiées pour être non modifiables, contrairement à C/C++.

3. La finale de la méthode modifiée

La finale de la méthode modifiée est très différente du const utilisé pour modifier l'objet membre en C/C++. Tout d’abord, la signification finale d’une méthode modifiée n’est pas « non modifiable », mais signifie que la méthode ne peut pas être redéfinie par les membres hérités. (Notez que ce qui est dit ici ne peut pas être redéfini ne signifie pas que les sous-classes ne doivent pas définir des méthodes portant le même nom. Si la méthode de la classe parent est un type privé, la sous-classe est autorisée à définir la méthode. Ce que l'on entend ici est qu'elle ne peut pas être redéfinie. En réécrivant la méthode, le polymorphisme de la réécriture de méthode peut être réalisé si vous ne voulez pas que la situation de substitution de méthodes comme A a = new B(); 🎜>Exemple :

De plus, lorsqu'une méthode est modifiée en tant que méthode finale, cela signifie que le compilateur peut charger la méthode en ligne (inline). La méthode dite en ligne signifie que le compilateur est chargé. n'a pas besoin d'appeler la fonction comme méthode habituelle pour appeler la méthode, mais copie directement le code de la méthode dans le code d'origine après certaines modifications (insérez le corps de la méthode directement dans le point d'appel au lieu de faire un appel de méthode). Cela peut accélérer l'exécution du code (car la surcharge liée à l'appel des fonctions est omise), comme l'appel de arr.length() dans int[] arr = new int[3], etc.
public class A {
    // final方法f
    public final void f() {
       System.out.println("类A中的final方法f被调用了");
    }
}
public class B extends A {
    // 编译错误!父类的f方法是final类型,不可重写!
    //! public void f() {
    //!     System.out.println("类B中的方法f被调用了");
    //! }
}
Copier après la connexion

D'un autre côté, les méthodes privées sont également implicitement modifiées comme finales par le compilateur, ce qui signifie qu'il n'y a aucune différence entre private final void f() et private void f().

4. Classe finale modifiée

Lorsqu'une classe est modifiée comme finale, sa signification est très claire, c'est-à-dire que la classe n'est pas autorisée à être héritée, c'est-à-dire la classe est "final", toute opération qui en hérite se terminera par une erreur de compilation. Cela met également en évidence la raison pour laquelle Java utilise final au lieu de const comme identifiants. (Les variables membres peuvent ne pas être finales et les méthodes membres peuvent être directement finales)

Exemple :

5 Paramètre final
       public final class A {
}
// 编译错误!A是final类型,不可被继承!
//!public class B extends A{
//!}
Copier après la connexion

pour. paramètres de l'objet Effectuer les modifications finales. On pense que la variable objet reçoit sa référence, qui est modifiée pour empêcher toute modification involontaire pendant le processus d'appel.

Recommandations associées :

Série d'apprentissage JAVA/JSP bases de three_php

Série d'apprentissage JAVA/JSP bases de one_php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Racine carrée en Java Racine carrée en Java Aug 30, 2024 pm 04:26 PM

Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

See all articles