Kamis, 22 Desember 2016

Overriding Pada Java

Dalam bab sebelumnya, kita berbicara tentang superclasses dan subclass. Jika kelas mewarisi metode dari superclass-nya, maka ada kesempatan untuk mengganti metode yang diberikan bahwa itu tidak ditandai final.
Manfaat utama adalah: kemampuan untuk menentukan perilaku yang khusus untuk jenis subclass, yang berarti subclass dapat menerapkan metode kelas induk berdasarkan kebutuhannya.
Dalam hal berorientasi objek, utama berarti mengesampingkan fungsi dari metode yang ada.

Contoh

Mari kita lihat sebuah contoh.
class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      System.out.println("Dogs can walk and run");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal a = new Animal();   // Animal reference and object
      Animal b = new Dog();   // Animal reference but Dog object

      a.move();   // runs the method in Animal class
      b.move();   // runs the method in Dog class
   }
}
Ini akan menghasilkan hasil sebagai berikut -

Keluaran

Animals can move
Dogs can walk and run
Dalam contoh di atas, Anda dapat melihat bahwa meskipun b adalah jenis hewan itu berjalan metode bergerak di kelas Dog. Alasan untuk ini adalah: Dalam waktu kompilasi, cek dibuat pada jenis referensi. Namun, dalam runtime, JVM angka keluar jenis objek dan akan menjalankan metode yang dimiliki objek tertentu.
Oleh karena itu, dalam contoh di atas, program ini akan mengkompilasi benar sejak kelas Animal memiliki metode bergerak. Kemudian, pada runtime, ia menjalankan metode khusus untuk objek.
Perhatikan contoh berikut -

Contoh

class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      System.out.println("Dogs can walk and run");
   }
   public void bark() {
      System.out.println("Dogs can bark");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal a = new Animal();   // Animal reference and object
      Animal b = new Dog();   // Animal reference but Dog object

      a.move();   // runs the method in Animal class
      b.move();   // runs the method in Dog class
      b.bark();
   }
}
Ini akan menghasilkan hasil sebagai berikut -

Keluaran

TestDog.java:26: error: cannot find symbol
      b.bark();
       ^
  symbol:   method bark()
  location: variable b of type Animal
1 error
Program ini akan melemparkan kesalahan waktu kompilasi sejak b tipe referensi Animal tidak memiliki metode dengan nama kulit.

Aturan untuk Metode Melebihi

  • Daftar argumen harus persis sama dengan metode ditimpa.
  • Jenis kembali harus sama atau subtipe dari jenis kembali dideklarasikan pada metode ditimpa asli dalam superclass.
  • Tingkat akses tidak bisa lebih ketat daripada tingkat akses metode ditimpa ini. Sebagai contoh: Jika metode superclass dinyatakan publik maka metode overridding di sub class dapat tidak baik pribadi atau dilindungi.
  • contoh metode dapat diganti hanya jika mereka diwarisi oleh subclass.
  • Sebuah metode dideklarasikan final tidak dapat diganti.
  • Sebuah metode dinyatakan statis tidak dapat diganti namun dapat kembali dinyatakan.
  • Jika metode tidak dapat diwariskan, maka tidak dapat diganti.
  • Sebuah subclass dalam paket yang sama seperti superclass contoh ini dapat menimpa metode superclass yang tidak dinyatakan pribadi atau akhir.
  • Sebuah subclass dalam paket yang berbeda hanya dapat menimpa metode non-akhir dinyatakan publik atau dilindungi.
  • Sebuah metode utama dapat membuang apapun pengecualian hapus centang, terlepas dari apakah metode ditimpa melempar pengecualian atau tidak. Namun, metode utama seharusnya tidak membuang pengecualian yang baru atau lebih luas daripada yang dinyatakan oleh metode ditimpa diperiksa. Metode utama dapat membuang pengecualian sempit atau lebih sedikit dibandingkan dengan metode ditimpa.
  • Konstruktor tidak dapat diganti.

Menggunakan Kata Kunci yang super

Saat menjalankan versi superclass dari metode ditimpa dengan yang super kata kunci yang digunakan.

Contoh

class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      super.move();   // invokes the super class method
      System.out.println("Dogs can walk and run");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal b = new Dog();   // Animal reference but Dog object
      b.move();   // runs the method in Dog class
   }
}
Ini akan menghasilkan hasil sebagai berikut -

Keluaran

Animals can move
Dogs can walk and run

Sintaks Dasar Java

