Java-yň işleýşi we Java-yň kod gurluşyna düşünmek - 2-nji bölüm


Iň soňky ýazgymyzda “Java näme we Java-yň taryhy” Java-yň nämedigini, Java-yň aýratynlyklaryny jikme-jik görkezýäris, taryhyň adyny we adyny, şeýle hem Java ulanylýan ýerlerini açypdyk.

Ine, bu ýazgyda Java programmirleme diliniň iş we kod gurluşyny öwreneris. Dowam etmezden ozal, Java-yň “Islendik ýerde/Islän wagtyňyz ýazyň (WORA)” programmasynyň binagärlik taýdan bitarap, platforma garaşsyz we göçme bolmalydygyny üpjün etmek üçin döredilendigini ýatladýaryn.

Java-yň işlemegi

Bu maksatlary göz öňünde tutup, Java dört basgançaga bölünip bilinjek aşakdaky iş modeli bilen işlenip düzüldi.

Çeşme faýly ýazyň. Bu faýlda Java Programming Dili üçin kesgitlenen protokolyň içinde ähli prosedura, usul, synp we obýektler bar. Çeşme faýlyň ady synpyň ady ýa-da tersine bolmaly. Çeşme faýlyň adynda .java giňeltmesi bolmaly. Şeýle hem faýlyň ady we synp ady baş harp bilen ýazylýar.

Java Source Code faýlyny Java Compiler arkaly işlediň. Java Source code Compiler deslapky faýldaky säwligi we sintaksisi barlaýar. Javahli ýalňyşlyklary we duýduryşlary düzedip, Java düzüjini kanagatlandyrmazdan, deslapky koduňyzy düzmäge mümkinçilik bermez.

Kompiler klassfile döredýär. Bu klas faýly Çeşme kody faýlyň ady bilen birmeňzeş miras alýar, ýöne giňeltme üýtgeýär. Çeşme faýlyň adynda filename.java giňeltmesi bar, bu ýerde düzüji tarapyndan döredilen klassfile giňeltmesi filename.class bolýar. Bu klas faýly kod kody bilen kodlanýar - bytekodlar jady ýalydyr.

Java Compiler tarapyndan döredilen bu synp faýly göçme we binagärlik taýdan bitarap. Islendik prosessor arhitekturasynda we Platforma/enjamda işlemek üçin bu klassfile port edip bilersiňiz. Size gerek zat, bu kody nirede bolsa-da işletmek üçin Java wirtual maşyn (JVM).

Indi mysal ulanyp ýokardaky dört basgançaga düşüniň. Ine, kiçijik Java Programma kody. Aşakdaky koda düşünmeseňiz gorkmaň. Häzirlikçe onuň nähili işleýändigine düşüniň.

public class MyFirstProgram
{
    public static void main(String[] args)
    {
        System.out.println("Hello Tecmint, This is my first Java Program");
    }
}

1. Bu programmany ýazdym we MyFirstProgram synp adyny kesgitledim. Bu programmanyň MyFirstProgram.java görnüşinde ýatda saklanmalydygyny bellemelidiris.

Aboveokardaky 1-nji tapgydy ýadyňyzda saklaň - Synpyň ady we faýlyň ady birmeňzeş bolmaly we faýlyň adynda .java giňeltmesi bolmaly. Şeýle hem java baş harplara duýgur, şonuň üçin synp adyňyz “MyFirstProgram” bolsa, deslapky faýl adyňyz “MyFirstProgram.java” bolmaly.

Ony “Myfirstprogram.java” ýa-da “myfirstprogram.java” ýa-da başga bir zat diýip atlandyryp bilmersiňiz. Konwensiýa boýunça, programmanyň aslynda ýerine ýetirýän işlerine esaslanyp synpyňyzy atlandyrmak gowy pikir.

2. Bu Java Çeşme faýlyny düzmek üçin ony Java düzüjisinden geçirmeli. Java düzüjisi, haýsydyr bir ýalňyşlyk we duýduryş üçin deslapky kody barlar. Thehli meseleler çözülýänçä deslapky kody düzüp bilmez. Java deslapky kody düzmek üçin işlemeli:

$ javac MyFirstProgram.java

MyFirstProgram.java çeşme faýlyň ady.

3. Üstünlikli düzülende, Java düzüjiniň şol bir katalogda MyFirstProgram.class täze bir faýl döredendigini görersiňiz.

Bu synp faýly kod kodlary bilen kodlanýar we islendik platformada, islendik prosessor arhitekturasynda işledilip bilner. Synp faýlyny JVM-iň (Java Virtual Machine) Linux-da ýa-da başga bir platformada işledip bilersiňiz:

$ java MyFirstProgram

Şonuň üçin ýokarda öwrenenleriňiziň hemmesini şeýle jemläp bolar:

Java Source Code >> Compiler >> classfile/bytecode >> Various devices running JVM 

Java-da kod gurluşyna düşünmek

1. Java çeşme kody faýlynda synp kesgitlemesi bolmaly. Bir Java çeşme faýlynda diňe bir umumy synp/ýokary derejeli synp bolup biler, emma köp sanly hususy synp/içki synpy öz içine alyp biler.

Daşarky synp/ýokary synp/jemgyýetçilik synpy ähli hususy synpa/içki synpa girip biler. Synp egri ýaýlaryň içinde bolmaly. Java-daky hemme zat obýekt we synp obýektiň meýilnamasydyr.

Java-da döwlet/hususy synpyň görkezişi:

public class class0
{
...
	private class1
	{
	…
	}

	private class 2
	{
	…
	}
...
}

2. Synpda bir ýa-da birnäçe usul bar. Usul synpyň egri ýaýlarynyň içinde bolmaly. Mysal üçin:

public class class0
{
	public static void main(String[] args)
	{
	…..
	…..
	}
}

3. Usulda bir ýa-da birnäçe jümle/görkezme bar. Görkezmeler (ler) usulyň egri ýaýlarynyň içinde bolmaly. Mysal üçin:

public class class0
{
	public static void main(String[] args)
	{
	System.out.println("Hello Tecmint, This is my first Java Program");
	System.out.println("I am Loving Java");
	…
	...
	}
}

Şu pursatda bellemeli hem möhüm - Her jümle nokatly nokat bilen gutarmaly. Mysal üçin:

System.out.println("Hello Tecmint, This is my first Java Program");
...
...
System.out.println("I am Loving Java");

Ilkinji Java programmaňyzy jikme-jik düşündiriş bilen ýazmak. Düşündiriş bu mysalda düşündiriş hökmünde berilýär (// düşündiriş berilýär). Bir programmanyň içinde teswir ýazmaly.

Diňe bu oňat endik bolany üçin däl-de, eýsem koduň size ýa-da başga birine islendik wagt okalmagyna sebäp bolýar.

// Declare a Public class and name it anything but remember the class name and file name must be same, say class name is MyProg and hence file name must be MyProg.java
public class MyProg

// Remember everything goes into curly braces of class?
{
 

// This is a method which is inside the curly braces of class.
   public static void main(String[] args)

    // Everything inside a method goes into curly braces	
    {
        
    // Statement or Instruction inside method. Note it ends with a semicolon
    System.out.println("I didn't knew JAVA was so much fun filled");
    
    // closing braces of method
    }

// closing braces of class
}

Aboveokardaky ýönekeý Java programmasynyň jikme-jik tehniki beýany.

public class MyProg

Ine, ýokardaky synpyň adynda MyProg we MyProg köpçülige açyk bolup, her kimiň oňa girip biljekdigini aňladýar.

public static void main(String[] args)

Bu ýerde usulyň ady köpçülige açyk bolan esasy, oňa islendik adam girip biljekdigini aňladýar. Yza gaýtaryş görnüşi boş, bu bolsa yzyna gaýtaryş bahasy ýok. Setirler [] args esasy usul üçin argumentleriň args diýilmeli massiw bolmalydygyny aňladýar. Häzirki wagtda “statik” manysy barada alada etme. Zerur bolanda bu hakda jikme-jik beýan ederis.

System.out.println("I didn't knew JAVA was so much fun filled");

System.out.ln JVM-den çykyşy adaty çykyşda çap etmegini soraýar, bu bolsa biziň üçin Linux buýruk setiri. “Println” sözleminiň ýaýlarynyň arasyndaky islendik zat, üýtgeýän bolmasa, çap edilişi ýaly çap edilýär. Üýtgeýjiniň jikme-jikliklerini soňrak öwreneris. Beýannama nokatly nokat bilen tamamlanýar.

Häzir bir zat düşnüksiz bolsa-da, bu barada alada etmeli däl. Şeýle hem, hiç zady ýatlamak hökman däl. Diňe ýazgydan geçiň we terminologiýalara düşüniň we surat gaty düşnüksiz bolsa-da işläň.

Bularyň hemmesi häzirlikçe. Tecmint-e birikdiriň. Aşakdaky teswirlerde gymmatly pikirleriňizi bize beriň. Indiki bölüm\synp we Java-da esasy usul üstünde işleýäris we ýakyn wagtda neşir ediler.