Heim Java javaLernprogramm Detaillierte Anwendung der Java-Sprache in Java

Detaillierte Anwendung der Java-Sprache in Java

Dec 17, 2016 am 11:26 AM

Final wird in Java nicht häufig verwendet, bietet uns jedoch Funktionen wie das Definieren von Konstanten in der C-Sprache. Darüber hinaus können Sie mit final steuern, ob Ihre Mitglieder, Methoden oder eine Klasse überschrieben werden können Andere Funktionen, diese Eigenschaften machen endgültig einen unverzichtbaren Platz in Java, und es ist auch eines der Schlüsselwörter, die man beim Erlernen von Java kennen und beherrschen muss.
finales Mitglied
Wenn Sie eine Variable in einer Klasse definieren, fügen Sie davor das Schlüsselwort final ein. Das bedeutet, dass die Variable nach der Initialisierung nicht mehr geändert werden kann. Die Bedeutung von „unveränderbar“ gilt hier für Basistypen. Sein Wert ist unveränderlich, aber bei Objektvariablen kann seine Referenz nicht geändert werden. Die Initialisierung kann an zwei Stellen erfolgen: Eine befindet sich bei ihrer Definition, d. h. ihr wird direkt ein Wert zugewiesen, wenn die endgültige Variable definiert wird, und die andere befindet sich im Konstruktor. Sie können nur einen dieser beiden Orte auswählen, entweder einen Wert zum Zeitpunkt der Definition angeben oder einen Wert im Konstruktor angeben. Sie können zum Zeitpunkt der Definition keinen Wert angeben und gleichzeitig einen anderen Wert im Konstruktor angeben. Der folgende Code demonstriert dies:
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class Bat{
final PI=3.14 ;           // Der Adresswert wird bei der Definition von
    final int i angegeben;                                                                                                                                                            Auch das Gleiche wie oben 🎜> Bat(){
i=100;
list=new LinkedList();
}
Bat(int ii,List l){
i= ii;
list=l;
}
public static void main(String[] args){
Bat b= new Bat();
b.list.add(new Bat( ));
//b.i=25;
.list.getClass());
b=new Bat(23, new ArrayList());
b.list.add(new Bat());
System.out.println("I ="+b.i+" List Type:"+b.list.getClass( ));
}
}
Dieses Programm demonstriert lediglich die herkömmliche Verwendung von final. Die Verwendung der Initialisierung im Konstruktor bietet Ihnen hier ein wenig Flexibilität. Wie in den beiden überladenen Konstruktoren von Bat gezeigt, stellt Ihnen der erste Standardkonstruktor einen Standardwert bereit, und der überladene Konstruktor initialisiert die endgültige Variable entsprechend dem von Ihnen bereitgestellten Wert oder Typ. Manchmal benötigen Sie diese Flexibilität jedoch nicht. Sie müssen beim Definieren nur den Wert angeben und niemals ändern. In diesem Fall sollten Sie diese Methode nicht verwenden. In der Hauptmethode gibt es zwei auskommentierte Anweisungen. Wenn Sie die Kommentare entfernen, wird das Programm nicht kompiliert. Dies bedeutet, dass der Wert von i oder der Typ der Liste nach der Initialisierung nicht geändert werden kann . Allerdings kann b neu initialisiert werden, um den Wert von i oder den Listentyp anzugeben, wie in der Ausgabe gezeigt:
I=100 List Type:class java.util.LinkedList
I=23 List Type:class java .util.ArrayList
Eine andere Verwendung besteht darin, die Parameter in der Methode als endgültig zu definieren. Für Basistypvariablen hat dies keine praktische Bedeutung, da Basistypvariablen beim Aufruf der Methode als Wert übergeben werden Sie können diese Parametervariable in der Methode ändern, ohne dass dies Auswirkungen auf die aufrufende Anweisung hat. Dies ist jedoch für Objektvariablen sehr praktisch, da der Objektvariablen bei der Übergabe ihre Referenz übergeben wird, sodass Ihre Änderung der Objektvariablen in der Methode nicht erfolgt Dies wirkt sich auf die Objektvariablen in der aufrufenden Anweisung aus. Wenn Sie die Objektvariablen nicht als Parameter in der Methode ändern müssen, können Sie durch die explizite Verwendung von final verhindern, dass Sie sie unbeabsichtigt ändern und die aufrufende Methode beeinflussen.
Wenn die innere Klasse in der Methode außerdem die Parametervariable in der Methode verwendet, muss die Parametervariable auch als endgültig deklariert werden, bevor sie verwendet werden kann, wie im folgenden Code gezeigt:
public class INClass{
void innerClass(final String str){
class IClass{
IClass(){
System.out.println(str);
}
}
IClass ic=new IClass();
}
public static void main(String[] args){
INClass inc=new INClass();
inc. innerClass("Hello");
}
}
final method
Wenn Sie die Methode als final deklarieren, wissen Sie bereits, dass die von dieser Methode bereitgestellten Funktionen Ihre Anforderungen erfüllt haben und dies nicht sein müssen Und jede Klasse, die von dieser Klasse ausgeht, darf diese Methode nicht überschreiben, kann diese Methode aber dennoch fortsetzen, was bedeutet, dass sie direkt verwendet werden kann. Es gibt auch einen Mechanismus namens Inline, mit dem Sie den Methodenkörper beim Aufrufen der endgültigen Methode direkt in den Aufrufpunkt einfügen können, anstatt routinemäßige Methodenaufrufe wie das Speichern von Haltepunkten, das Verschieben des Stapels usw. durchzuführen, was zu Problemen führen kann Dies verbessert die Effizienz Ihres Programms. Wenn Ihr Methodenkörper jedoch sehr groß ist oder Sie diese Methode an mehreren Stellen aufrufen, wird sich Ihr aufrufender Körpercode schnell vergrößern, was sich auf die Effizienz auswirken kann. Sie sollten ihn daher mit Vorsicht verwenden. final definiert die Methode.
finale Klasse
Wenn Sie final für eine Klasse verwenden, müssen Sie sorgfältig überlegen, da eine finale Klasse von niemandem fortgesetzt werden kann, was bedeutet, dass diese Klasse ein Fortsetzungsbaum in einer Fortsetzungsbaumklasse ist Das Design dieser Klasse wurde ohne Modifikation oder Erweiterung als perfekt angesehen. Für Mitglieder in Abschlussklassen können Sie sie als Abschlussklassen definieren oder nicht. Was Methoden betrifft, so werden sie natürlich endgültig, da die Klasse, zu der sie gehören, endgültig ist. Sie können der Methode in der Final-Klasse auch explizit ein Finale hinzufügen, aber das ist offensichtlich bedeutungslos.
Das folgende Programm demonstriert die Verwendung von Final-Methoden und Final-Klassen:
final class final{
final String str="final Data";
public String str1="non final data";
final public void print(){
System.out.println("final method.");
}
public void what(){
System.out.println(str+"n" +str1);
}
}
public class FinalDemo { //extends final can continue
public static void main(String[] args){
final f=new final();
f.what();
f.print();
}
}
Wie aus dem Programm ersichtlich ist, gibt es fast keinen Unterschied zwischen der Verwendung von Abschlussklassen und gewöhnlichen Klassen Klassen, mit der Ausnahme, dass geerbte Merkmale verloren gehen. Der Unterschied zwischen endgültigen Methoden und nicht endgültigen Methoden ist in der Programmzeile ebenfalls schwer zu erkennen. Denken Sie jedoch daran, sie mit Vorsicht zu verwenden.
Die Anwendung von final in Designmustern
Es gibt ein Muster in Designmustern, das Unveränderlichkeitsmuster genannt wird. Dieses Muster kann in Java einfach über das Schlüsselwort final implementiert werden. Das Programm Bat ist ein Beispiel eines unveränderlichen Musters. Wenn Sie daran interessiert sind, können Sie sich auf die Erklärung im Buch „Java and Patterns“ von Dr. Yan Hong beziehen.
Bisher wurde die Verwendung von this, static, super und final erklärt. Wenn Sie den Unterschied und die Verwendung dieser vier Schlüsselwörter grob erkennen können, bedeutet dies, dass Sie sie im Grunde beherrschen. Nichts auf der Welt ist jedoch perfekt. Diese vier Schlüsselwörter sind für Programmierer sehr praktisch, aber das bedeutet nicht, dass Sie sie überall verwenden sollten. Es wird kontraproduktiv sein, also denken Sie bitte darüber nach vorsichtig, wenn Sie es verwenden.

Das Obige ist die ausführliche Anwendung der Java-Sprache in Java. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Quadratwurzel in Java Quadratwurzel in Java Aug 30, 2024 pm 04:26 PM

Leitfaden zur Quadratwurzel in Java. Hier diskutieren wir anhand eines Beispiels und seiner Code-Implementierung, wie Quadratwurzel in Java funktioniert.

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Zufallszahlengenerator in Java Zufallszahlengenerator in Java Aug 30, 2024 pm 04:27 PM

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

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

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

See all articles