Ketika kita mempertimbangkan program Java, dapat didefinisikan sebagai kumpulan dari objek yang berkomunikasi melalui memohon metode masing-masing. Mari kita secara singkat melihat ke dalam apa yang dilakukan kelas, objek, metode, dan contoh variabel berarti.
  • Obyek - Objek memiliki negara dan perilaku. Contoh: Seekor anjing memiliki negara - warna, nama, berkembang biak serta perilaku seperti mengibaskan ekor mereka, menggonggong, makan. Sebuah objek adalah instance dari kelas.
  • Kelas - Sebuah kelas dapat didefinisikan sebagai template / blueprint yang menggambarkan perilaku / menyatakan bahwa objek dari jenis mendukung.
  • Metode - Metode A pada dasarnya adalah perilaku. Sebuah kelas dapat berisi banyak metode. Hal ini dalam metode mana logika ditulis, data dimanipulasi dan semua tindakan yang dilakukan.
  • Variabel Instance - Setiap objek memiliki seperangkat unik dari variabel instance. Negara obyek diciptakan oleh nilai-nilai ditugaskan untuk variabel instan tersebut.

Program Java Pertama

Mari kita lihat kode sederhana yang akan mencetak kata Hello World .

Contoh

public class MyFirstJavaProgram {

   /* This is my first java program.
    * This will print 'Hello World' as the output
    */

   public static void main(String []args) {
      System.out.println("Hello World"); // prints Hello World
   }
}
Mari kita lihat bagaimana untuk menyimpan file, mengkompilasi, dan menjalankan program. Ikuti langkah-langkah berikutnya -
  • Buka notepad dan tambahkan kode seperti di atas.
  • Simpan file as: MyFirstJavaProgram.java.
  • Buka jendela command prompt dan pergi ke direktori tempat Anda menyimpan kelas. Menganggap itu C: \.
  • Jenis 'javac MyFirstJavaProgram.java' dan tekan enter untuk mengkompilasi kode Anda. Jika tidak ada kesalahan dalam kode Anda, command prompt akan membawa Anda ke baris berikutnya (Asumsi: Variabel path diatur).
  • Sekarang, type 'java MyFirstJavaProgram' to run your program.
  • Anda akan dapat melihat 'Hello World' dicetak pada jendela.

Keluaran

C:\> javac MyFirstJavaProgram.java
C:\> java MyFirstJavaProgram 
Hello World

dasar Sintaks

Tentang program Java, sangat penting untuk diingat hal-hal berikut.
  • Kasus Sensitivitas - Java adalah case sensitive, yang berarti identifierHello dan halo akan memiliki arti yang berbeda di Jawa.
  • Nama kelas - Untuk semua nama kelas huruf pertama harus dalam Kasus Atas. Jika beberapa kata yang digunakan untuk membentuk nama kelas, huruf pertama setiap kata dalam harus dalam Kasus Atas.
    Example: class MyFirstJavaClass
  • Nama metode - Semua nama metode harus dimulai dengan huruf Bawah Kasus. Jika beberapa kata yang digunakan untuk membentuk nama metode, maka huruf pertama setiap kata dalam harus dalam Kasus Atas.
    Contoh: public void myMethodName ()
  • Program File Name - Nama file program sebenarnya yang harus sesuai dengan nama kelas.
    Ketika menyimpan file, Anda harus menyimpannya menggunakan nama kelas (Ingat Java adalah case sensitive) dan menambahkan '.java' ke akhir nama (jika nama file dan nama kelas tidak cocok, program anda tidak akan mengkompilasi ).
    Contoh: Asumsikan 'MyFirstJavaProgram' adalah nama kelas. Maka file tersebut harus disimpan sebagai 'MyFirstJavaProgram.java'
  • public static void main (String args []) - Java program pengolah dimulai dari metode main () yang merupakan bagian wajib dari setiap program Java.

Java Identifier

Semua komponen Java memerlukan nama. Nama yang digunakan untuk kelas, variabel, dan metode yang disebut pengidentifikasi .
Di Jawa, ada beberapa hal yang perlu diingat tentang pengidentifikasi. Mereka adalah sebagai berikut -
  • Semua pengidentifikasi harus dimulai dengan huruf (A sampai Z atau untuk z), karakter mata uang ($) atau garis bawah (_).
  • Setelah karakter pertama identifier dapat memiliki kombinasi karakter.
  • Sebuah kata kunci tidak dapat digunakan sebagai identifier.
  • Yang paling penting, pengidentifikasi bersifat case sensitif.
  • Contoh pengidentifikasi hukum: usia, $ gaji, _value, __1_value.
  • Contoh pengidentifikasi ilegal: 123abc, -salary.

