Knowladge Is Free

Catatan Kuliah Teknik Informatika dan lain-lain

Java Interface

Antarmuka ( Interface Java)

Sebuah antarmuka dalam bahasa pemrograman Java adalah jenis abstrak yang digunakan untuk menentukan sebuah antarmuka (dalam arti umum istilah) bahwa kelas harus menerapkan. Interface dideklarasikan menggunakan antarmuka kata kunci, dan hanya mengandung metode tanda tangan dan deklarasi konstanta (deklarasi variabel yang dinyatakan sebagai statis dan final). Sebuah antarmuka mungkin tidak pernah mengandung definisi metode.
Interface tidak bisa dipakai, melainkan diimplementasikan. Sebuah kelas yang mengimplementasikan antarmuka harus menerapkan semua metode yang dijelaskan dalam antarmuka, atau menjadi kelas abstrak. Referensi objek di Jawa dapat ditentukan untuk menjadi tipe antarmuka; dalam hal ini, mereka baik harus nol, atau terikat ke objek yang mengimplementasikan antarmuka. 
Salah satu manfaat dari menggunakan antarmuka adalah bahwa mereka mensimulasikan beberapa warisan. Semua kelas di Jawa harus memiliki tepat satu kelas dasar, satu-satunya pengecualian yang java.lang.Object (kelas akar jenis sistem Jawa);multiple inheritance kelas tidak diperbolehkan. 
Untuk menjelaskan interface , kita akan bermain bingo dan untuk ini kita akan membuat 20 kartu bingo dengan 15 angka di masing-masing dari mereka. 

Pertama, kita membuat kelas utama dengan ArrayList baru Bingo Cards. Setelah menambahkan masing-masing kartu ke dalam daftar, kita mencetaknya untuk menghibur.
package com.latihan.tutorial16;

import java.util.ArrayList;

public class Main {
public static void main(String[] args) {
 ArrayList<BingoCard> bingoList = new ArrayList<BingoCard>();
 
 for (int i = 0; i < 20; i++) {
  BingoCard bingo=new BingoCard();
  bingoList.add(bingo);
  bingo.syso();
 }
}
}
Di kelas "BingoCard", kami membuat yang baru array int dengan 15 posisi. Setelah menciptakan itu, konstruktor dipanggil dan kita menggunakan objek Acak untuk mengundi nomor. 
Saya kemudian menggunakan untuk untuk iterate atas 15 posisi dari array dan dalam setiap loop saya menambahkan nomor, diundi antara angka 0-99.

Jadi kita mengundi nomor, kita memasukkan mereka dalam array int "bingo", sehingga mereka disimpan dalam sebuah variabel instance dari "BingoCard" dan setiap kali metode "syso" disebut, kita sebut metode "toString ()".

Method "toString",  atas semua array int "bingo", concatenating masing-masing dari mereka dengan yang lain dan mencetak mereka untuk menghibur.
package com.latihan.tutorial16;

import java.util.Random;

public class BingoCard {
 int[] bingo = new int[15];

 public BingoCard() {
  Random random = new Random();
  for (int i = 0; i < bingo.length; i++) {
   bingo[i] = random.nextInt(100);
  }
 }

 public int[] getBingo() {
  return bingo;
 }

 public void setBingo(int[] bingo) {
  this.bingo = bingo;
 }

 @Override
 public String toString() {
  String s = "[";
  for (int i = 0; i < bingo.length; i++) {
   s = s + bingo[i] + ",";
  }
  return s + "]";

 }

 public void syso() {
  System.out.println(this.toString());
 }

}
Konstruktor dari kelas "BingoCard1" memiliki filter untuk menghindari nomor diulang dalam kartu bingo kami. Ini merupakan peningkatan dalam kaitannya dengan kelas "BingoCard".
package com.latihan.tutorial16;

import java.util.Random;

public class BingoCard1 {
 int[] bingo = new int[15];

 public BingoCard1() {
  Random random = new Random();
  for (int i = 0; i < bingo.length; i++) {
   bingo[i] = random.nextInt(100);
   if (isRepeated(i)) {
    i--;
   }
  }
 }

 private boolean isRepeated(int i) {
  for (int j = 0; j < i; j++) {
   if (bingo[i] == bingo[j]) {
    return true;
   }
  }
  return false;
 }

 public int[] getBingo() {
  return bingo;
 }

 public void setBingo(int[] bingo) {
  this.bingo = bingo;
 }

 @Override
 public String toString() {
  String s = "[";
  for (int i = 0; i < bingo.length; i++) {
   s = s + bingo[i] + ",";
  }
  return s + "]";

 }

 public void toConsole() {
  System.out.println(this.toString());
 }

}
BingoCard2 memiliki peningkatan lain; dengan metode printoToConsole () , hal itu akan menyingkirkan koma terakhir.
package com.latihan.tutorial16;

import java.util.Random;

public class BingoCard2 {
 int[] bingo = new int[15];

 public BingoCard2() {
  Random random = new Random();
  for (int i = 0; i < bingo.length; i++) {
   bingo[i] = random.nextInt(100);
  }
 }

 public int[] getBingo() {
  return bingo;
 }

 public void setBingo(int[] bingo) {
  this.bingo = bingo;
 }


 public void printoToConsole() {
  System.out.print("[");
  for (int i = 0; i < bingo.length; i++) {
   System.out.print(bingo[i]);
   if (i + 1 < bingo.length) {
    System.out.print(",");

   }
  }
  System.out.println("]");
 }

}
Setiap kali kita membuat perbaikan kita harus mengubah banyak kode di kelas utama. Hal ini dapat menjadi masalah dalam program dengan ribuan kelas. Untuk menghindari hal ini kita mendefinisikan interface;
package com.latihan.tutorial16;

public interface IBingoCard {

 void syso();

}
Dan sekarang kita membuat semua kelas BingoCard mengimplementasikan interface IBingoCard dan metodenya;
package com.latihan.tutorial16;

import java.util.Random;

public class BingoCard implements IBingoCard {
 int[] bingo = new int[15];

 public BingoCard() {
  Random random = new Random();
  for (int i = 0; i < bingo.length; i++) {
   bingo[i] = random.nextInt(100);
  }
 }

 public int[] getBingo() {
  return bingo;
 }

 public void setBingo(int[] bingo) {
  this.bingo = bingo;
 }

 @Override
 public String toString() {
  String s = "[";
  for (int i = 0; i < bingo.length; i++) {
   s = s + bingo[i] + ",";
  }
  return s + "]";

 }

 /* (non-Javadoc)
  * @see com.edu4java.tutorial16.IBingoCard#syso()
  */
 @Override
 public void syso() {
  System.out.println(this.toString());
 }

}
package com.latihan.tutorial16;

import java.util.Random;

public class BingoCard1 implements IBingoCard{
 int[] bingo = new int[15];

 public BingoCard1() {
  Random random = new Random();
  for (int i = 0; i < bingo.length; i++) {
   bingo[i] = random.nextInt(100);
   if (isRepeated(i)) {
    i--;
   }
  }
 }

 private boolean isRepeated(int i) {
  for (int j = 0; j < i; j++) {
   if (bingo[i] == bingo[j]) {
    return true;
   }
  }
  return false;
 }

 public int[] getBingo() {
  return bingo;
 }

 public void setBingo(int[] bingo) {
  this.bingo = bingo;
 }

 @Override
 public String toString() {
  String s = "[";
  for (int i = 0; i < bingo.length; i++) {
   s = s + bingo[i] + ",";
  }
  return s + "]";

 }


 @Override
 public void syso() {
  System.out.println(this.toString());
  
 }

}
package com.latihan.tutorial16;

import java.util.Random;

public class BingoCard2 implements IBingoCard {
 int[] bingo = new int[15];

 public BingoCard2() {
  Random random = new Random();
  for (int i = 0; i < bingo.length; i++) {
   bingo[i] = random.nextInt(100);
  }
 }

 public int[] getBingo() {
  return bingo;
 }

 public void setBingo(int[] bingo) {
  this.bingo = bingo;
 }

 @Override
 public void syso() {
  System.out.print("[");
  for (int i = 0; i < bingo.length; i++) {
   System.out.print(bingo[i]);
   if (i + 1 < bingo.length) {
    System.out.print(",");

   }
  }
  System.out.println("]");

 }

}
Akhirnya, kita menggunakan interface ini di kelas utama. Kita dapat menggunakan misalnya BingoCard2 dan kami hanya harus mengubahnya hanya dalam satu tempat;
package com.latihan.tutorial16;

import java.util.ArrayList;

public class Main {
public static void main(String[] args) {
 ArrayList<IBingoCard> bingoList = new ArrayList<IBingoCard>();
 
 for (int i = 0; i < 20; i++) {
  IBingoCard bingo=new BingoCard2();
  bingoList.add(bingo);
  bingo.syso();
 }
}
}
Share this article :
+
Previous
Next Post »
0 Komentar untuk "Java Interface"

 
Copyright © 2014 Knowladge Is Free - All Rights Reserved - DMCA
Template By Kunci Dunia