Overriding

Posted by roberto in Java on August 31st, 2010 |  No Comments »

Overriding
Yaitu suatu proses dimana menuliskan method yang sama (termasuk Jumlah parameter dan tipenya sama) tetapi pengimplementasiannya(tujuan penggunaan) berbeda, hal inilah yang membedakannya dengan overloading, walaupun overloading jg menuliskan method yang sama. Proses overriding biasanya terjadi pada kelas turunan.

contohnya:

class Lingkaran {
double r;
double Luas(double r) {
return 3.14 * this.r * this.r;
}
}
class Tabung extends Lingkaran {
double t;

//ovrriding luas() (method dan parameter sama)
double Luas(double r) {
return 3.14 * this.r * this.r * this.t;
}
}

Thread bagian 2

Posted by roberto in Java on August 4th, 2010 |  No Comments »

2. Extending Kelas Thread

Prosedur untuk menciptakan threads berdasarkan mengextend Thread adalah sbb:

  1. 1. Sebuah kelas mengekstend kelas Thread selanjutnya mengoverride method run() dari kelas Thread untuk menentukan kode yang dieksekusikan oleh thread.
  2. 2. Subclass ini boleh memanggil sebuah konsrtruktor Thread secear eksplisit di konstruktornya sendiri untuk menginisialisasi thread tersebut, menggunakan pemanggilan super().
  3. 3. Method start() yang diwariskan dari kelas Thread djalankan pada objek dari kelas untuk membuat thread memenuhi syarat dijalankan.

Dibawah ini adalah sebuah program yang mengilustrasikan dan menjalankan threads dengan mengextend kelas Thread yang merupakan cara lain dari pengimplementasian interface Runnable.

class XThread extends Thread {

XThread() {
}
XThread(String threadName) {
super(threadName); // Initialize thread.
System.out.println(this);
start();
}
public void run() {
//Display info about this particular thread
System.out.println(Thread.currentThread().getName());
}
}

public class ThreadExample {

public static void main(String[] args) {
Thread thread1 = new Thread(new XThread(), “thread1”);
Thread thread2 = new Thread(new XThread(), “thread2”);
//The below 2 threads are assigned default names
Thread thread3 = new XThread();
Thread thread4 = new XThread();
Thread thread5 = new XThread(“thread5”);
//Start the threads
thread1.start();
thread2.start();
thread3.start();
thread4.start();
try {
//The sleep() method is invoked on the main thread to cause a one second delay.
Thread.currentThread().sleep(1000);
}
catch (InterruptedException e) {
}
//Display info about the main thread
System.out.println(Thread.currentThread());
}
}

Output

Thread[thread5,5,main]
thread1
thread5
thread2
Thread-3
Thread-2
Thread[main,5,main]

Thread bagian 1

Posted by roberto in Java on August 4th, 2010 |  No Comments »

Ada 2 cara untuk menciptakan thread di dalam Java yaitu:
+ Mengimplementasikan Runnabla interface (java.lang.Runnable)
+ MengExtend kelas Thread (java.lang.Thread)

1. Mengimpelentasikan Runnable interface.

Signature:
public interface Runnable {

void run();

}

Salah satu cara untuk menciptakan sebuah thread di dalam java adalah mengimplementasikan Runnable Interface dan menginstansiasikan sebuah objek dari kelaas tersebut. Kita perlu mengoverride method run() ke kelas kita yang merupakan method yang kita butuhkan utk diimplementasikan. Method run() memiliki logika dari thread itu.
Berikut prosedur untuk menciptakan threads berdasarkan Runnable interface:

  1. 1. Sebuah kelas mengimplementasikan Runnable interface, menyediakan method run() yg akan di eksekusi oleh thread. Sebuah objek dari kelas ini adalah sebuah objek Runnable.
  2. 2. Sebuah objek dari kelas Thread diciptakan dengan melewatkan sebuah objek Runnable sebagai argumen utk konstruktor Thread. Sekarang objek Thread memiliki sebuah objek Runnable yang mengimpelementasikan method run().
  3. 3. Method start() dijalankan pada objek Thread diciptakan pada step sebelumnya. Method start() mengembalikan segera setelah sebuah thread telah diciptakan.
  4. 4. Thread berakhir ketika method run() berakhir, baik dengan penyelasaian normal atau dengan throwing sebuah exception yang tidak ditangkap.

Dibawah ini adalah sebuah program yang mengilustrasikan dan menjalankan threads menggunakan interface runnable sebagai contoh lain dari extending kelas Thread. Untuk memulai thread kita membutuhkan utk menjalankan method start() di objek kita.

package com.latihan.example;

class RunnableThread implements Runnable{

Thread runner;
public RunnableThread() {
}

public RunnableThread(String threadName) {
runner = new Thread(this, threadName);   // (1) Create a new thread.
System.out.println(“Horaaa -> “+runner.getName());
runner.start();                          // (2) Start the thread.
}

public void run(){
//Display info about this particular thread
System.out.println(Thread.currentThread());
}

}

public class RunnableExample{

public static void main(String[] args){

Thread thread1 =  new Thread(new RunnableThread(),”thread1″);
Thread thread2 =  new Thread(new RunnableThread(),”thread2”);
RunnableThread thread = new RunnableThread(“thread wakwkawak”);

//Start the threads
thread1.start();
thread2.start();
try{
//delay for one second
Thread.currentThread().sleep(5000);
}
catch(InterruptedException e){}
//Display info about the main thread
System.out.println(Thread.currentThread());

}
}

Output

thread3
Thread[thread1,5,main]
Thread[thread2,5,main]
Thread[thread3,5,main]
Thread[main,5,main]