suchen
HeimJavajavaLernprogrammDoppelpunkt-Operator (::) in Java

Doppelpunkt-Operator (::) in Java

Aug 26, 2023 pm 01:29 PM
java编程双冒号运算符

Doppelpunkt-Operator (::) in Java

In Java ist der zweifache Doppelpunkt (::)-Administrator, auch Strategie-Referenzadministrator genannt, ein starkes Element, das in Java 8 vorgestellt wird. Er bietet eine prägnante und reichhaltige Methode, um auf Techniken oder Konstruktoren hinzuweisen, ohne sie heraufzubeschwören Der Administrator verbessert den Code und verbessert die Codekohärenz, was ihn zu einem wichtigen Instrument für Designer macht. In diesem Artikel werden wir die Sprachstruktur des Doppelpunkt-Administrators untersuchen, über seine Anwendungen sprechen und Code-Anleitungen zum besseren Verständnis geben.

Syntax

Der Doppelpunkt-Operator besteht aus zwei Doppelpunkten (::), die zwischen dem Klassennamen oder der Objektreferenz und dem Methodennamen liegen. Es wird als Kurzschreibweise für die Referenzierung von Methoden oder Konstruktoren in Java verwendet.

// A functional interface with a single abstract method
interface Printer {
   void print(String message);
}

// A class that implements the Printer interface
class ConsolePrinter {
   public static void printMessage(String message) {
      System.out.println(message);
   }
}

public class Main {
   public static void main(String[] args) {
      Printer printer = ConsolePrinter::printMessage;
      printer.print("Hello, World!");
   }
}

Grammatikerklärung

Im obigen Code verwenden wir einen Dienstprogramm-Join-Point namens Printer, um eine Klasse mit einer einzigen dynamischen Methode print() zu definieren. Die ConsolePrinter-Klasse implementiert diesen Verbindungspunkt und stellt eine Implementierung für die printMessage()-Methode bereit. In der Principal-Klasse haben wir eine Druckerinstanz mit dem Doppelpunktoperator erstellt, um auf die printMessage()-Methode der ConsolePrinter-Klasse zu verweisen. Abschließend rufen wir die print()-Methode der Druckerinstanz auf, die wiederum die printMessage()-Methode aufruft.

Algorithmus

  • Um den Doppelpunkt-Operator in Java zu verwenden, befolgen Sie diese Schritte -

  • Definieren Sie eine funktionale Schnittstelle mit einer einzigen abstrakten Methode.

  • Implementieren Sie die Schnittstelle in einer Klasse und stellen Sie die Implementierung der Methode bereit.

  • Verwenden Sie den Doppelpunkt-Operator, um auf die Methode oder den Konstruktor zu verweisen

  • Verwenden Sie den Doppelpunkt-Operator, um Instanzen funktionaler Schnittstellen zu erstellen.

  • Der Aufruf dieser Methode für eine Instanz ruft die referenzierte Methode oder den Konstruktor auf.

Methode 1: Methodenreferenz mit Doppelpunkt-Operator

Ansatz 1 beinhaltet die Verwendung des Doppelpunktoperators, um auf eine statische Methode einer Klasse zu verweisen. Dieser Ansatz ist nützlich, wenn wir eine Methodenreferenz übergeben möchten, die nicht von Instanzvariablen abhängt.

Beispiel

// A functional interface with a single abstract method
interface Calculator {
   int calculate(int a, int b);
}

class MathUtils {
   public static int add(int a, int b) {
      return a + b;
   }
}

public class Main {
   public static void main(String[] args) {
      Calculator calculator = MathUtils::add;
      int result = calculator.calculate(5, 3);
      System.out.println("Result: " + result);
   }
}

Ausgabe

Result: 8

Erklärung

Calculator ist eine funktionale Schnittstelle mit einer abstrakten Methode berechne(). Die statische MathUtils-Funktion add() wird zum Addieren zweier Zahlen verwendet. Der Doppelpunktoperator erstellt eine Calculator-Instanz, die auf die add()-Methode von MathUtils verweist. Wir rufen die Methode „compute()“ des Rechners mit zwei Zahlen auf. Ergebnisse der Konsolenausgabe.

Methode 2: Verwenden Sie Instanzvariablen, um den Doppelpunktoperator für Methodenreferenzen zu verwenden

Ansatz 2 beinhaltet die Verwendung des Doppelpunkt-Operators, um auf eine Instanzmethode eines bestimmten Objekts zu verweisen.

Beispiel

import java.util.ArrayList;
import java.util.List;

class Person {
   private String name;

   public Person(String name) {
      this.name = name;
   }

   public void printName() {
      System.out.println(name);
   }
}

public class Main {
   public static void main(String[] args) {
      List<Person> persons = new ArrayList<>();
      persons.add(new Person("Alice"));
      persons.add(new Person("Bob"));

      persons.forEach(Person::printName);
   }
}

Ausgabe

Alice
Bob

Erklärung

In diesem Beispiel haben wir eine Individual-Klasse mit einer printName()-Strategie zum Drucken des Namens einer Person. Wir haben eine Liste einzelner Projekte erstellt und zwei Beispiele hinzugefügt. Mit dem Doppelpunktoperator verweisen wir auf die printName()-Strategie der Individual-Klasse in der forEach()-Methode der List-Schnittstelle. Dadurch wird die Methode printName() aufgerufen, die den Namen jedes Elements in der Liste auf der Konsole ausgibt.

Methode 3: Verwenden Sie den Doppelpunkt-Operator, um auf die Instanzmethode eines beliebigen Objekts zu verweisen.

Ansatz 3 beinhaltet die Referenzierung einer Instanzmethode eines beliebigen Objekts eines bestimmten Typs mithilfe des Doppelpunktoperators.

Beispiel

import java.util.Arrays;
import java.util.List;

class StringUtil {
   public boolean isPalindrome(String s) {
      String reversed = new StringBuilder(s).reverse().toString();
      return s.equals(reversed);
   }
}

public class Main {
   public static void main(String[] args) {
      List<String> words = Arrays.asList("level", "hello", "radar", "world");

      StringUtil stringUtil = new StringUtil();
      long count = words.stream().filter(stringUtil::isPalindrome).count();

      System.out.println("Number of palindromic words: " + count);
   }
}

Ausgabe

Number of palindromic words: 2

Erklärung

In diesem Codeausschnitt testet eine StringUtil-Klasse mit isPalindrome() eine Liste von Wörtern und verwendet einen Stream, um palindromische Wörter mithilfe der vom Doppelpunkt-Kontrollzentrum empfohlenen Methode zu sortieren .

Ansatz 4: Konstruktorreferenzierung mit Doppelpunkt-Operator.

Methode 4 beinhaltet die Referenzierung des Konstruktors mithilfe des Doppelpunkt-Operators.

Beispiel

import java.util.function.Supplier;

class Employee {
   public String name;
   public int age;

   public Employee() {
      // Default constructor
   }

   public Employee(String name, int age) {
      this.name = name;
      this.age = age;
   }

   public String toString() {
      return "Employee [name=" + name + ", age=" + age + "]";
   }
}

public class Main {
   public static void main(String[] args) {
      Supplier<employee> employeeSupplier = Employee::new;
      Employee employee = employeeSupplier.get();

      employee.name = "John Doe";
      employee.age = 30;

      System.out.println(employee);
   }
}
</employee>

Ausgabe

Employee [name=John Doe, age=30]

Erklärung

In diesem Modell haben wir eine repräsentative Klasse mit einem definierten Konstruktor. Mithilfe des Doppelpunktoperators erstellen wir eine Instanz des Interaktionspunkts der Provider-Funktion, der auf den Representative-Konstruktor verweist. Anschließend rufen wir die Methode get() für die Instanz „employeeSupplier“ auf, um ein weiteres Representative-Objekt abzurufen. Wir legen den Namen und das Alter des Mitarbeiters fest und geben sie mithilfe der toString()-Methode auf der Konsole aus.

Fazit

Der Doppelpunkt-Operator (::) in Java ist ein leistungsstarkes Element, das in Java 8 eingeführt wurde. Es bietet eine übersichtliche und umfassende Möglichkeit, auf Methoden oder Konstruktoren zu verweisen, ohne sie direkt aufzurufen. Durch die Verwendung des Doppelpunktoperators können wir den Code verbessern, die Lesbarkeit erhöhen und die Vorteile der funktionalen Programmierung in Java nutzen. Jeder Java-Entwickler muss die Syntax und die verschiedenen Verwendungsmethoden des Doppelpunktoperators verstehen. Erkunden Sie diese Funktion also unbedingt und nutzen Sie sie in Ihren zukünftigen Java-Projekten, um Ihr Programmiererlebnis zu verbessern.

Das obige ist der detaillierte Inhalt vonDoppelpunkt-Operator (::) in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:tutorialspoint. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Welche Aspekte der Java-Entwicklung sind plattformabhängig?Welche Aspekte der Java-Entwicklung sind plattformabhängig?Apr 26, 2025 am 12:19 AM

Javadevelopmentisnotentirelyplatform-unabhängig vonDuetoseveralfaktoren

Gibt es Leistungsunterschiede beim Ausführen von Java -Code auf verschiedenen Plattformen? Warum?Gibt es Leistungsunterschiede beim Ausführen von Java -Code auf verschiedenen Plattformen? Warum?Apr 26, 2025 am 12:15 AM

