Saturday, November 5, 2011

Class dan method

Dari   pengelompokkan   kode­kode   dari   bagian   yang   sebelumnya,   maka   keseluruhan definisi kelas kelihatan seperti ini:

class NewLine {
public static void newLine () {
System.out.println ("");
}
public static void threeLine () {
newLine (); newLine (); newLine ();
}
public static void main (String[] args) {
System.out.println ("First line.");
threeLine ();
System.out.println ("Second line.");
}
}

Baris yang pertama menunjukkan bahwa ini adalah definisi untuk suatu kelas yang baru yang dinamakan Newline. Suatu Class adalah suatu kumpulan dari suatu method yang berelasi.   Dalam   hal   ini,   kelas   yang   bernama   Newline berisi   tiga   metoda,   yang dinamakan newLine, threeLine, dan main.

Class lain yang telah kita lihat adalah Math Kelas. Class itu berisi method yang bernama sqrt, sin, dan banyak yang lain. Ketika kita memanggil suatu fungsi matematika, kita harus   menetapkan   nama   Class   (Math)   dan   nama fungsinya.   Itulah   mengapa   sintak berbeda untuk masing­masing method built­in dan metoda yang kita tulis:

Math.pow (2.0, 10.0);
newLine ();

Statemen yang pertama memanggil method pow didalam Class Math (Yang menaikkan kekuatan argumentasi yang pertama ke argumentasi yang kedua ). Statemen yang kedua meminta method newLine metoda, Java mengasumsikan (dengan tepat) didalam Class Newlines, yang mana sedang kita tulis.

Jika anda mencoba untuk memanggil suatu method dari Class yang salah, compiler akan menghasilkan suatu kesalahan. Sebagai contoh, jika anda ketik:

pow (2.0, 10.0);

Compiler kira­kira akan mengatakan, Tidak bisa menemukan suatu method bernama pow didalam Class Newline." Jika anda sudah melihat pesan ini, anda mungkin heran mengapa compiler mencari pow didalam Class yang didefinisikan. Sekarang anda sudah tahu.

Menambahkan Metode Baru

Sejauh   ini   kita   hanya   menggunakan   metoda   yang   dibangun   dalam java,   tetapi memungkinkan untuk menambahkan metoda baru. Sebenarnya kita melihat satu metoda definisi:   main.   Method   dinamakan   main   khusus menandai   di   mana   pelaksanaan program dimulai, tetapi sintak untuk yang main adalah sama dengan definisi metoda lain:

public static void NAME ( LIST OF PARAMETERS ) {
STATEMENTS
}

Anda dapat membuat nama apapun yang anda butuhkan untuk metoda anda, kecuali nama main atau keyword java lainnya. Daftar yang menginformasikan tipe parameter,bila ada, anda harus menyediakan untuk penggunaan fungsi yang baru.

Parameter tunggal untuk main adalah String[] args, yang menunjukkan bahwa siapapun menggunakan main harus menyediakan suatu array String. Sepasang metoda   yang   pertama   yang   akan   kita   tulis   tidak   punya parameters,sehingga sintaknya kelihatan seperti ini:

public static void newLine () {
System.out.println ("");
}

Method ini dinamai newLine, dan tanda kurung yang kosong menunjukkan bahwa ia tidak mengambil parameter apapun. Method itu hanya berisi statemen tunggal, yang mencetak suatu  string kosong  yang ditandai  oleh"". Pencetakan  suatu string  dengan tidak ada huruf didalamnya tidak akan nampak bermanfaat, kecuali ingat bahwa println melompati baris yang berikutnya setelah itu mencetak, maka statemen ini mempunyai efek melompati baris yang berikutnya.

Didalam main kita dapat membuat method yang baru ini menggunakan sintak yang serupa  dengan memakai perintah Java yang sudah built­in :

public static void main (String[] args) {
System.out.println ("First line.");
newLine ();
System.out.println ("Second line.");
}

Keluaran dari program ini adalah

First line.
Second line.

Perhatikan spasi antara kedua bentuk. Akibatnya bagaimana jika kita ingin menambah spasi antara dua baris? Kita bisa memanggil method yang sama berulang­kali:

public static void main (String[] args) {
System.out.println ("First line.");
newLine ();
newLine ();
newLine ();
System.out.println ("Second line.");
}

Atau kita bisa menulis suatu metoda baru yang dinamakan threeLine yang mencetak tiga bentuk baru:

public static void threeLine () {
newLine (); newLine (); newLine ();
}
public static void main (String[] args) {
System.out.println ("First line.");
threeLine ();
System.out.println ("Second line.");
}
Anda perlu memperhatikan beberapa hal sekitar program ini:

Anda dapat memanggil prosedur yang sama berulang­kali. Sebenarnya, itu umumnya berguna bagi mekannya.

Anda   bisa   mempunyai   satu   method   memanggil   metoda   lain.   Dalam   hal   ini,   main meminta   threeLine   dan   threeLine   meminta   newLine.   Lagi­lagi   ini   umumnya bermanfaat.

Didalam threeLine saya menulis tiga statemen semua pada baris yang sama, yang mana secara   yg   sintak   benar   (ingat   bahwa   spasi   dan   baris   baru pada umumnya   tidak mengubah  arti dari  suatu  program). Di sisi lain, itu  suatu gagasan  yang baik  untuk menaruh  statemen   masing­masing   sejajar   dengan barisnya,   untuk   membuat   program anda   mudah   dibaca.   Saya   terkadang menggunakan   aturan   dalam   buku   ini   untuk menghemat ruang.

Sejauh ini, mungkin belum begitu jelas kenapa begitu berharga ini untuk menciptakan semua  metoda baru ini . sebenarnya, ada banyak pertimbangan, tetapi contoh ini hanya mempertunjukkan dua hal:
  1. Menciptakan suatu method baru memberi anda suatu kesempatan untuk memberi suatu   nama   kepada   satu   kelompok   statemen.   Method dapat   menyederhanakan   suatu program dengan menyembunyikan suatu perhitungan kompleks di belakang perintah tunggal, dan dengan penggunaan kata Bahasa Inggris sebagai pengganti kode. Lebih jelasnya , newLine atau System.Out.Println("")?
  2. Menciptakan suatu method baru yang dapat membuat suatu program yang lebih kecil dengan menghilangkan kode berulang. Sebagai contoh, bagaimana cara anda mencetak sembilan baris baru berurutan? Anda bisa memanggil method threeLine tiga kali.


Composition

Sama   halnya   dengan   fungsi   matematika,   Method   Java   dapat  composed, maksudnya anda menggunakan satu ekspresi sebagai bagian dari yang lain. Sebagai contoh, anda dapat menggunakan ekspresi manapun sebagai suatu argumentasi ke suatu metoda:

double x = Math.cos (angle + Math.PI/2);

Statemen   ini   mengambil  nilai   Math.Pi,   membaginya   dengan   dua   dan  menambahkan hasilnya   kepada   nilai   variabel   angle.   Penjumlahan  kemudian   melewatkan   suatu argumentasi untuk method cos.(ingat PI (22:7) itu adalah nama suatu variabel, bukan method , maka tidak ada argumentasi, bukan pula argumentasi yang kosong()).

Anda dapat juga mengambil satu method dan melewatkannya pada argumentasi ke lain:

double x = Math.exp (Math.log (10.0));

Didalam   Java,   log   berfungsi   selalu   menggunakan   dasar   e,   maka statemen   ini mengartikan dasar log e 10 dan kemudian menaikkan e. Hasilnya di assign ke x; saya berharap anda mengetahui apa artinya.