Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Menguasai Antarmuka Java: Konsep, Implementasi, dan Praktik Terbaik

Antarmuka Java Dijelaskan

Antarmuka Java mendefinisikan kontrak yang harus dipatuhi oleh kelas yang mengimplementasikannya. Mereka memungkinkan abstraksi, pewarisan ganda, dan mempromosikan arsitektur yang bersih dan modular.

Mendefinisikan Antarmuka

Sebuah antarmuka adalah tipe yang sepenuhnya abstrak. Semua metodenya secara implisit public abstract, dan semua field-nya public static final. Ia dideklarasikan dengan kata kunci interface:

interface Language { void getType(); void getVersion(); }

Di sini, Language adalah antarmuka yang berisi dua metode abstrak.

Mengimplementasikan Antarmuka

Antarmuka tidak dapat diinstantiasi. Kelas mengimplementasikannya menggunakan kata kunci implements dan menyediakan badan konkret untuk semua metode abstrak.

Contoh 1: Antarmuka Polygon

interface Polygon { void getArea(int length, int breadth); } class Rectangle implements Polygon { @Override public void getArea(int length, int breadth) { System.out.println("Luas persegi panjang adalah " + (length * breadth)); } } class Main { public static void main(String[] args) { Rectangle r = new Rectangle(); r.getArea(5, 6); } }

Output:

Luas persegi panjang adalah 30

Contoh 2: Antarmuka Language

interface Language { void getName(String name); } class ProgrammingLanguage implements Language { @Override public void getName(String name) { System.out.println("Bahasa Pemrograman: " + name); } } class Main { public static void main(String[] args) { ProgrammingLanguage lang = new ProgrammingLanguage(); lang.getName("Java"); } }

Output:

Bahasa Pemrograman: Java

Mengimplementasikan Beberapa Antarmuka

Sebuah kelas dapat mengimplementasikan beberapa antarmuka:

interface A { /* members */ } interface B { /* members */ } class C implements A, B { /* implementations */ }

Memperluas Antarmuka

Antarmuka dapat memperluas antarmuka lain menggunakan extends:

interface Line { /* members */ } interface Polygon extends Line { /* members */ }

Sebuah kelas yang mengimplementasikan Polygon harus menyediakan metode untuk anggota Line dan Polygon.

Memperluas Beberapa Antarmuka

interface A { /* ... */ } interface B { /* ... */ } interface C extends A, B { /* ... */ }

Mengapa Menggunakan Antarmuka?

Contoh konstanta implisit:

interface Language { String TYPE = "bahasa pemrograman"; // implicitly public static final void getName(); // implicitly public }

Metode Default (Java 8+)

Java 8 memperkenalkan metode default, yang memungkinkan antarmuka untuk berisi badan metode konkret:

default void getSides() { System.out.println("Saya bisa mendapatkan sisi poligon."); }

Metode default memungkinkan kompatibilitas mundur saat menambahkan metode baru ke antarmuka tanpa merusak implementasi yang ada.

Contoh: Penggunaan Metode Default

interface Polygon { void getArea(); default void getSides() { System.out.println("Saya bisa mendapatkan sisi poligon."); } } class Rectangle implements Polygon { @Override public void getArea() { int length = 6; int breadth = 5; int area = length * breadth; System.out.println("Luas persegi panjang adalah " + area); } @Override public void getSides() { System.out.println("Saya memiliki 4 sisi."); } } class Square implements Polygon { @Override public void getArea() { int length = 5; int area = length * length; System.out.println("Luas persegi adalah " + area); } } class Main { public static void main(String[] args) { Rectangle r = new Rectangle(); r.getArea(); r.getSides(); Square s = new Square(); s.getArea(); s.getSides(); } }

Output:

Luas persegi panjang adalah 30 Saya memiliki 4 sisi. Luas persegi adalah 25 Saya bisa mendapatkan sisi poligon.

Metode Statis dan Private (Java 9+)

Antarmuka sekarang dapat berisi metode static, yang dapat dipanggil melalui nama antarmuka:

interface Polygon { static void helper() { /* ... */ } } Polygon.helper();

Metode private menyediakan utilitas internal untuk metode antarmuka lain, memastikan enkapsulasi.

Contoh Praktis: Perhitungan Poligon

import java.lang.Math; interface Polygon { void getArea(); default void getPerimeter(int... sides) { int perimeter = 0; for (int side : sides) perimeter += side; System.out.println("Keliling: " + perimeter); } } class Triangle implements Polygon { private final int a, b, c; private double area; Triangle(int a, int b, int c) { this.a = a; this.b = b; this.c = c; } @Override public void getArea() { double s = (a + b + c) / 2.0; area = Math.sqrt(s * (s - a) * (s - b) * (s - c)); System.out.println("Luas: " + area); } } class Main { public static void main(String[] args) { Triangle t = new Triangle(2, 3, 4); t.getArea(); t.getPerimeter(2, 3, 4); } }

Output:

Luas: 2.9047375096555625 Keliling: 9

Dalam contoh ini, antarmuka Polygon menyediakan metode getPerimeter yang dapat digunakan kembali, sementara setiap bentuk mengimplementasikan perhitungan luasnya sendiri.

java

  1. Menguasai Antarmuka C#: Definisi, Implementasi, dan Kasus Penggunaan Praktis
  2. Menguasai Operator Java: Tipe, Sintaks, & Contoh Praktis
  3. Komentar Java: Tipe, Penggunaan, dan Best Practices
  4. Menguasai Java Try-with-Resources: Manajemen Sumber Daya Otomatis Dijelaskan
  5. Anotasi Java Dijelaskan: Jenis, Penempatan, dan Contoh Praktis
  6. Menguasai Antarmuka NavigableSet Java: Navigasi, Pengurutan, dan Contoh Praktis
  7. Menguasai Java Lambda Expressions: Dari Dasar hingga Stream API
  8. Antarmuka vs Kelas Abstrakt di Java: Cara Memilih Abstraksi yang Tepat
  9. Memahami Antarmuka Java: Definisi, Penggunaan, dan Praktik Terbaik
  10. Java 9 Private Interface Methods: Meningkatkan Enkapsulasi dan Penggunaan Ulang Kode