Der Java -Code hat Leistungsunterschiede, wenn Sie auf verschiedenen Plattformen ausgeführt werden. 1) Die Implementierungs- und Optimierungsstrategien von JVM sind unterschiedlich wie Oraclejdk und OpenJDK. 2) Die Eigenschaften des Betriebssystems wie Speicherverwaltung und Thread -Planung beeinflussen auch die Leistung. 3) Die Leistung kann durch Auswahl des entsprechenden JVM, Anpassung der JVM -Parameter und der Codeoptimierung verbessert werden.

Was sind einige Einschränkungen für die Unabhängigkeit der Plattform von Java?Was sind einige Einschränkungen für die Unabhängigkeit der Plattform von Java?Apr 26, 2025 am 12:10 AM

Java'splattformIndependenceHasLimitationssinformanceOverhead, Version CompatibilityISSues, Herausforderungen mit uneinhaltigem Integration, plattformspezifische Features und JvMinstallation/Wartung.

Erklären Sie den Unterschied zwischen der Unabhängigkeit der Plattform und der plattformübergreifenden Entwicklung.Erklären Sie den Unterschied zwischen der Unabhängigkeit der Plattform und der plattformübergreifenden Entwicklung.Apr 26, 2025 am 12:08 AM

PlattformIndependenCealLowsProgramstorunonanyPlatformWithoutModification, während der Plattformentwicklungspflicht-spezifische Anpassungen

Wie wirkt sich Just-in-Time (JIT) -Kompilation auf die Leistung von Java und die Plattformunabhängigkeit aus?Wie wirkt sich Just-in-Time (JIT) -Kompilation auf die Leistung von Java und die Plattformunabhängigkeit aus?Apr 26, 2025 am 12:02 AM

JitcompilationInjavaenHancesPerformanceWhilemaintainingPlattformindependence.1) ItdynamicalTranslatesByteCodeIntonativemachinecodeatruntime, optimierungFrequentusedCode.2) thejvmremainSpatform-unabhängig, und theAnamejavaaplicationTiclicationTiclicationTiclicationTiclicationTiclicationTiclicationToricticationTiclicationToryticleuneneen

Warum ist Java eine beliebte Wahl für die Entwicklung plattformübergreifender Desktop-Anwendungen?Warum ist Java eine beliebte Wahl für die Entwicklung plattformübergreifender Desktop-Anwendungen?Apr 25, 2025 am 12:23 AM

Javaispopularforcross-plattformdesktopapplicationsduetoits "writeonce, runanywhere" philosophy.1) itusesBytecodethatrunsonanyjvm-tequippedplatform.2) BibliothekenlikeswingandjavafxHelPcreeTsuokninguis.3) itsextsextSesiveSivestandsupports-Lyuis.3) itsextsextSesiveSivestandsupports-Lyuis.3) itsextsextSextsenSivestandsupports-Capo- und --3) itsextsextSextSesiveSivestandsuppandSpommes-Capo-

Besprechen Sie Situationen, in denen das Schreiben von Plattform-spezifischer Code in Java erforderlich ist.Besprechen Sie Situationen, in denen das Schreiben von Plattform-spezifischer Code in Java erforderlich ist.Apr 25, 2025 am 12:22 AM

Gründe für das Schreiben von plattformspezifischem Code in Java sind Zugriff auf bestimmte Betriebssystemfunktionen, die Interaktion mit spezifischer Hardware und die Optimierung der Leistung. 1) Verwenden Sie JNA oder JNI, um auf die Windows -Registrierung zuzugreifen. 2) mit Linux-spezifischen Hardware-Treibern über JNI zu interagieren; 3) Verwenden Sie Metal, um die Spiele auf MacOS über JNI zu optimieren. Das Schreiben von Plattform-spezifischer Code kann jedoch die Portabilität des Codes beeinflussen, die Komplexität erhöhen und potenziell Leistungsaufwand und Sicherheitsrisiken darstellen.

Was sind die zukünftigen Trends in der Java -Entwicklung, die sich auf die Unabhängigkeit der Plattform beziehen?Was sind die zukünftigen Trends in der Java -Entwicklung, die sich auf die Unabhängigkeit der Plattform beziehen?Apr 25, 2025 am 12:12 AM

Java wird die Unabhängigkeit der Plattform durch Cloud-native Anwendungen, die Bereitstellung von Multi-Plattform und die Interoperabilität von Cloud-nativen verbessern. 1) Native Cloud -Anwendungen verwenden Graalvm und Quarkus, um die Startgeschwindigkeit zu erhöhen. 2) Java wird auf eingebettete Geräte, mobile Geräte und Quantencomputer ausgedehnt. 3) Durch Graalvm wird sich Java nahtlos in Sprachen wie Python und JavaScript integrieren, um die Interoperabilität der Cross-Sprache zu verbessern.

See all articles

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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor