Apa yang dimaksud dengan 'public static void' di Jawa?

149

Apa public static voidartinya di Jawa?

Saya sedang dalam proses belajar. Dalam semua contoh dalam buku yang saya kerjakan public static voidberasal sebelum metode apa pun yang sedang digunakan atau dibuat. Apa artinya ini?

David
sumber

Jawaban:

230

Ada tiga hal yang sangat berbeda:

publicberarti bahwa metode ini terlihat dan dapat dipanggil dari objek lain dari tipe lain. Alternatif lain adalah private, protected, packagedan package-private. Lihat di sini untuk detail lebih lanjut.

staticberarti bahwa metode dikaitkan dengan kelas, bukan turunan khusus (objek) dari kelas itu. Ini berarti bahwa Anda dapat memanggil metode statis tanpa membuat objek kelas.

voidberarti bahwa metode ini tidak memiliki nilai balik. Jika metode mengembalikan intAnda akan menulis intbukan void.

Kombinasi ketiganya paling umum dilihat pada mainmetode yang akan menyertakan sebagian besar tutorial.

Mark Byers
sumber
12
Karena si penanya masih belajar: urutan kata kunci ini juga penting. Semua pengubah pertama ( public, static, private, dll) maka tipe kembali ( voiddalam hal ini).
Pindatjuh
1
@markbyres ok saya mengerti Anda menjawab, saya tahu metode utama harus statis tetapi saya tidak tahu mengapa itu publik ?? apakah ada alasan khusus untuk itu ??
hardik
9
lingkungan java runtime harus memanggil metode utama untuk memulai aplikasi Anda. itu tidak bisa melakukan itu ketika itu bersifat pribadi.
Philipp
44

Tiga kata tersebut memiliki makna ortogonal.

public berarti bahwa metode ini akan terlihat dari kelas di paket lain.

staticberarti bahwa metode ini tidak dilampirkan ke contoh spesifik, dan tidak memiliki " this". Ini lebih atau kurang fungsi.

voidadalah tipe pengembalian. Ini berarti "metode ini tidak menghasilkan apa-apa".

Thomas Pornin
sumber
22

Kata kunci publik adalah specifier akses, yang memungkinkan programmer untuk mengontrol visibilitas anggota kelas. Ketika seorang anggota kelas didahului oleh publik, maka anggota tersebut dapat diakses dengan kode di luar kelas yang dideklarasikan. (Kebalikan dari publik adalah pribadi, yang mencegah anggota untuk digunakan oleh kode yang ditentukan di luar kelasnya.)

Dalam hal ini, main( )harus dinyatakan sebagai publik, karena harus dipanggil dengan kode di luar kelasnya ketika program dimulai.

Kata kunci statis memungkinkan main( )untuk dipanggil tanpa harus membuat instance instance kelas tertentu. Ini perlu karena main( )dipanggil oleh Java interpreter sebelum objek dibuat.

Void kata kunci hanya memberi tahu kompiler yang main( )tidak mengembalikan nilai. Seperti yang akan Anda lihat, metode juga dapat mengembalikan nilai.

utsav
sumber
18

Artinya:

  • public - dapat dipanggil dari mana saja
  • static - tidak memiliki status objek apa pun, jadi Anda dapat memanggilnya tanpa membuat instance objek
  • void - tidak mengembalikan apa pun

Anda akan berpikir bahwa kurangnya pengembalian berarti tidak menghasilkan banyak, tetapi mungkin menyimpan hal-hal dalam database, misalnya.

Paul Tomblin
sumber
4

Itu artinya tiga hal.

Pertama publicberarti bahwa objek lain dapat mengaksesnya.

static berarti bahwa kelas di mana ia berada tidak harus dipakai terlebih dahulu sebelum fungsi dapat dipanggil.

void berarti bahwa fungsi tersebut tidak mengembalikan nilai.

Karena Anda baru belajar, jangan khawatir tentang yang pertama terlalu banyak sampai Anda belajar tentang kelas, dan yang ketiga tidak akan terlalu berarti sampai Anda mulai menulis fungsi (selain yang utama itu).

Saran terbaik yang saya dapatkan ketika belajar program, dan yang saya sampaikan kepada Anda, jangan khawatir tentang detail kecil yang tidak Anda pahami segera. Dapatkan ikhtisar luas dasar-dasar, lalu kembali dan khawatir tentang detailnya. Alasannya adalah bahwa Anda harus menggunakan beberapa hal (seperti public static void) dalam program pertama Anda yang tidak dapat dijelaskan dengan baik tanpa mengajari Anda tentang banyak hal lainnya terlebih dahulu. Jadi, untuk saat ini, terimalah saja demikian, dan lanjutkan. Anda akan segera memahaminya.

Harun
sumber
3

Mempertimbangkan kelas tingkat atas yang khas. Hanya pengubah akses publik dan tidak ada pengubah yang dapat digunakan di tingkat atas sehingga Anda akan melihat publik atau Anda tidak akan melihat pengubah akses sama sekali.

`static`` digunakan karena Anda mungkin tidak perlu membuat objek aktual di tingkat atas (tapi kadang-kadang Anda ingin jadi Anda tidak selalu melihat / menggunakan statis. Ada alasan lain mengapa Anda tidak akan menyertakan statis juga, tetapi ini adalah yang khas di tingkat atas.)

voiddigunakan karena biasanya Anda tidak akan mengembalikan nilai dari tingkat atas (kelas). (Kadang-kadang Anda ingin mengembalikan nilai selain NULLjadi batal tidak selalu digunakan baik terutama dalam kasus ketika Anda telah menyatakan, menginisialisasi objek di tingkat atas yang Anda tetapkan beberapa nilai).

Penafian: Saya sendiri pemula, jadi jika jawaban ini salah, tolong jangan gantung saya. Pada siang hari saya seorang perekrut teknologi bukan pengembang; coding adalah hobi saya. Juga, saya selalu terbuka untuk kritik membangun dan senang belajar, jadi silakan tunjukkan kesalahan apa pun.

David Leak, New York, NY
sumber
2
  • public berarti Anda dapat mengakses kelas dari mana saja di kelas / objek atau di luar paket atau kelas
  • static berarti konstan di mana blok pernyataan yang digunakan hanya 1 kali
  • void berarti tidak ada tipe pengembalian
Saleem Bhayo
sumber
6
Pertanyaan ini telah dibahas secara memadai, mungkin mencoba menjawab pertanyaan baru alih-alih menjawab pertanyaan lama dengan informasi rangkap. Terima kasih.
Kev
Ini seperti menjelaskan tentang gajah. Orang mencoba menjelaskannya tergantung di mana dia berdiri. Saya senang dengan semua jawaban di atas, tetapi hanya ingin tahu bagaimana orang bisa mengatakan "Beli buku java".
Sulung Nugroho
2

Public - Berarti kelas (program) tersedia untuk digunakan oleh kelas lain.

Static- membuat kelas. Dapat juga diterapkan pada variabel dan metode, menjadikannya metode / variabel kelas alih-alih hanya lokal ke instance kelas tertentu.

Void- ini berarti bahwa tidak ada produk yang dikembalikan ketika kelas menyelesaikan pemrosesan. Bandingkan ini dengan kelas pembantu yang memberikan nilai kembali ke kelas utama, ini beroperasi seperti fungsi; ini tidak memiliki kekosongan dalam deklarasi.

pengguna647200
sumber
0

staticberarti bahwa metode dikaitkan dengan kelas, bukan turunan khusus (objek) dari kelas itu. Ini berarti bahwa Anda dapat memanggil metode statis tanpa membuat objek kelas. Karena penggunaan statickata kunci main()adalah metode pertama Anda untuk dipanggil .. statictidak perlu objek apa pun untuk instance ... jadi, main( )dipanggil oleh Java interpreter sebelum objek dibuat.

mahi
sumber