logo

Java statik anahtar sözcüğü

  1. Statik değişken
  2. Sayacın statik değişkensiz programı
  3. Statik değişkenli sayaç programı
  4. Statik yöntem
  5. Statik yönteme ilişkin kısıtlamalar
  6. Ana yöntem neden statik?
  7. Statik blok
  8. Bir programı main metodu olmadan çalıştırabilir miyiz?

statik anahtar kelime içinde Java esas olarak bellek yönetimi için kullanılır. Statik anahtar kelimeyi şununla uygulayabiliriz: değişkenler , yöntemler, bloklar ve iç içe geçmiş sınıflar . Statik anahtar kelime, sınıfın bir örneğinden ziyade sınıfa aittir.

kat timpf yüksekliği

Statik şunlar olabilir:

  1. Değişken (sınıf değişkeni olarak da bilinir)
  2. Yöntem (sınıf yöntemi olarak da bilinir)
  3. Engellemek
  4. İç içe geçmiş sınıf
Java'da Statik

1) Java statik değişkeni

Herhangi bir değişkeni statik olarak bildirirseniz, bu değişken statik değişken olarak bilinir.

  • Statik değişken, tüm nesnelerin ortak özelliklerine (her nesne için benzersiz olmayan) atıfta bulunmak için kullanılabilir; örneğin çalışanların şirket adı, öğrencilerin üniversite adı vb.
  • Statik değişken, sınıf yükleme sırasında sınıf alanında yalnızca bir kez bellek alır.

Statik değişkenin avantajları

Bu sizin programınızı yapar hafıza verimli (yani hafızadan tasarruf sağlar).

Sorunu statik değişken olmadan anlama

 class Student{ int rollno; String name; String college='ITS'; } 

Üniversitemde 500 öğrenci olduğunu varsayalım, artık tüm örnek veri üyeleri, nesne her oluşturulduğunda hafızaya sahip olacak. Tüm öğrencilerin kendine özgü bir yuvarlanma numarası ve adı vardır, bu nedenle örnek veri üyesi bu durumda iyidir. Burada 'kolej' herkesin ortak mülkiyetini ifade etmektedir. nesneler . Statik yaparsak bu alan hafızayı sadece bir kez alacaktır.

Java statik özelliği tüm nesnelerle paylaşılır.

Statik değişken örneği

 //Java Program to demonstrate the use of static variable class Student{ int rollno;//instance variable String name; static String college ='ITS';//static variable //constructor Student(int r, String n){ rollno = r; name = n; } //method to display the values void display (){System.out.println(rollno+' '+name+' '+college);} } //Test class to show the values of objects public class TestStaticVariable1{ public static void main(String args[]){ Student s1 = new Student(111,'Karan'); Student s2 = new Student(222,'Aryan'); //we can change the college of all objects by the single line of code //Student.college='BBDIT'; s1.display(); s2.display(); } } 
Şimdi Test Edin

Çıktı:

 111 Karan ITS 222 Aryan ITS 

Statik değişken içermeyen sayaç programı

Bu örnekte, yapıcıda artırılan count adında bir örnek değişken oluşturduk. Örnek değişken hafızayı nesne yaratıldığı sırada aldığından, her nesne örnek değişkenin kopyasına sahip olacaktır. Arttırılırsa diğer nesneleri yansıtmaz. Yani her nesne count değişkeninde 1 değerine sahip olacaktır.

bilgisayar nedir
 //Java Program to demonstrate the use of an instance variable //which get memory each time when we create an object of the class. class Counter{ int count=0;//will get memory each time when the instance is created Counter(){ count++;//incrementing value System.out.println(count); } public static void main(String args[]){ //Creating objects Counter c1=new Counter(); Counter c2=new Counter(); Counter c3=new Counter(); } } 
Şimdi Test Edin

Çıktı:

 1 1 1 

Statik değişkene göre sayaç programı

Yukarıda da belirttiğimiz gibi statik değişken hafızayı yalnızca bir kez alır, herhangi bir nesne statik değişkenin değerini değiştirirse değerini korur.

 //Java Program to illustrate the use of static variable which //is shared with all objects. class Counter2{ static int count=0;//will get memory only once and retain its value Counter2(){ count++;//incrementing the value of static variable System.out.println(count); } public static void main(String args[]){ //creating objects Counter2 c1=new Counter2(); Counter2 c2=new Counter2(); Counter2 c3=new Counter2(); } } 
Şimdi Test Edin

Çıktı:

Java'daki dizelerle karşılaştırın
 1 2 3 

2) Java statik yöntemi

Statik anahtar kelimeyi herhangi bir yöntemle uygularsanız buna statik yöntem denir.

  • Statik bir yöntem, bir sınıfın nesnesinden ziyade sınıfa aittir.
  • Statik bir yöntem, bir sınıfın örneğini oluşturmaya gerek kalmadan çağrılabilir.
  • Statik bir yöntem, statik veri üyesine erişebilir ve değerini değiştirebilir.

Statik yöntem örneği

 //Java Program to demonstrate the use of a static method. class Student{ int rollno; String name; static String college = 'ITS'; //static method to change the value of static variable static void change(){ college = 'BBDIT'; } //constructor to initialize the variable Student(int r, String n){ rollno = r; name = n; } //method to display values void display(){System.out.println(rollno+' '+name+' '+college);} } //Test class to create and display the values of object public class TestStaticMethod{ public static void main(String args[]){ Student.change();//calling change method //creating objects Student s1 = new Student(111,'Karan'); Student s2 = new Student(222,'Aryan'); Student s3 = new Student(333,'Sonoo'); //calling display method s1.display(); s2.display(); s3.display(); } } 
Şimdi Test Edin
 Output:111 Karan BBDIT 222 Aryan BBDIT 333 Sonoo BBDIT 

Normal bir hesaplama gerçekleştiren statik yöntemin başka bir örneği

 //Java Program to get the cube of a given number using the static method class Calculate{ static int cube(int x){ return x*x*x; } public static void main(String args[]){ int result=Calculate.cube(5); System.out.println(result); } } 
Şimdi Test Edin
 Output:125 

Statik yönteme ilişkin kısıtlamalar

Statik yöntem için iki ana kısıtlama vardır. Bunlar:

  1. Statik yöntem, statik olmayan veri üyesini kullanamaz veya statik olmayan yöntemi doğrudan çağıramaz.
  2. this ve super statik bağlamda kullanılamaz.
 class A{ int a=40;//non static public static void main(String args[]){ System.out.println(a); } } 
Şimdi Test Edin
 Output:Compile Time Error 

S) Java ana yöntemi neden statiktir?

Cevap) Bunun nedeni, nesnenin statik bir yöntem çağırmasına gerek olmamasıdır. Statik olmayan bir yöntem olsaydı, JVM önce bir nesne yaratır, ardından fazladan bellek tahsisi sorununa yol açacak main() yöntemini çağırır.


3) Java statik bloğu

  • Statik veri üyesini başlatmak için kullanılır.
  • Sınıf yükleme sırasında ana yöntemden önce yürütülür.

Statik blok örneği

 class A2{ static{System.out.println('static block is invoked');} public static void main(String args[]){ System.out.println('Hello main'); } } 
Şimdi Test Edin
 Output:static block is invoked Hello main 

S) Bir programı main() yöntemi olmadan çalıştırabilir miyiz?

Cevap) Hayır, yollardan biri statik bloktu, ancak JDK 1.6'ya kadar mümkündü. JDK 1.7'den bu yana, Java sınıfını Java sınıfı olmadan yürütmek mümkün değildir. ana yöntem .

 class A3{ static{ System.out.println('static block is invoked'); System.exit(0); } } 
Şimdi Test Edin

Çıktı:

javascript uyarı kutusu
 static block is invoked 

JDK 1.7 ve üzeri sürümlerden bu yana çıktı şöyle olacaktır:

 Error: Main method not found in class A3, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application