1. Akses pengubah

Sebelum setiap metode, pemrogram dapat menentukan apa yang disebut pengubah akses. Ini termasuk kata kunci berikut: public, protected, private.

Pengubah akses ini memungkinkan Anda membatasi akses kelas lain ke suatu metode.

Misalnya, jika Anda menulis privatekata kunci sebelum deklarasi metode, maka metode tersebut hanya dapat dipanggil dari kelas yang sama dengan yang dideklarasikan. Kata publickunci memungkinkan akses ke metode yang ditandai dari metode apa pun dari kelas apa pun.

Ada total 3 pengubah seperti itu, tetapi ada 4 jenis akses ke suatu metode. Ini karena tidak adanya pengubah akses juga berarti sesuatu.

Akses dari...
Pengubah Kelas apa saja Kelas anak Paketnya Kelasnya
public Ya Ya Ya Ya
protected TIDAK Ya Ya Ya
tidak ada pengubah TIDAK TIDAK Ya Ya
private TIDAK TIDAK TIDAK Ya

1. publicpengubah

Metode (atau variabel, atau kelas) yang ditandai dengan publicpengubah dapat diakses dari mana saja di dalam program . Ini adalah tingkat keterbukaan tertinggi — tidak ada batasan.

2. privatepengubah

Metode (atau variabel, atau kelas) yang ditandai dengan privatepengubah hanya dapat diakses dari kelas yang sama di mana ia dideklarasikan . Untuk semua kelas lain, metode yang ditandai (atau variabel) tidak terlihat. Seolah-olah itu tidak ada. Ini adalah tingkat pembatasan tertinggi — hanya untuk kelasnya sendiri.

3. Tidak ada pengubah (pengubah default)

Jika metode (atau variabel) tidak ditandai dengan pengubah apapun, maka dianggap memiliki 'pengubah default'. Variabel atau metode dengan pengubah itu (yaitu tidak ada sama sekali) dapat dilihat oleh semua kelas dalam paket tempat mereka dideklarasikan . Dan hanya untuk mereka. Pengubah ini juga terkadang disebut package-private, mengisyaratkan bahwa akses ke variabel dan metode terbuka untuk seluruh paket tempat kelasnya berada.

4. protectedpengubah

Jika suatu metode ditandai dengan protectedpengubah, maka metode tersebut dapat diakses dari kelas yang sama, paket yang sama, dan keturunan (kelas yang mewarisi kelas tempat metode tersebut dideklarasikan). Kami akan menganalisis topik ini lebih detail dalam pencarian Java Core.

Anda dapat menggunakan publicpengubah pada semua metode Anda (serta semua kelas dan variabel kelas Anda) hingga Anda mencapai akhir pencarian Sintaks Java. Anda akan membutuhkan pengubah lainnya saat kita mulai aktif mempelajari OOP.

Mengapa pengubah akses diperlukan?

Mereka menjadi penting untuk proyek besar yang ditulis oleh puluhan dan ratusan programmer pada saat yang bersamaan.

Terkadang ada situasi ketika seorang programmer ingin membagi metode yang terlalu besar menjadi beberapa bagian dan memindahkan sebagian kode ke dalam metode pembantu. Tetapi pada saat yang sama, dia tidak ingin pemrogram lain memanggil metode pembantu ini, karena kode yang sesuai mungkin tidak berfungsi dengan benar.

Jadi mereka membuat pengubah akses ini. Jika Anda menandai metode pembantu dengan kata private , maka tidak ada kode selain kelas Anda yang dapat melihat metode pembantu Anda.



2. statickata kunci

Kata statickunci membuat metode menjadi statis. Kita akan melihat apa artinya nanti. Untuk saat ini, ingat saja beberapa fakta tentang metode statis.

Fakta 1. Metode statis tidak dilampirkan ke objek apa pun , melainkan milik kelas tempat ia dideklarasikan. Untuk memanggil metode statis, Anda perlu menulis:

ClassName.MethodName()

Contoh metode statis:

Nama kelas Nama metode statis
Thread.sleep() Thread sleep()
Math.abs() Math abs()
Arrays.sort() Arrays sort()

Nama kelas sebelum nama metode statis dapat dihilangkan jika Anda memanggil metode statis dari dalam kelasnya. Inilah mengapa Anda tidak perlu menulis Solutionsebelum nama dari setiap metode statis yang dipanggil.

Fakta 2. Metode statis tidak dapat mengakses metode non-statis dari kelasnya sendiri. Metode statis hanya dapat mengakses metode statis. Akibatnya, kami mendeklarasikan semua metode yang ingin kami panggil dari mainmetode statis.

Mengapa? Anda akan dapat menjawab sendiri pertanyaan ini saat mulai mempelajari OOP dan memahami cara kerja metode statis.



3. throwskata kunci

Ada kata kunci lain yang mungkin pernah Anda lihat dalam deklarasi metode — throwskata kunci. Tidak seperti pengubah akses dan statickata kunci, kata kunci ini ditempatkan setelah parameter metode:

public static Type name(parameters) throws Exception
{
  method body
}

Kami akan mempertimbangkan arti tepatnya nanti ketika kami mempelajari pengecualian.

Tetapi untuk menyentuhnya secara dangkal, kita dapat mengatakan bahwa metode yang ditandai dengan kata kunci throws dapat membuang kesalahan (pengecualian), yang berarti turunan dari kelas Exception (dan kelas yang mewarisinya). Jika beberapa jenis kesalahan yang berbeda dapat terjadi di kelas, maka Anda perlu membuat daftar masing-masing kesalahan yang dipisahkan dengan koma.


4. mainmetode

Baris di mana sebuah metode dideklarasikan, yang berisi semua pengubah, akan mempengaruhi bagaimana metode ini dipanggil dari kelas dan metode lain. Ini memengaruhi jenis hasil yang akan dikembalikan metode dan menunjukkan kesalahan apa yang mungkin terjadi saat dijalankan.

Baris seperti itu disebut deklarasi metode dan memiliki format umum berikut:

access modifier static Type name(parameters) throws exceptions
Format umum deklarasi metode

Di mana access modifiers diganti dengan public, protected, private, atau tidak sama sekali;

jika metodenya statis, maka statickata kunci muncul (tidak ada untuk metode non-statis)

Typeadalah jenis nilai pengembalian ( voidjika tidak ada hasil)

Sekarang Anda mungkin mengerti apa arti semua kata kunci dalam deklarasi metode main:

public static void main(String[] args) throws Exception
Mendeklarasikan mainmetode

Akses ke main()metode dimungkinkan dari kelas mana pun, seperti yang ditunjukkan oleh publickata kunci.

Metode ini statis, sehingga dapat disebut secara eksplisit sebagai Solution.main().

Metode maintidak mengembalikan hasil apa pun. Jenis pengembaliannya adalah void(tanpa jenis).

Metode mainmengambil argumen(!): array string. Dan nama parameter argsmenyarankan 'argumen' di benak kita. Saat program dimulai, Anda bisa memberikannya argumen — sebuah array string. Mereka akan dimuat dalam args array dalam main()metode.

Kesalahan tidak tertangani seperti Exception(atau turunannya) dapat terjadi dalam main()metode.