Java Pengubah

Seperti bahasa lainnya, adalah mungkin untuk memodifikasi kelas, metode, dll, dengan menggunakan pengubah. Ada dua kategori pengubah -
  • Pengubah akses - default, publik, dilindungi, swasta
  • Non-akses Pengubah - akhir, abstrak, strictfp
Kami akan melihat ke dalam rincian lebih lanjut tentang pengubah pada bagian berikutnya.

Variabel Java

Berikut ini adalah jenis variabel di Jawa -
  • Variabel lokal
  • Variabel kelas (Variabel Statis)
  • Misalnya Variabel (Variabel Non-static)

Java Array

Array adalah objek yang menyimpan beberapa variabel dari jenis yang sama. Namun, array itu sendiri adalah obyek di heap. Kami akan melihat bagaimana untuk menyatakan, membangun, dan menginisialisasi dalam bab-bab yang akan datang.

Java enum

Enum diperkenalkan di Jawa 5.0. Enum membatasi variabel untuk memiliki salah satu dari hanya beberapa nilai-nilai yang telah ditetapkan. Nilai-nilai dalam daftar enumerasi ini disebut enum.
Dengan menggunakan enum adalah mungkin untuk mengurangi jumlah bug dalam kode Anda.
Sebagai contoh, jika kita mempertimbangkan aplikasi untuk toko jus segar, akan ada kemungkinan untuk membatasi ukuran kaca kecil, menengah, dan besar. Ini akan memastikan bahwa tidak akan mengizinkan siapa pun untuk memesan ukuran selain kecil, menengah, maupun besar.

Contoh

class FreshJuice {
   enum FreshJuiceSize{ SMALL, MEDIUM, LARGE }
   FreshJuiceSize size;
}

public class FreshJuiceTest {

   public static void main(String args[]) {
      FreshJuice juice = new FreshJuice();
      juice.size = FreshJuice.FreshJuiceSize.MEDIUM ;
      System.out.println("Size: " + juice.size);
   }
}
Contoh di atas akan menghasilkan hasil sebagai berikut -

Keluaran

Size: MEDIUM
Catatan - Enum dapat dinyatakan sebagai milik mereka atau di dalam kelas. Metode, variabel, konstruktor dapat didefinisikan dalam enum juga.

Java Keywords

Daftar berikut menunjukkan kata-kata tersedia di Jawa. Kata-kata dicadangkan tidak boleh digunakan sebagai konstan atau variabel atau nama pengenal lainnya.
abstractassertbooleanbreak
bytecasecatchchar
classconstcontinuedefault
dodoubleelseenum
extendsfinalfinallyfloat
forgotoifimplements
importinstanceofintinterface
longnativenewpackage
privateprotectedpublicreturn
shortstaticstrictfpsuper
switchsynchronizedthisthrow
throwstransienttryvoid
volatilewhile

Comments in Java

Java mendukung single-line dan komentar multi-garis yang sangat mirip dengan C dan C ++. Semua karakter yang tersedia dalam komentar apapun diabaikan oleh compiler Java.

Contoh

public class MyFirstJavaProgram {

   /* This is my first java program.
    * This will print 'Hello World' as the output
    * This is an example of multi-line comments.
    */

   public static void main(String []args) {
      // This is an example of single line comment
      /* This is also an example of single line comment. */
      System.out.println("Hello World");
   }
}

Keluaran

Hello World

Menggunakan Garis Kosong

Sebuah garis yang hanya berisi ruang putih, mungkin dengan komentar, dikenal sebagai garis kosong, dan Jawa benar-benar mengabaikan itu.

Warisan

Di Jawa, kelas dapat diturunkan dari kelas. Pada dasarnya, jika Anda perlu untuk membuat kelas baru dan di sini sudah merupakan kelas yang memiliki beberapa kode yang Anda butuhkan, maka dimungkinkan untuk menurunkan kelas baru Anda dari kode yang sudah ada.
Konsep ini memungkinkan Anda untuk menggunakan kembali bidang dan metode dari kelas yang ada tanpa harus menulis ulang kode di kelas baru. Dalam skenario ini, kelas yang ada disebut superclass dan kelas turunan disebut subclass .

Antarmuka

Dalam bahasa Jawa, interface dapat didefinisikan sebagai kontrak antara objek pada bagaimana berkomunikasi dengan satu sama lain. Antarmuka memainkan peran penting ketika datang ke konsep warisan.
Sebuah antarmuka mendefinisikan metode, berasal kelas (subclass) harus menggunakan. Namun pelaksanaan metode benar-benar terserah subclass.