Dasar-dasar Metode Statis Java, Kelas, Variabel dan Blok
Diterbitkan: 2019-12-13
Apa itu statis di Jawa?
- Kata kunci statis dapat digunakan dengan kelas, variabel, metode dan blok.
- Anggota statis bukan milik salah satu contoh tertentu.
- Anggota statis hanya milik kelas.
- Setelah Anda membuat anggota statis, Anda dapat mengaksesnya tanpa objek apa pun.
Apakah Anda memiliki pertanyaan di bawah ini?
- Bisakah Anda menuliskan praktik terbaik metode statis Java?
- Apa metode statis Java di antarmuka?
- Punya pertanyaan tentang metode statis Java vs singleton?
- Metode statis Java vs kinerja metode instan
- Metode dan variabel statis Java
- Metode statis Java vs non statis
- Metode statis Java di kelas abstrak
Kata kunci static dapat digunakan dalam 3 skenario:
- Variabel statis
- Metode statis
- Blok kode statis.
variabel statis (Kata Kunci (“statis” = Variabel Kelas)

Dalam Java Variabel dapat dideklarasikan dengan kata kunci “ static
”.
Contoh: static int y = 0;
Ketika sebuah variabel dideklarasikan dengan kata kunci static
, itu disebut class variable
. Semua instance berbagi salinan variabel yang sama. Variabel kelas dapat diakses langsung dengan kelas, tanpa perlu membuat instance.
Tidak Ada Kata Kunci “statis” = Variabel Instance
Tanpa static keyword
, itu disebut instance variable
, dan setiap turunan kelas memiliki salinan variabelnya sendiri.
Contoh: static int crunchify_variable_name
;
- Variabel statis dibagi di antara semua instance kelas.
- Salah satu alasan utama Anda membutuhkannya ketika Anda ingin melakukan banyak manajemen memori.
- Untuk semua variabel statis – hanya akan ada satu salinan yang tersedia untuk Anda gunakan.
- Anda benar-benar tidak memerlukan objek kelas untuk mengakses variabel statis.
- Langsung pakai saja. Anda tidak perlu
object.StaticVariable
- Langsung pakai saja. Anda tidak perlu
Apa itu blok Statis?
Blok statis, adalah blok pernyataan di dalam Java class
yang akan dieksekusi ketika kelas pertama kali dimuat ke dalam JVM.
Bisakah Anda mengganti metode pribadi di Jawa?
- Yah, tidak. Metode pribadi tidak dapat diganti karena tidak tersedia untuk digunakan di luar kelas.
Mengapa kita tidak bisa mengganti metode statis di Jawa?
- Metode statis juga tidak dapat diganti karena merupakan bagian dari kelas daripada objek
Bisakah kita mengakses variabel non statis dalam konteks statis?
- Untuk dapat mengakses variabel non statis dari metode statis Anda, mereka harus menjadi variabel anggota statis.
Detail tentang metode Statis
- Bagaimana cara mengidentifikasi? Cek ini dulu. Apakah Anda memerlukan objek kelas untuk mengakses metode statis? Jika Anda tidak membutuhkan objek maka itu adalah metode Statis.
- Anda perlu menggunakan kata kunci statis untuk menentukan metode statis
- Lebih baik gunakan kata kunci statis jika metode itu tidak akan berubah di seluruh proyek Anda saat runtime.
- Anda tidak dapat mengganti metode statis.
Mari kita lihat Contoh di bawah ini:
Contoh 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
package crunchify . com . tutorials ; /** * @author Crunchify.com * */ public class CrunchifyStaticMethodMain { public static void main ( String args [ ] ) { String [ ] crunchifyObject = new String [ 3 ] ; crunchifyObject = new String [ ] { "Google" , "Facebook" , "Crunchify" } ; // creating instnace CrunchifyStaticMethodMain object = new CrunchifyStaticMethodMain ( ) ; object . crunchifyTestMethod ( crunchifyObject ) ; } /* * Check this out: Let's understand little more... * * Here method crunchifyTestMethod is defined as * public void crunchifyTestMethod(String[]) * so it is "non-static". It can't be called unless it is called on an instance of CrunchifyStaticMethodMain. * * If you declared your method as * public static void crunchifyTestMethod(int[]) * then you could call: CrunchifyStaticMethodMain.crunchifyTestMethod(arr); within main without having created an instance for it. */ public void crunchifyTestMethod ( String [ ] crunchifyObject ) { for ( int i = 0 ; i < crunchifyObject . length ; i ++ ) System . out . println ( crunchifyObject [ i ] ) ; } } |
Simak penjelasannya di above code block
. Kita harus membuat instance Kelas untuk mengakses metode non-statis.
Contoh-2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
package com . crunchify . tutorials ; /** * @author Crunchify.com */ public class CrunchifyStaticDeclaration { // 1st static block static { System . out . println ( "\nI'm static block 1.." ) ; setTestString ( "This is static block's String" ) ; setTestValue ( 2 ) ; } // 2nd static blocks in same class static { System . out . println ( "\nI'm static block 2.." ) ; } // static variable example private static int testValue ; // kept private to control it's value through setter public int getTestValue ( ) { return testValue ; } // static method example public static void setTestValue ( int testValue ) { if ( testValue > 0 ) CrunchifyStaticDeclaration . testValue = testValue ; System . out . println ( "setTestValue method: " + testValue ) ; } public static String testString ; /** * @return the testString */ public static String getTestString ( ) { return testString ; } /** * @param testString the testString to set */ public static void setTestString ( String testString ) { CrunchifyStaticDeclaration . testString = testString ; System . out . println ( "setTestString method: " + testString ) ; } // static util method public static int subValue ( int i , int . . . js ) { int sum = i ; for ( int x : js ) sum -= x ; return sum ; } } |
Sekarang mari kita lakukan tes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
package com . crunchify . tutorials ; /** * @author Crunchify.com */ public class CrunchifyStaticExample { public static void main ( String [ ] args ) { CrunchifyStaticDeclaration . setTestValue ( 5 ) ; // non-private static variables can be accessed with class name CrunchifyStaticDeclaration . testString = "\nAssigning testString a value" ; CrunchifyStaticDeclaration csd = new CrunchifyStaticDeclaration ( ) ; System . out . println ( csd . getTestString ( ) ) ; // class and instance static variables are same System . out . print ( "\nCheck if Class and Instance Static Variables are same: " ) ; System . out . println ( CrunchifyStaticDeclaration . testString == csd . testString ) ; System . out . println ( "Why? Because: CrunchifyStaticDeclaration.testString == csd.testString" ) ; } } |
Keluaran:
1 2 3 4 5 6 7 8 9 10 11 |
I 'm static block 1.. setTestString method: This is static block' s String setTestValue method : 2 I ' m static block 2.. setTestValue method : 5 Assigning testString a value Check if Class and Instance Static Variables are same : true Why ? Because : CrunchifyStaticDeclaration . testString == csd . testString |
Saya harap Anda benar-benar mendapatkan informasi yang baik tentang metode Statis, variabel dan blok.

Beri tahu kami jika Anda menghadapi masalah saat menjalankan program di atas atau mengalami masalah dalam memahami kata kunci Statis di Java.