Rumah > Java > javaTutorial > Operator bertitik dua (::) dalam Java

Operator bertitik dua (::) dalam Java

PHPz
Lepaskan: 2023-08-26 13:29:17
ke hadapan
1057 orang telah melayarinya

Operator bertitik dua (::) dalam Java

Di Jawa, pentadbir dua kali ganda (::), atau dipanggil pentadbir rujukan strategi, ialah elemen kuat yang dibentangkan dalam Java 8. Ia memberikan kaedah yang ringkas dan kaya untuk merujuk kepada teknik atau pembina tanpa menimbulkannya pentadbir menambah baik pada kod dan meningkatkan koheren kod, menjadikannya instrumen penting untuk pereka bentuk Dalam artikel ini, kami akan menyiasat struktur bahasa pentadbir dua kali ganda, bercakap tentang aplikasinya dan memberikan panduan kod untuk pemahaman yang lebih baik.

.

Sintaks

Pengendali titik dua bertindih terdiri daripada dua titik bertindih (::) diapit antara nama kelas atau rujukan objek dan nama kaedah. Ia digunakan sebagai notasi ringkas untuk kaedah rujukan atau pembina di Jawa.

// 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!");
   }
}
Salin selepas log masuk

Penjelasan tatabahasa

Dalam kod di atas, kami menggunakan titik gabungan utiliti yang dipanggil Pencetak untuk menentukan kelas dengan satu kaedah dinamik print(). Kelas ConsolePrinter melaksanakan titik sambungan ini dan menyediakan pelaksanaan untuk kaedah printMessage(). Dalam kelas Principal, kami mencipta contoh Printer menggunakan pengendali bertitik dua untuk merujuk kaedah printMessage() kelas ConsolePrinter. Akhir sekali, kami memanggil kaedah print() contoh pencetak, yang seterusnya memanggil kaedah printMessage().

Algoritma

  • Untuk menggunakan pengendali bertitik dua di Jawa, ikut langkah ini -

  • Tentukan antara muka berfungsi dengan kaedah abstrak tunggal.

  • Laksanakan antara muka dalam kelas dan sediakan pelaksanaan kaedah.

  • Gunakan operator bertitik dua untuk merujuk kepada kaedah atau pembina

  • Gunakan pengendali bertindih dua untuk mencipta contoh antara muka berfungsi.

  • Memanggil kaedah ini pada contoh akan memanggil kaedah atau pembina yang dirujuk.

Kaedah 1: Rujukan kaedah menggunakan operator dua kolon

Pendekatan 1 melibatkan penggunaan operator bertitik dua untuk merujuk kaedah statik kelas. Pendekatan ini berguna apabila kita ingin menghantar rujukan kaedah yang tidak bergantung pada mana-mana pembolehubah contoh.

Contoh

// 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);
   }
}
Salin selepas log masuk

Output

Result: 8
Salin selepas log masuk

Penjelasan

Kalkulator ialah antara muka berfungsi dengan kaedah abstrak kira(). Fungsi MathUtils statik add() digunakan untuk menambah dua nombor. Pengendali bertindih berganda mencipta contoh Kalkulator yang merujuk kaedah MathUtils add(). Kami memanggil kaedah pengiraan () kalkulator dengan dua nombor. Hasil keluaran konsol.

Kaedah 2: Gunakan pembolehubah contoh untuk menggunakan pengendali bertitik dua untuk rujukan kaedah

Pendekatan 2 melibatkan penggunaan pengendali bertitik dua untuk merujuk kaedah contoh objek tertentu.

Contoh

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);
   }
}
Salin selepas log masuk

Output

Alice
Bob
Salin selepas log masuk

Penjelasan

Dalam contoh ini, kami mempunyai kelas Individu dengan strategi printName() untuk mencetak nama individu. Kami mencipta senarai projek Individu dan menambah dua contoh. Menggunakan pengendali bertitik dua, kami merujuk strategi printName() kelas Individu dalam kaedah forEach() antara muka Senarai. Ini menyebabkan kaedah printName() dipanggil, mencetak nama setiap elemen dalam senarai ke konsol.

Kaedah 3: Gunakan pengendali bertitik dua untuk merujuk kepada kaedah contoh bagi mana-mana objek.

Pendekatan 3 melibatkan merujuk kaedah contoh bagi mana-mana objek sewenang-wenangnya daripada jenis tertentu menggunakan pengendali bertitik dua.

Contoh

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);
   }
}
Salin selepas log masuk

Output

Number of palindromic words: 2
Salin selepas log masuk

Penjelasan

Dalam sekerap kod ini, kelas StringUtil menguji palindrom dengan isPalindrome(). .

Pendekatan 4: Rujukan pembina menggunakan operator dua kolon.

Kaedah 4 melibatkan rujukan pembina menggunakan pengendali dua kolon.

Contoh

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>
Salin selepas log masuk

Output

Employee [name=John Doe, age=30]
Salin selepas log masuk
Penjelasan

Dalam model ini, kami mempunyai kelas Perwakilan dengan pembina yang ditentukan. Menggunakan pengendali kolon berganda, kami mencipta contoh titik interaksi fungsi Pembekal yang merujuk kepada pembina Perwakilan. Kemudian, kami memanggil kaedah get() pada contoh employeeSupplier untuk mendapatkan objek Perwakilan yang lain. Kami menetapkan nama dan umur pekerja dan mencetaknya ke konsol menggunakan kaedah toString().

Kesimpulan

Pengendali bertitik dua (::) di Java ialah elemen berkuasa yang diperkenalkan di Java 8. Ia menyediakan cara yang ringkas dan kaya untuk merujuk kaedah atau pembina tanpa memanggilnya secara langsung. Dengan menggunakan pengendali bertitik dua, kami boleh menambah baik kod, meningkatkan kebolehbacaan dan memanfaatkan faedah pengaturcaraan berfungsi dalam Java. Memahami sintaks dan kaedah penggunaan berbeza pengendali bertitik dua adalah perlu untuk setiap pembangun Java. Oleh itu, pastikan anda meneroka dan menggunakan ciri ini dalam projek Java masa hadapan anda untuk meningkatkan pengalaman pengekodan anda.

Atas ialah kandungan terperinci Operator bertitik dua (::) dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan