logo

Java statikus kulcsszó

  1. Statikus változó
  2. A számláló programja statikus változó nélkül
  3. A számláló programja statikus változóval
  4. Statikus módszer
  5. A statikus módszer korlátozásai
  6. Miért statikus a fő módszer?
  7. Statikus blokk
  8. Futtathatunk-e programot fő metódus nélkül?

A statikus kulcsszó ban ben Jáva elsősorban memóriakezelésre használják. Statikus kulcsszót alkalmazhatunk változók , módszerek, blokkok és beágyazott osztályok . A statikus kulcsszó az osztályhoz tartozik, mint az osztály példánya.

bash karakterlánc elválasztóval osztott

A statikus lehet:

  1. Változó (más néven osztályváltozó)
  2. Method (más néven osztálymetódus)
  3. Blokk
  4. Beágyazott osztály
Statikus Java nyelven

1) Java statikus változó

Ha bármely változót statikusnak deklarál, azt statikus változónak nevezzük.

  • A statikus változóval hivatkozhatunk az összes objektum közös tulajdonára (ami nem minden objektum egyedi), például az alkalmazottak cégnevére, a hallgatók főiskolai nevére stb.
  • A statikus változó csak egyszer kap memóriát az osztályterületen az osztály betöltésekor.

A statikus változó előnyei

Ez teszi a programját memória hatékony (azaz memóriát takarít meg).

A probléma megértése statikus változó nélkül

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

Tegyük fel, hogy 500 diák van a főiskolán, most minden példány adattag memóriát kap minden alkalommal, amikor az objektum létrejön. Minden tanulónak megvan a maga egyedi rollno-ja és neve, így ilyen esetben jó a példány adattag. Itt a „főiskola” mindenki közös tulajdonára vonatkozik tárgyakat . Ha statikussá tesszük, ez a mező csak egyszer kapja meg a memóriát.

A Java statikus tulajdonsága meg van osztva minden objektummal.

Példa statikus változóra

 //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(); } } 
Tesztelje most

Kimenet:

 111 Karan ITS 222 Aryan ITS 

A számláló programja statikus változó nélkül

Ebben a példában létrehoztunk egy count nevű példányváltozót, amely a konstruktorban növekszik. Mivel a példányváltozó az objektum létrehozásakor kapja meg a memóriát, minden objektum rendelkezik a példányváltozó másolatával. Ha növeli, akkor nem tükrözi a többi objektumot. Tehát minden objektum értéke 1 lesz a count változóban.

 //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(); } } 
Tesztelje most

Kimenet:

római számjegy 1-től 100-ig
 1 1 1 

Számláló program statikus változó alapján

Ahogy fentebb említettük, a statikus változó csak egyszer kapja meg a memóriát, ha bármely objektum megváltoztatja a statikus változó értékét, akkor megtartja értékét.

 //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(); } } 
Tesztelje most

Kimenet:

 1 2 3 

2) Java statikus módszer

Ha statikus kulcsszót alkalmaz bármilyen módszerrel, azt statikus módszernek nevezik.

  • A statikus metódus inkább az osztályhoz tartozik, mint az osztály objektumához.
  • A statikus metódus meghívható anélkül, hogy egy osztály példányát kellene létrehozni.
  • A statikus metódusok hozzáférhetnek a statikus adattagokhoz, és megváltoztathatják annak értékét.

Példa statikus módszerre

 //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(); } } 
Tesztelje most
 Output:111 Karan BBDIT 222 Aryan BBDIT 333 Sonoo BBDIT 

Egy másik példa egy statikus módszerre, amely normál számítást végez

 //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); } } 
Tesztelje most
 Output:125 

A statikus módszer korlátozásai

A statikus módszerre két fő korlátozás vonatkozik. Ők:

java kapcsold össze a mysql-lel
  1. A statikus metódus nem használhat nem statikus adattagot, és nem hívhatja meg közvetlenül a nem statikus metódust.
  2. ez és a szuper nem használható statikus környezetben.
 class A{ int a=40;//non static public static void main(String args[]){ System.out.println(a); } } 
Tesztelje most
 Output:Compile Time Error 

K) Miért statikus a Java fő metódus?

Válasz) Ez azért van, mert az objektumnak nem kell statikus metódust hívnia. Ha nem statikus módszerről lenne szó, JVM először létrehoz egy objektumot, majd meghívja a main() metódust, ami az extra memóriafoglalás problémájához vezet.


3) Java statikus blokk

  • A statikus adattag inicializálására szolgál.
  • Az osztálybetöltéskor a fő metódus előtt kerül végrehajtásra.

Példa statikus blokkra

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

K) Futtathatunk-e programot main() metódus nélkül?

Válasz) Nem, az egyik módszer a statikus blokk volt, de ez lehetséges volt a JDK 1.6-ig. A JDK 1.7 óta nem lehet Java osztályt végrehajtani a nélkül fő módszer .

 class A3{ static{ System.out.println('static block is invoked'); System.exit(0); } } 
Tesztelje most

Kimenet:

python generál uuid
 static block is invoked 

A JDK 1.7 és újabb verziója óta a kimenet a következő lenne:

 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