You are on page 1of 46

Z - JAVA

Zabil Ibayev
2014
Mndricat
Kitab kimlr ndr. ......................................................................................................................................... 4
Kompter sizi nec baa dr v ona nec mr verilir. ..................................................................................... 5
Biz kompter proqramlarn nec yaza bilrik. ................................................................................................... 5
Proqramladrma dillri - n n frlnir? ........................................................................................................ 5
Java- n il frqlnir? .......................................................................................................................................... 6
OOP nin mntiqi v prinsiplri. ........................................................................................................................ 8
Obyektin thlili................................................................................................................................................ 8
Siniflndirmk - CLASS ndir? ....................................................................................................................... 9 1
nstance ........................................................................................................................................................... 9
Encapsulasiya .................................................................................................................................................. 9
Abstraction ...................................................................................................................................................... 9
nheritance(irsilik) ........................................................................................................................................... 9
Polymorphism(polimorfizm) ........................................................................................................................... 9
Association(asosieyn- laq) ....................................................................................................................... 10
Aggregation(qreqeyn-hisslrin birldirilmsi) ....................................................................................... 10
Composition(kompozisiya) ........................................................................................................................... 10
Java-da yazmaq n silahlanmaq :) ................................................................................................................. 11
Netbeans-l tanlq. ...................................................................................................................................... 11
Salam Java proqram ................................................................................................................................. 14
NetBeans-d shvlrin aydnladrlmas .................................................................................................. 17
JAVA-da dyinlr .......................................................................................................................................... 18
String ............................................................................................................................................................. 18
String-l bal praktiki msllr += ...................................................................................................... 19
Btn hrflrin byk v ya kiik yazlmas .toUpperCase v.toLowerCase..................................... 19
ki String-i mqayis etmk == v .equals() ....................................................................................... 20
Strin uzunluunun myynldirilmsi .length() ................................................................................ 20
Yaz daxilind axtar verm -.contains() v .indexof() ........................................................................ 21
Char ............................................................................................................................................................... 21
Rqm dyinlri ......................................................................................................................................... 21
Integer ....................................................................................................................................................... 21
Double ....................................................................................................................................................... 21
Floating ..................................................................................................................................................... 22
Byte ........................................................................................................................................................... 22
Short .......................................................................................................................................................... 22
Long .......................................................................................................................................................... 22
Mntiq dyinlri v operatorlar ................................................................................................................ 22
Boolean ..................................................................................................................................................... 22
Rqm dyinlri il bal praktiki msllr ............................................................................................. 23
Riyazi operatorlar ...................................................................................................................................... 23
Dyinlri qrupladrma v hesablama .................................................................................................... 23
Qaln ekrana verilmsi ........................................................................................................................... 24
Bir-bir artrma v azaltma ......................................................................................................................... 24 2
Riyazi operator ardcll.......................................................................................................................... 24
Dyinlrl hesablama v grnt ........................................................................................................... 25
Casting Converting Variables ............................................................................................................................ 25
rt mrlri ........................................................................................................................................................ 26
rt operatorlar ==, !=, <, >, <=, >=, ? ............................................................................. 26
rt mrlri if, else ..................................................................................................................................... 26
rt mrlri - switch, case, break, default ..................................................................................................... 27
Dvr mrlri - for , do, while ............................................................................................................................ 29
For ................................................................................................................................................................. 29
Mrkkb For mrlri ................................................................................................................................... 29
While ............................................................................................................................................................. 30
Continiue ....................................................................................................................................................... 31
Do while ........................................................................................................................................................ 31
Dvrn adlandrlmas ................................................................................................................................... 31
Array .................................................................................................................................................................. 32
Birinci sul - .................................................................................................................................................. 33
kinci sulu - ................................................................................................................................................. 33
oxll Array ............................................................................................................................................ 34
Obyektin yaradlmas......................................................................................................................................... 34
Built-in Java Packages ...................................................................................................................................... 35
mport ............................................................................................................................................................ 36
Access control( giriin idar olunmas) ............................................................................................................. 36
Method ndir? ................................................................................................................................................... 37
Constructor........................................................................................................................................................ 38
Inheritance-n yaradlmas................................................................................................................................. 41
Super aar sz .............................................................................................................................................. 41
This aar sz ................................................................................................................................................. 42
Static Variable ................................................................................................................................................... 42
Casting ............................................................................................................................................................... 44
Swing-in strukturu ......................................................................................................................................... 44
Salam Dnya! proqram qrafiki tsvird .................................................................................................... 45

3
Kitab kimlr ndr.
lk olaraq onu bildirmk istyirm ki, kitab professional proqramlar n deyil hvskarlar n nzrd
tutulub. nki zm professional proqram deyilm.

Azrbaycan dilind Java proqramladrma dili zr dbiyyatn olmamas v ya mvcud kitablarn yetrinc
mn aydn yazlmadn nzr alb digr hvskarlarnda bel tinlikl zlcyini dnb
proqramladrmada ld edcyim tcrbmi bu kitabda toplayb sizinl blrm.

Yaradlm proqramladrma dillrinin ingilis dilli olmas bizi eyni zamanda ingilis dilini myyn sviyyd
yrnmy mcbur edir. ngilis dilind zif biln v ya yeni balayanlara kmk olsun dey bzi terminlrin
oxunuunu yannda yazram. Professional proqramist dostlarm tcrblrin saslanaraq proqramladrmada
yksk ntic ld etmk n ingilis dili biliyinin vacib olduunu deyirlr. Srbst kild alacanz
4
zaman qarnza xan problemlr hllri n bu kitab n d baqas internet zrindki material qdr sizi
qane ed bilmz. nternetd axtarda daha dqiq ntic ld etmk n is ingilis dili bilmk vacibdir.
Daha bir mma var mliyyat sistemi olaraq Windows OS 8.1, Java-da yaza bilmk n NetBeans
proqramn ingilis dilind ildirm. gr he bir ingilisc biliyiniz yoxdursa bel narahat olmayn bu
kitabdan yen d n is yrn bilrik.

vvlki eksperimetlrimi d kompter bklrini yrndiyim zaman Z-N Kompter bklri v


atmayan biliklr kimi kitablarmda blmm. Z-N Kompter bklri kitabnda da gstrildiyi kimi
mnim trfimdn yazlan kitablarn mllifi gstrilmkl ap v satdan glir ld edil bilr. Mnc bilik
pulsuz paylalmaldr.
Kompter sizi nec baa dr v ona nec mr verilir.
Kompterlr ikili say sistemi zrind ilyir. kili say sistemind 0 v 1 var. Bu qurulardan hr hans bir i
grmsi tlb edildiyind bizim verdiyimiz mrlr 0 - yanl, olmaz, dayan v ya 1 - doru, olar, davam et
kimi trcm edilir. mumilikd is bel baa dmk olar kompterin hanssa hisssinin naqillrin elektrik
axm verilsin ya yox.

Kompterimizdki ilri grn mikrosxem, xalq deyimi il kompterin beyni CPU(si pi yu) adlanlr. :)
CPU(Central Processing Unit-Sentral prosessinq yunit) mrkzi hesablayc quru anlmna glir. CPU-ya mr
verilmsi n istehsallar nstruction Set(instrakn set) adl instruksiyalar dsti digr deyiml qaydalar
toplusu dzldiblr. Btn yazlan proqramlar prosessora n etmk istdiklrini bu qaydalar sasnda izah
edirlr. 5

Biz kompter proqramlarn nec yaza bilrik.


Sad dild desk proqram yazmaq adi mtn yazmaq kimidir. Bu mtnlr sonda 0 v 1- trcm olunur v
kompter istdiyimiz mri yerin yetirir.

Bzi proqramladrma dillri xsusi redakt proqramlar vasitsil, bzilri Windows OS daxilindki adi
Texteditor-la v ya MSDOS-da yazla bilr. Hr proqramladrma dili frqli slubda myyn olunmu
kodlarn ikili say sistemin trcm edir. Windows daxilindki CMD(command line kommand layn-mr
stri ) il DOS-da proqram yazmaq mmkndr. CMD-y daxil olmaq n Start -dan sonra CMD yazaraq
proqram an.

"@echo."- mrindn sonra n yazsanz yeni str hmin yaz xacaqdr, sad bir mr. Bundan baqa DOS-da
daha n etmk olar deyirsinizs "help" yazb digr mrlr baxa bilrsiniz.

Proqramladrma dillri - n n frlnir?


Yuxarda bildirildiyi kimi kompter ikili say sistemindki mrlri anlaya bilir. Bel olan halda biz insanlar
n bu kild proqram yazmaq ox tindir. kili say sistemi ingilis dilind Binary(bayneri) adlanr. "
http://www.binarytranslator.com " shifsind bunu rahat grmk olar.

Sadc "Alma" sznn sadak ikili say sistemindki uzunluuna baxn. :)


Proqramlar bu sulu sadldirmk n 16-lq say sistemindn istifad etmy baladlar. ngilisc 16-lq
say sistemi Hexadecimal(heksadesimal) adlanr. Aadak kild "Alma" sznn 2-li v 16-lq say
sistemindki yazl gstrilib.

16-lq say sistemind proqramladrmaya misal olaraq Assembleri gstrmk olar. Proqramladrmada
nvbti mrhl kimi vizual grn daha rahat olan BASC dilini misal kmk olar. BASC-d verilmi
mtni ekrana xartmaq n tlb olunan mrlr aada tsvir olunub. kild gstriln redaktor
6
"http://www.readybasic.com" shifsindndir. Bu shif Java dilind hazrlanb.

BASC-d proqrama veriln mrlr sizin trfinizdn tyin olunmu rqmlrin ardcllna uyun olaraq
ilnir. Yazlm hr stir ayrcalqda oxunur sonra trcm v icra edilir. Bu sulla ilyn proqrama
"interpreter" - trcm proqram deyilir. Yni hr yazlan mri kompterin baa dcyi dil evirir. Bu cr
yaxnlama proqramn aa srtd ilmsin sbb olur. gr BASC-d mrlrin qabanda rqm
yazmasan birbaa mrin icrasna keir, bu sbbdn ilk mr PRNT-in (ap etmk, ekrana xartmaq)
qarsna rqm qoymuam ki, 1-ci "Salam Zabil" szn ekrana xartsn sonra 2-ci mri NPUT-u (daxil
etmk) ekrana xartsn ki, mnd ona qarlq verim. RUN(ran)- proqramn oxunmas kimi qbul edk,
proqram i salr. Bs A$ ndir. $- dyin demkdir. A dyini($) hr hans bir mlumatla vz oluna
bilr. Rqm v ya yaz. Nticd is proqram mni salamlayr v mndn cavab aldqda sona atr. Daha
sonra yeni stirdn yeni mr daxil edilmsini gzlyir.

Java- n il frqlnir?
Java OOP texnologiyasndan istifad edir. Object Oriented Programming (OOP)-obyekt ynml
proqramladrma. Adndan da myyn drcd anlamaq olar, obyekt ynml yni obyekt yaratmaq n
proqramladrma dili. n az mn bu cr anlamaq rahatdr.

Obyekt hr hans bir ya, funksiyas olan qurum v ya canl ola bilr. OOP vvlki dillrdn frqli olaraq
bir obyekti bir ne yerd istifad etmy imkan verir. Bir az texniki dill desk, OOP yazdnz proqramn
iindki myyn kodlar ayr-ayrlqda hmin v ya digr proqram daxilind obyektin xsusiyytlrini
yenidn yaratmadan istifad etm imkan yaradr.

Msln yaratdnz man obyektini (eyni zamanda "man proqramn" gr bel adlandrsaq) digr
proqramn daxilindn arb istdiyiniz yer ttbiq ed bilrsiniz. Siz arlan obyektin kodunu tamam il
krtmdn, sadc mnbyini gstrmkl, ona veriln ad yeni proqramdak myyn olunmu yer daxil
edrk proqram i salrsnz.

Java OOP "Compile"(kompayl - komplektldirn, toplayan, birldirn) texnologiyasndan istifad edir.


Java btn compile etdiyi proqramlara ".class" sonluunu lav edir. Compile olmu proqram bytecode-a
evrilir. gr ".class" fayl grsniz bilin ki iind bytecode var. Java BASC kimi sadc interpreter
texnologiyasndan istifad etmir. Kodlar stir-stir v ayr-ayrlqda oxuyub trcm etmir. vvlcdn 7
proqram daxilind yazlan mrlri myyn edir, sonra vahid kild proqramn harada balayb, harada
bitcyini, i prosesind hans mrlrin yerin yetircyini anlayr. Yazacamz "Salam dnya" proqramnn
bytecode-a evirilmi kli aadak kimidir.

kildn d grndy kimi kod compile olunan kimi fayln sonuna ".class" lav edilmidir. Bu proses d
z nvbsind JAVA Virtual Machine(Java Virtual Man-JVM) iin start verir. JVM bytecode-u binary
koda evirir. Java bu metodla daha srtli v CPU-nun versiyasndan asl olmayaraq btn kompterlrd
ily bilir.

ndi btn yuxarda izah etdiyim addmlar bir araya toplayb Java OOP-nin prosesi tam olaraq nec yerin
yetirdiyin baxaq.

1. "Salam.java" proqram yazlr;

2. "Salam.class" artq compile olunur v fayl bytecode-da evrilir;

3. JVM vasitsil bytecode binary koda evirilir;

4. Ntic ld edilir.
OOP nin mntiqi v prinsiplri.
Hvskar proqram n drin nzri biliklrin olmas vacib deyil. Bu baxmdan OOP-y sthi yanaaraq
biz hazrda lazm ola bilck mqamlara toxunmuam. OOP hyatda olan obyektlri virtual almd
yaratmaq n dnlm nzriyydir. Digr bir deyiml real hyatdak hm hrktli, hm hrktsiz
obyektlri, onlarn digr obyektlrl mnasibtlrini virtual almd yarada bilmk n hazrlanm sullar,
qaydalar toplusudur. Obyekt hr hans bir ya, xidmt gstrn qurum v ya canl ola bilr. Buna misal
olaraq avtomobil, bank, heyvan, su, qravitasiyan gstrmk olar.

Obyektin thlili
Obyekti real hyatdak kimi virtual olaraq yaratmaq n onu tam inclmk, mmkn xsusiyytlrini
anlamaq lazmdr. Thlil n avtomobil obyektini gtrk: 8
Avtomobil haqda biz n mlumdur:

stehsal edn firmann ad


Modelin ili
Motoru
Rngi
Salonu

bu xsusiyytlr ATRBUTE-lar adlanr. Bs mann n kimi funksiyalar vardr?

dr
Snr
ylci sxdqda dayanr
Qap v baqaj hisssi alr/qapanr
silnlri hrkt edir

Bu funksiyalar Method(metod) v Operation(opereyn-mliyyatlar, funksiyalar) adlanr.

Digr bir misal olaraq bank hesabn gtr bilrik. Hesabda biz n bllidir:

Hesabn nmrsi
Hesabn kim aid olmas
Balans
Glir faizi
nvan

Yuxardak mlumatlar Attribute-lardr. Bs bank hesabnn hans funksiyalar vardr?

Deposit qoymaq
Bankomatdan pul xartmaq
ek yazmaq
nvan dyimk
Telefon nmrsini dyimk
Bu funksiyalarda Metod v Operation-lardr. Yqin ki artq aydn oldu, hr hans bir obyektin mlum olan
xsusiyytlri Attribute-lar v attribute-lar i salan Method-lar vardr. Bzi hallarda method-lar attribute-la
laqli olmaya bilr.

Siniflndirmk - CLASS ndir?


Thlil n avtomobil obyektini gtrk. Avtomobilin ban nvndn, firmasndan v ya lsndn asl
olmayaraq obyektdki attribute-lar v method-lar eynidir. Bu da onlar eyni sinfin daxil etmy imkan verir.
El dilind bel izah edim, yolda uzaqdan bir minik vasitsini grnd siz onun markasn v ya nmrsini
grmy bilrsiniz amma onun attribute-larna gr avtomobil sinfin aid olduunu dey bilrsiniz. Daha qsa
kild desk attribute-lar v method-lar eyni olan obyektlr bir sinf, bir class daxilin salna bilrlr. Eyni
zamanda heyvanlar, bitkilri v s. eyni xsusiyyt dayan obyektlri bir sinf, bir class altna salmaq olar.
9
nstance(instans-instansiya, obyektin oxar). Mmin notbukum v Orxann notbuku, notbuklar sinfin,
notbuk class-na aiddir. Mmin v Orxann notbuku notbuk class-nn instance-dr. Daxilind frqli attribute-
lar olmana baxmayaraq mumi gstricilri class-la eyni olan obyektlrdir.

El dilind bel deyk adndan v ya sahibindn asl olmayaraq notbuk deyend n alna glir, bax el o
tsvir notbuklar sinfin aid olmas demkdir. Kims deyirsiniz mn notbuk almam onu grmyn adam
bel artq tsvvr var ki notbuk sinfin aid ola bilck obyekt nec olmaldr. Onun instance-n fikirlir(
rngini, arln v s.)

Encapsulasiya
Attribute-larn obyekt haqqnda mlumat verdiyini artq bilirik. Obyekt funksionalladnda encapsulasia
method-lar vasitsi il obyektin mlumatlarn gizltmk rolunu oynayr. Proses sonundak ntic mlum olsa
bel daxild hans attribute-larn qarlql laqsindn nticnin yarand gizldilir.

Abstraction
Abstraction is vacib detallar gstrmkl lazmszlar knarladrmaq funksiyasn icra edir. Misal olaraq
avtomobili i salan sahibi aar dndrdkd avtomobilin i dcyindn baqa obyektd gedn
proseslrin nec icra olunduunu grmr. O sadc aar dndrb avtomobilin ilmsini gzlyir, digr
proseslr ondan uzaq tutulur v ya gizldilir.

nheritance(irsilik)
Velosiped, avtomobil, yk man ayr-ayrlqda sinifdirlr. Avtomobil sinifinin alt siniflri kimi mini, VAN,
SUV-lri gtrmk olar. Amma hams insanlar n yaradlm minik vasitlrin aiddirlr. Minik vasitsi
irsilik dayr v ondan sonra gln siniflr v alt siniflr birlikd irsilik dayrlar. rsilik varsa laq tbii
olaraq var. Digr szlrl, inheritance bir proqrama baqa proqramn xsusiyytlrini istifad etmy imkan
yaradr.

Polymorphism(polimorfizm)
Poly-oxlu, morph-forma, davran demkdir. Bir ne obyekt arasndan n dzgn olann seilmsind
polymorphism method-dan istifad edilir.

Bir az lori dild izah edim. Frz edin ki irktd ilyirsiniz v nqliyyat departamentin zng edib deyirsiniz
ki irktin risin digr irkt trfindn orta hcmd heykl hdiyy edilib v ris deyir ki olduunuz yer
heykli daya bilck minik vasitsi gndrilsin. irktin balansnda olan minik vasitlri sinfind sedan,
SUV, yk man v traktor var. Polymorphism bu yerd i dr. sas dyrlr minik vasitsinin seilmsi,
sonra orta hcmd yk daya biln avtomobilin seimini hyata keirir. Daha orta hcmli heykl n traktor
gndrmir : )

Association(asosieyn- laq)
Obyektlr arasndak hr hans bir laqy association deyilir. Avtomobil obyekti v yol obyekti arasnda
association var. Bel ki, avtomobil funksiya gstrmk n yoldan istifad edir.

Aggregation(qreqeyn-hisslrin birldirilmsi)
laqy sahib olmaq kimid qbul edil bilr. Avtomobil funksiya gstrmk n daxilindki motordan,
skandan, tkrlrdn istifad etmlidir. Bu cr laqy aggregation deyilir. Hm onlara sahibdir hmd
funksiya gstrmk n laq saxlayr. 10

Composition(kompozisiya)
Daxilindki obyekt v ya obyektlrl birg funksiya gstrmk n laq saxlayr. Buna misal olaraq bina
obyekti v otaqlar arasndak laqni gstrmk olar. Txmini bel mntiql alr motor avtomobilsiz ola
bilr amma otaqlar binasz ola bilmz. Eyni zamanda binann yeri dyidirildikd otaqlarnda yeri avtomatik
dyidirilir. Bir-birlrin baldrlar.
Java-da yazmaq n silahlanmaq :)
JAVA-da yazmaq n biz bzi altlr lazm olacaq. Java ORACLE(http://www.oracle.com) irktinin
mhsuludur v saytlarnda proqramlar n NetBeans redaktoru v JAVA JDK(Java Development Kit)-
Java nkiaf Paketi pulsuz tqdim olunur.

http://www.oracle.com/technetwork/java/javase/downloads/index.html gstriln nvandan kompterinizin


32/64 bit olmasna baxaraq siz uyun versiyan paket klind endir bilrsiniz.

11

Proqram endirdikdn sonra zrin sa dym sxaraq Run as administrator strini sein. Kompterin
administratoru kimi proqramlar yklynd sasn yklm problemsiz baa atr. Daha sonra rtlri qbul
edrk Accept(aksept-qbul etmk) yklmy davam edin. Hr endiriln versiyada yklm frqli ola bilr.
Sadc Finish(son) dymsi xana qdr gzlyin.

Netbeans-l tanlq.
Netbeans - d yeni proqram yazmaq istdiyinizd siz proqramn tklif etdiyi ilk olaraq yeni layih
yaratmaqdr.

Yazacamz proqramlar yaratdmz layihnin trkibind yer alacaqdr. Alan pncrd bizdn n tipli
layih yaratmaq istdiyimiz soruulur. Biz kild gstrildiyi kimi kateqoriyalardan(Categories) Java v
layihlrdn(Projects) Java Application(Java Proqram) seirik. Sonra Next (nvbti) dymsini sxaraq
nvbti shify keirik.
12

Layihy ZJAVA adn verirm. Aada Create Main Class qutusunu sndrn, mnd hmin hissnin
qarsnda "zjava.ZJAVA" yazs var. Sonda Finish dymsini sxn.
ndi layihmiz Java proqram yazmaq n yeni fayl lav edk. Bunun n aadak kild gstrildiyi
kimi New File dymsini sxn.

Alan pncrd kateqoriyadan Java v File Type(Fayln tipi) blmsindn Empty Java File(Bo Java Fayl)
strini sein.
13

Nvbti shifd artq myyn mnada proqram yazlna balayrq.


Salam Java proqram

Class Name(Klas Neym - Sinfin ad) bura Salam proqramnn adn yazmam. Kompter mr verirm ki
mnim proqrammn ad Salam olsun.

Package(Pkic-Paket) ad com.ZJAVAKITABI. Paket java proqramlarn bir arada qrupladrmaq ndr.


Created File(Kreyted - Yaradlm) hisssind yaratdnz fayln harada saxlanmasn tyin etdiyiniz
gstrilir.

14

Finish dymsini sxdqdan sonra Netbeans-d sol trfd proqram faylnn direktoriya zr nec yerlmsi
tsvir olunub.
Salam.java proqramn sedikdn sonra aada gstrildiyi kimi stirlri daxil etmy aln.

15

Aada proqramn strukturunu nlrin tkil etdiyini sthi izah etmim. lk baxda qarq grns d
zamanla btn stirlri znz lazm olacaq kild dyidir bilcksiniz.

Package
Proqramlar qrupladrmaq, Class proqrama ad vermk v onu siniflndirmk ndr. OOP-d izah
etdiyimiz proqram armaq hmin bu Class-la baldr. Proqram boyunca harada salam vermk istsk
Salam class-n arb salam verdircik :)))

public static void main (String [] arguments)


Bu stri sadc zbrlyin. Java-da yazacanz proqramlar sasn bel balayacaq. OOP tipli proqram
yazdmza gr artq bilirsinizki bir layihnin trkibind oxlu proqramlar ola bilr. Frz edk ki, layihni
yazdq v bir icon(ikona) klin gtirdik v zrin sxdmzda sizc ZJAVA layihmiz hans proqram
iltmlidir. Bu zaman java stirlri daxilind harada Main(Meyn - sas) sz il proqram qeyd olunubsa
hmin proqram birinci baladr. lk balanacaq proqram class daxilind "public static void main (String []
arguments)" kimi qeyd edirsiniz.

Public
Public(pablik-ictimai) yaratdnz obyektin digr proqramlar trfindn istifad olunmas v arlmas
n aq olduunu bildirir. Gizli deyil, ictimaiyyt aqdr.

Static
Static (static-sabit, dyimyn) instance- olmayan v dyidiyi zaman hr bir balantsna tsir
edn class- bildirir. Instance-la arla bilmir. Instance OOP-d trafl izah edilir.

Void
He bir dyr geri qaytarmr. xtisara salr.

String arguments
Bu hiss Netbeans-dn istifad etmdn CMD vasitsi il Java proqramlarn compile etmk n istifad
olunur. Netbeans iltdiyimiz n bu hissni trafl yrnmirm.

String
Basic-d izah etdiyimiz "$" iarsi kimi dyini tyin edir. String-in qarsna n yazsaq o dyin
mvqqti olaraq zn yaz, rqm v baqa mmkn iarlri mnimsd, yni o dyri daya bilr.
String-in bu df ki dyinin "salamlama" adn vermim. Artq salamlama = "Salam dnya!".
Dyinlr istdiyiniz ad vermk mmkndr. Digr dyinlr v onlarn frqlri proqram yazdqca aydn
olacaqdr.

Dalal mtriz { }
N n istifad olunur? Yazdnz proqramlarn balanc v bitm nqtsini bildirir. Eyni zamanda
proqram stirlrini qrupladrr. Bu qrupladrmaya BLOCK(blok) deyilir. Bloklar digr bloklarn trkibind
ola bilr. NetBeans sar rngl bloklarn balanc v son mtriznin yerini grmkd yardm olacaqdr.

// comment(rh)
NetBeans-d "//Mnim birinci Java proqramm" stri boz rngl gstrilmidir. Cmlnin vvlindki "//"
rh iarlri proqramn daxilind yazlmasna baxmayaraq kompter n he bir i mri vermir. rhlr n
n lazmdr? Frz edk ki, proqram bir mddt sonra proqramnn hanssa bir funksiyasn ayrcalqda 16
gtrmk istynd vvlcdn proqramda qeyd etdiyi rhlrl hans stird n yazdn anlaya bilr.
rhlrin aadak nvlri var:

1. // burda rh yazlb

2. /* burda rh yazlb */

3. /** burda rh yazlb */

System.out.println();
Basic-d gstrdiyim nticni ekrana xartmaq n istifad olunan mr print-in artq JAVA-dak
istifadsini grrk. Proqramladrma dilinin imkanlar genilndikc yaz stilid dyimidir. Burdak ekrana
xartmaq n istifad olunan yaz klinin mrkkbliyi proqramn digr imkanlarnn da olmasndan xbr
verir. System(sistem), Out(aut-l), println(print line(layn)-yeni stirdn ap et) hrfi mnada da mqsdini
aydn edir mlumat sistemdn l xart v yeni stirdn ap et.

Qeyd: System.out.println(); -bu yazn sadc sout yazb sonra TAB dymsin basaraq srtli kild
daxil ed bilrsiniz.

Qeyd: public static void main (String [] arguments) -bu yazn sadc psvm yazb sonra TAB dymsin
basaraq srtli kild daxil ed bilrsiniz.

Qeyd: Println yeni stirdn ap edir, print is eyni stirdn ap davam edir.

" ; " nqt vergl


Stirlrin sonunu gstrmk n proqramladrmada sasn nqt vergldn istifad edilir. mrin bitmsini
gstrir.
Sonda proqram iltmk n birinci proqram yaddaa vermk sonra RUN etmk lazmdr. Yaddaa vermk

n CTRL+S v ya dymsini sxmaq, proqram i salmaq n F6 v ya RUN dymsini


sxmanz yetrlidir. NetBeans-in daha bir stnly ondadr ki, yaddaa verdiyiniz btn fayllar avtomatik
olaraq compile olunur. Proqramn stirlrini dzgn yazdnz halda aadak nticni ld edcksiniz.
gr hr hanssa bir shv varsa sadc stirlri yoxlayn. Nqt vergl v ya adlarn eyni yazlmas kimi
shvlr tez-tez tkrarlanr.
NetBeans-d shvlrin aydnladrlmas
Yazdmz proqramda bilrkdn cavabda gstrilmli "salamlama" dyinini "sala" il vz edirm, bu
zaman proqram RUN ola bilmyck v solda qrmz lampa biz shvin n olduunu gstrckdir. 17

Qeyd: imizi srtlndirmk n artq bzi proseslri tkrarn grntl izah etmycm. Buna misal
olaraq yeni java fayl yarat dedikd fayl yaratmaq n CTRL+N v ya File/New file/Empty Java file
ardclln znz vvldki izahlardan tkrar etmlisiniz.

Qeyd: Nvbti proqramlar gr eyni pakage-in trkibind yaratsanz RUN etmnizd problem yarana bilr.
Yazlan proqram Save etdikdn sonra proqramn zrin sa dymni sxb RUN File strini sein v ya
Shift+F6(Shift-in zrin sxb saxla, eyni zamanda F6 dymsi sx demkdir) dymlrini sxn. Proqram
RUN ola bilmdikd shvlrin hans stird olmasna baxn.

Qeyd: Myyn mrlrin arlmas v ya daha baqa hans funksiyalarn mmkn olduunu grmk
istyirsinizs CTRL+Space(boluq) dymlrini birlikd sxn, alan pncrdn seilmi mri ENTER
dymsini sxmaqla daxil ed bilrsiniz.

Qeyd:. Proqramn sliqli trtibi myyn mddt sonra proqrama qaydb baxdnzda nyi n n
yazdnz anlamaa kmk edckdir. NetBeans-d yazdnz proqramn zrin sa dymni v ya
Alt+Shift+F dymlrini sxaraq yazlar Format(formaya salmaq) ed bilrsiniz. killr ox yer tutduu
n bzi proqramlarn sliqsiz sxlqda yazlmasn v bzi yri mtrizlrin gstrilmdiyini bildirirm.
Yuxardak misaldan da blli olduu kimi pakage, class, public, dyinlr, print myyn aralqda
yazlmaldr. Mtrizlr v tlb olunan simvollar kild qeyd olunmaybsa error verilnd artq qayda
olaraq alm mtrizlrin qapanmas, mrlrin sonunun ; il bitmli olmasndan xbrdarsnz.
JAVA-da dyinlr
Dyinlr hr hans bir mlumat znd saxlayaraq proqramn i prosesind lazm olan yerd
informasiyasn yaddadan armaq ndr. Artq String-dn istifad etmiik.

String-l dyinlr dyr qazandrmaq n qoa drnaqdan istifad edilir. Qoa drnaq daxilind yazlan
btn simvollar frz edin ki kil kimi qbul edilir. Rqmlri rqm kimi deyil, rqmlrl yazlm bir
grnt kimi yadda saxlayr. Bel olduu halda siz String dyini il hesablama apara bilmirsiniz. Bu
sbbdn nmundki rqmlr nticd sadc yan-yana yazlmaqla kifaytlniblr.

18

Bildiyimiz kimi String dyinin mnimsdiln mtnlr qoa drnaq daxilind yazlr. Bzn mtnin
daxilind qoa drnaq v digr funksiyalar lazm glir, bu zaman yuxardak nmundn istifad ed
bilrsiniz. String-in mxtlif funksiyalar mvcuddur (\ tk drnaq, \qoa drnaq, \\- geri sl, \t - TAB(8
simvol saa boluq), \b - Backspace(bkspeys - bir simvol geriy, sola pozma), \r - Carrige return(kric
ritrn- stirbana qaytma), \f - Formfeed (formfid - forman doldurma printerlrd istifad olunan khn
funksiyadr, demk olar java-da istifad olunmur), \n Newline(nyulayn- yeni stir)).

QEYD: (+) iarsi dyinlri grnt olaraq yan-yana eyni stird apa vermk n istifad edilir.
String-l bal praktiki msllr +=
Yuxarda qeyd olunanlardan baqa String-in (+=) operatorlarnn birlmsindn olan funksiyas vardr. (+=)
operatoru String- bir ne dyrin verilmsind istifad olunur. Frz edk ki, qeydiyyat pncrsi
dzldirsiniz v onun tvlld hisssindki mlumatlar bir str ymaq istyirsiniz.

19

Yuxarda gstriln misalda TEVELLUD deyininin tkrar-tkrar yazldn grrsnz. (+=) operatoru
is Dogumtarixi dyinini daha az tkrar etmkl nzrd tutulmu mslni hll edir.

Btn hrflrin byk v ya kiik yazlmas .toUpperCase v.toLowerCase


Proqramnza daxil edilmi yazlar sadc .toUpperase() v .toLowerase() metodlarn yazmaqla
btn hrflrini byd v ya kiild bilrsiniz.
ki String-i mqayis etmk == v .equals()
Frz edk ki, qeydiyyat shifsi yaratmq. Shifd ifr daxil edilir v min olmaq n ki adam ifrni
dzgn daxil edib ondan ifrni tkrar yazmasn tlb edirik. Bu zaman bizdn asl olan msl iki ayr
xanada daxil edilmi ifrnin bir-biri il eyni olmasn yoxlanlmasn tkil etmkdir.

20

Bu zaman .equal()metodundan v ya == qoa brabrlik operatoundan istifad edirik. Nticd


grdynz kimi cavab False(fols) yalndr. gr brabr olsa idi True(tru) dorudur olacaqd.

QEYD: .equal() yazlarn yoxlanlmasnda byk v kiik hrf fikir verir. gr Zabil v zabil
szlrini yoxlasanz, cavab eyni deyil False-dur. Kompter hr mri nec var el anlayr, byk v kiik
hrflri frqli grr. gr hrflrin kiik v ya byk olmasna baxmayaraq mtni yoxlamaq istyirsinizs o
zaman .equalsIgnoreCase() (qnor-fikir verm, keys-hal, forma) hrfin byk kiik olmasna fikir
vermdn brabrliyi yoxla metodundan istifad edin.

Strin uzunluunun myynldirilmsi .length()


Frz edk ki, daxil ediln ifrnin minimum 6 simvoldan ibart olmasn istyirsiniz. Bu zaman yazlan
simvollarn sayn length()(lenqs) uzunluq, metodu il aadak kimi lmk olar.

l olaraq 6 simvol qoymuduq v BAYEV yazs 6 simvoldur ona gr ntic True- yni dorudur.
Yaz daxilind axtar verm -.contains() v .indexof()

Conatin(konteyn) saxlamaq, daxilind olma mnasna glir. Verilmi mtn daxilind myyn bir String-i
axtara bilir. gr verilmi String mtn daxilind varsa True, yoxdursa False ntic verir.

21

ndexof(indeks of) indeksi nedir, axtarlan String nenci simvoldan balayrsa o nqty kimi olan
simvollarn sayn bildirir. gr String mumiyytl yoxdursa -1 cavabn verir.

Char yaddanda bir simvol saxlaya bilir. Bir hrf v ya bir dd. Tk drnaq daxilind yazlr. String-dn
digr bir frqi dyinlri il riyazi hesablamalar etmk mmkndr.

Ntic: A 0

Rqm dyinlri
Java-da rqml ilyn dyinlr miqyaslarna gr bldrlmdr. Bunlar nteger, Double, Float, Byte,
Short v Long-dur.

Integer(int) tam dd demkdir. z yaddanda 2.14 milyard msbt (2147483647) v 2.14 milyard mnfi (-
2147483648) tam dd saxlaya bilr.

Double - integer-dn byk hcmd ddlri saxlaya bilir. 300 simvola yaxn dd. Eyni zamanda float(ksr)
ddlrini d saxlaya bilir.
Floating Bu ddlr hr hans bir yerind nqt il blnm olmas demkdir. Ksr ddlr bnzyir. 38
simvola qdr yadda saxlaya bilir. Float ddlri tyin edrkn sonlarna F lav edrk frqlndir
bilrsiniz.

22

Yuxardak misalda double-n trkibind integer-i v float- saxlaya bilmsi gstrilib. Eyni zamanda final
mri il hr hans bir dyin constanat(konstant-sabit) dd verilmsi qaydas gstrilmidir. Adtn
konstanatlar byk hrfl yazlr. SABTEDED deyini proqram boyunca ancaq 10-a brabr olacaq, dyri
dyimyckdir.

Byte - 128 dn 127 kimi tam ddlri yadda saxlaya bilir.

Short - 32767 dn -32768 kimi tam ddlri yadda saxlaya bilir.

Long - 9.22 quintliondan 9.22 quintiliona kimi tam ddlri yadda saxlaya bilir.

Mntiq dyinlri v operatorlar


Boolean mntiq dyini iki tip ola bilr : true (doru) v false(yaln). Mntiq operatorlar sasn rtlrin
yazlmasnda istifad olunur.

&& - v == - eyni dyrddir


|| - v ya ! - inkar, deyil

QEYD: public, class, true, false dan baqa btn adlar dyinlr vermk olar. Dyin adlar bir hrfl,
(_) aadan xtl v ya ($) dollar iarsi il balaya bilr. Dyinlrin byk v ya kiik hrfl yazlmasna
diqqt edin. gr hr hans mliyyatda, n adi println-d bel dyini byk-kiik hrf shvi il yazsanz
proqram error(shv) verck.
Rqm dyinlri il bal praktiki msllr
Proqramladrma dillrinin n sadsindn tinin qdr hams riyazi msllri hll etmk n tam tmin
olunmudur. Saddn tin doru bacardm qdr Java-nn riyazi msllrd istifad etdiyi funksiyalarn
kitabda ks etdircm.

Riyazi operatorlar
+ toplama - xma * vurma / blm % qalq gstricisi

23
Dyinlri qrupladrma v hesablama

Yeni Java fayl yaradb istdiyiniz kimi adlandrn v diqqt edin ki class-n ad fayln ad il eyni olsun.
Yoxsa proqram RUN olanda error verck.

Zabilin kisi normalda 90 kilodur. Ttil xandan sonra kisi 15 kilo artmdr. Ttildn sonra idmanla
mul olmu kisi 10 kilo azalmdr. Zabilin indiki kilosu nedir?

Yuxardak msld hr dyinin qarsnda yenidn int yazlmayb. Msldki dyinlrin tam dd
olmasn nzr alnb v bir stird qrupladrlb.
Qaln ekrana verilmsi
dd tam blnndn sonra qalan dd ekrana verilir. Burda ntic 1 gstrilir.

24
Bir-bir artrma v azaltma
Proqramladrma dillrind populyar olan funksiya, bir-bir artrma v ya azaltma. Dyinin yanna ++ v
ya -- yazmaqla ld edilir. Artrma v ya azaltma iarlri dyinin nnd yazlarsa hesablamadak
yerindn asl olmayaraq birinci dyrini dyickdir. gr dyindn sonra yazlsa hesablama daxilind ilk
veriln dyrini dayacaqdr.

Riyazi operator ardcll


1. Bir-bir artrma v ya azaltma
2. Vurma, blm v faiz
3. Toplama v xma
4. Mqayis
5. Axrda = hesablanm nticni dyin mnimsdir.
Qeyd: Mtriz daxilindki hesablamalar ayrlqda hesablanr. Daha sonra ldki hesaba qatlr.

Z = 5 *(3+2) = 5*(5)=25

Dyinlrl hesablama v grnt

2 dyini toplayb, cavabda tkc nticni yox eyni zamanda toplama prosesini grnt olaraq ks etdirin.
Bunu digr riyazi operatorlarla yoxlayn.

25

Casting Converting Variables


rt mrlri
rt operatorlar ==, !=, <, >, <=, >=, ?
Qoyulmu rtlr tsdiqini taprsa mri yerin yetirilir, ks halda he bir mr icra olunmur.

( A == B) A v B dyri brabrdirs icra edilir.

( A != B) A v B dyri brabr deyils icra edilir.

( A < B) A B-dn kiikdirs, ( A > B) A B-dn bykdrs icra edilir.

( A <= B) A B-dn kiikdirs v ya B-y brabrdirs, ( A >= B) A B-dn bykdrs v ya B-y 26


brabrdirs icra edilir.

Yuxarda izah olunan operatorlar tsdiqlnirs icra edilir, ? xsusi rtdir, gr birinci rt tsdiqlmirs
ikinci nticni icra edir.

rt mrlri if, else


If- gr mnasna glir, rtin baland mrdir, else(els) - baqa, gr olmasa baqa rt mnasna glir.
styirm birbaa msl zrind rt mrlrini izah edim. Msl mktbi bitirn Bilal haqqndadr

Kodlardan grndy kimi bir ne integer dyinim var. Universitet qbul ballarnn rtlrin uyun
olaraq Bilaln hans ixtisasa qbul olaca myynldirilir, gr TQDK bal uyun deyils v ya
sgr(mddtli hqiqi xidmt) getmy uyundursa onu gndririk dalar qoynunda xidmt Bir az
texniki kild bel dey bilrik:

gr (rt) {gr rt dzdrs ap edilir} , if (5>0) System.out.println("5 sfrdan bykdr");.

Sadc bir if rti il msl bit bilr. rt tsdiqlnirs apa verilir, gr tsdiqlnmirs he bir cavab
ekrana xmr. rtin dz olmad halda ntic grmk istyirsinizs o zaman else if (yeni rt
yazlr){istniln ntic apa verilir}.

Sual operatoru
Frz edk ki, proqramnzdan qeydiyyatdan ken xs Cnab v ya Xanm kimi mracit etmk istyirsiniz 27
bu zaman ? operatorundan aadak kimi istifad etmk olar.

Ardcllq aadak kimidir:


1. rt yazlr
2. ? iarsi
3. rt dorudursa 1-ci cavab drnaqda String v ya drnaqsz integer
4. kinqt il : v ya
5. rt doru deyils 2-ci cavab drnaqda String v ya drnaqsz integer

rt mrlri - switch, case, break, default


If v else il yazlan proqramlarda rtlr ox olanda else if ()-dn bir ne df istifad etmli oluruq.
rtlri ox olan msllr n daha sad olar ki switch(svi dyimk, keirtmk)-dn istifad edilsin.
Switch() - in qarsndak mtrizd String, integer, char v digr dyinlr yazla bilr. Case(keys-hal)-in
qarsndak dyr switch-in mtrizsindki dyrl eyni olduu zaman rt icra edilir. gr eyni deyils o
zaman nvbti case yoxlanlr. Btn case-lr icra olunmad halda default(difolt) icra olunur. Default-un
azrbaycan dilind dzgn trcmsi yoxdur v ya tapa bilmdim, amma T-d qarladm anlam sasn
standart olaraq, sabit seim kimi mnaya uyun glir. Break(breyk- qrma) icra olunacaq Case-dn sonra
icran dayandr, qr mnasna glir. Hr bir case icra olunandan sonra break yazlmasa proqram case-dn
sonra yazlan digr mmkn mrlri yerin yetirckdir.
28

Qeyd: Switch daxilind hans tip dyin (integer, string, char) varsa case-d d hmin tip dyin istifad
olunmaldr. ks halda compile olmayacaq. Digr bir msl dyinlrin adlar yox onlarn dyri case-
yazlmaldr. Aada gstrildiyi kimi:

String ad = Zabil; ------ case Zabil char birhrf = Z ; ------ case Z

nt ya = 27; ------ case 27


Dvr mrlri - for , do, while
ngilis dilind dvr mrlri loop(lup) adlanr. Dvr daxilind yazlan rtlri v hesablaman yuxardan
aaya ilyrk rtlrd verilmi son hdd atana kimi proqram tkrar edir.

For
sasn ddlri ardcl v ya myyn rt uyun olaraq saymaq kimi mrlri yerin yetirir. Myyn
olunmu hdd dvr il atmaq n dizayn olunmudur. For dvrnn daxilind balanc dd, rt v
rt atmaq n hesablama funksiyas olur. Aadak misalda rt olaraq 15-dn kiik v ona brabr olan
ddlri sralamaq istyirm. Bunun n balancda 1 ddi rt il yoxlanlr 15- brabr olmad n
z++ il zrin bir dd lav edilir. Sonra hmin dd tkrar yoxlanlr v15- brabr olana qdr davam 29
edir.

Yuxardak izaha uyun olaraq ddlr sralananda 2-dn balamaldr amma nticd 1-dn 15- qdr
sralanmdr. For-un bu xsusiyytini glckdki hesablamalarnzda nzr almaq yax olar. For daxilind
rtlr ; il ayrlmaldr. For-dan sonra System.out.println();-dn baqa rtlrd istifad etmk
mmkndr.

3- blnrkn qal sfra brabr olan ddlr ap edilib. 0, 3, 6, 9, 12, 15

QEYD: Yazdnz proqram sonsuz dvr girdiyi halda NetBeans-d ntic gstriln pncrnin altnda
RUN proses zolana x basaraq dvr dayandra bilrsiniz.

Mrkkb For mrlri


Yuxarda izah olunan msl zrind for dvrnn quruluunu daha rahat anlamaq mmkndr. slind
for-un qarsndaki mtrizd dyin yazmamaq v ya bir ne dyini eyni vaxta daxil etmk
mmkndr. Aadak misalda 5-in vurma cdvlini bu sulla ld etmim. Z=5 mtrizdn ld
yazlb.
30

While
While(vayl n qdr ki; o vaxta qdr ki;) for-dan frqli olaraq bir mmkn vziyytin dyicyi vaxta
qdr rti icra etmir. gr rt dorudursa(true) dvr sonsuz davam edir v rtlr tkrar-tkrar yoxlanr.

Yuxarda temperaturun 0 drcdn aa olduu halda sobann yandrlmas rti verilmidir. rt doru olan
kimi loop(dvr) i dr. rt loop-un ildiyi vaxt dyis False olsa loop ekrana nticni xartmr. rt
doru olduu halda sonsuz dvr gedir v loop-un bitdiyi stirdn sonra break lav olunmaqla sonsuz
dvrn qars alnr. Aadak msld rtin yanl olduu ana qdr dvrn ilmsi gstrilibdir.
Ac olanda cibindki 5 konfeti yeyn adamn hesabatn grrsnz. While daxilindki rtlrin v digr
funksiyalarn istifad olunma qaydasn tsvir edn sad proqram.

Continiue
Yuxarda yazdm konfetl bal proqramda yqin diqqt yetirmiiniz ki 3, 4 il qurtaran rqmlrin sonluu
dzgn yazlmayb. 3-ni, 4-ni yazlb. Continue biz 3 v 4 ddi yarandqda hmin case- aid olan
yazn ekrana vermy kmk edir. Break yazlan stird proqram tamam il dayanr. Continue is dvrn
hmin stirdn aaya getmsin imkan vermir v dvr proqram vvlindn aa glmy mcbur edir.

31

Do while
Do(du- yerin yetirmk) demk olar ki while kimidir. rt True olduu halda dvr sonsuz davam edir.
False olduu halda dvr dayandrlr. Do while -n while-dan frqi rtin false olduu halda bel yri mtriz

daxilindki mtn dvr yoxlandnda n azi bir df ilnir. Bu msld Zabilin 28 ya var false olmasna
baxmayaraq bir df ekrana verilibdir.

Dvrn adlandrlmas
Dvrn adlandrlmas dedikd myn bir dvrn qarsna ona vermk istdiyiniz ad v :-ni yazrsnz.
Daha sonra dvr myyn hdd atanda ad olan dvr qeyd edrk ona istdiyiniz mri ver bilrsiniz.
Yuxardak proqramda ilin gnlrini dvr salmam v hr 31 gndn sonra aya blg aparmaq istmim. 32
While-n yuxarsnda yazlan ayn_gnleri while dvr n seilmi ri addr. Dvr 31- atanda break-in
qarsnda yazlan dvr dayandrlr.

Array
Array(rey) matris, dzl demkdir. Bir ad altnda bir ne dyinin birlmsi n istifad edilir.
Bzn dyrlr hddindn artq ox olur. Hr bir dyr n yeni bir dyin yazmaq mmkn olmur. Bu
sbbdn eyni tipli dyinlri bir ad altnda toplu(massiv) yadda saxlayrq.

Yuxardak kild gstrildiyi kimi login_toplu v pass_toplu ad altnda hr birin aid 3 dyr qeyd
edilmidir. Burada qeydiyyatdan ken xslri cdvl lav etmiik. Proqrama daxil olmaq istynlri array
daxilindki qeydiyyata uyun olaraq yoxlayrq. Aada bu proses qismn ks edilmidir.

Array iki sulla yaradla bilr. Yuxardak misalda array-in yaradlmasnda yri mtrizlrdn istifad edilib.
Birinci sul - Array yaradarkn onun tipi(int, String, char...) qeyd edilir. Sonra array-in dyinin ad
(login_toplu v ya pass_toplu) verilir. Sonra array olmasn gstrn [ ] kvadrat mtrizlr daxil edilir.
Brabrlikdn sonra { } yri mtrizlr daxilind qeyd olunan dyrlr element adlanr v aralarnda
vergl qoyulmaq rti il ardcl qeyd olunurlar. Yuxardak msld ifr yoxlama sulu slind dzgn
hll deyildir. Bu sulla hr dyini ayrca kodla yazlmal v yoxlanmal olsaq ox tin v ar proqram
yazm olarq. Yuxardak proqram indiy qdr yrndiyimiz materiallar tkrar etm mqsdi dayr.
nallah kitabn sonunda bir layihni tam olaraq ilyib dzgn yanamalar ttbiq edcyik.

Qeyd: Array-lr daxilindki elementlri 0-dan balayaraq sayr. Birinci dyr 1-dn balamr.

kinci sulu - Array-in new mrindn istifad etmkl yaradlr. Birinci array-in tipi, ad, kvadrat
mtrizlr, brabrlikdn sonra new sonra array-in tipi, kvadrat mtriz daxilind array-in say v nqt 33
vergl yazlr. Birinci stirin altndan array dyininin ad kvadrat mtrizd elementin yerldiyi sra
nmrsi v brabrlikdn sonra elementin z qeyd olunur.

Array-in say vvld gstrilmlidir. vvlcdn nzrd tutulmam element lav etmk istsniz mtlq
mumi array saynda dyiiklik etmlisiniz. stifad etdiyimiz .length metodu array daxilindki
elementlrin sayn gstrir. gr array-in elemetleri qeyd olunmazsa default olaraq elemetler aadak
dyrlri qazanacaqlar.

String null boolean - false

Char \0 integer, double, long, short(btn rqm dyinlri) 0


oxll Array
oxll array bir dyrdn lav dyrlr sahib olmas il frqlnir. Dyrlri verilmdikd oxll
array-d eynn tk ll kimi default dyrlr sahib olur. Aadak kild oxll array tsvir edilib.

34

sasn oxll array koordinat nqtlrinin(x, y) gstrilmsini tlb edn msllrd istifad edilir.

Yuxardak msld iki koordinat nqtsin uyun olaraq Char elementlr daxil edilib. Daha sonra dvrdn
istifad edrk koordinatlarn avtomatik ld olunmasn v elementlrin yerldiyi koordinatdan arlb
ekrana verilmsini tkil etmim.

Obyektin yaradlmas
OOP nqteyi nzrdn baxsaq hr bir adam obyektdir. Myyn atributlara sahibdir v hmin atributlarla
bal funksiyalar vardr. Bel ki, bayev ailsind Zabil obyekti var. Hmin obyektin atributlar bayev class-
ndan gtrlmdr. Ibayev Zabil = new Ibayev(); mri il biz bayev class-nn tipin uyun olaraq
new(yeni) Zabil obyekti yaradr v atribut dyrlrinin Ibayev class-ndan gtrlmsini qeyd edirik.
35
Zabil obyektini yazdqdan sonra CTRL+Space dymsin basdqda siz JVM(Java Virtual Machine)-dn artq
myyn olunmu dyrlri ara bilrsiniz. Siz obyekti yaratdnz zaman ona bayev class-ndan
mlumatlar gtr bilmsini mmkn edirsiniz.

Built-in Java Packages


Java-da proqramladrmaq n endirdiyimiz JAVA JDK(Java Development Kit) trkibind Java Runtime
Enviroment(JRE) - Java-nn ilmsi n mhiti dayr. JRE-y el JVM(Java Virtual Machine)-d demk
olar. Btnlkd Java-nn ilmsini tkil edn paralardr. Oracle Java-ya bir ne ildn bir yeni lavlr
edir. Bu lavlrdn olan JRE-nin trkibindki Built-in Java Packages (daxilind Java paketlri quradrlm)
hazr proqramlar tklif edir. Package el bizim yaratdmz com.ZJAVAKITABI paketi il eyni funksiyan
dayr. Oracle bzi mumilmi msllri yenidn yazmamaq n istifadilr hazr yazlm class-lar
yni hazr yazlm proqramlar tklif edir. Hr yenilnmd yaradlm paketlr Oracle-n myyn
shiflrind yer alr. Aadak linkd bizim endirdiyimiz SE8(Standart Edition Standard buraxl) yer alr.

http://docs.oracle.com/javase/8/docs/api/
Shifd solda birinci pncrd paketlrin siyahsn grrsnz v onun altndak pncrd paketlrin
trkibindki class-lara baxa bilrsiniz. Sa trfd is sediyiniz class-n trkibi izah edilir.

Qeyd: Bel sual yarana bilr, gr built-in package-lr varsa niy Netbeans-d com.ZJAVAKITABI paketi
kimi solda grnmrlr. Bu OOP-dn yadnzdadrsa Encapsulasiya-n xatrladr. Proqramn funksiyas var
amma z grsnmir. Hazr class-larn ox olduunu nzr alsaq Oracle-n bu slubu niy sediyini
anlamaq tin deyil.

mport
Built-in Package-lr mport(idxal etmk, daxil etmk) mri vasitsil istifad olunur. arlm paketlrin
trkibind funksiya gstrmy hazr proqramlar v ttbiq olunma gzlyn method-lar mvcuddur.
Aadak misalda tqvim v tarixi ld etmk n java.util.java paketindn istifad olunmudur. 36

mport dan sonra armaq istdiyiniz paketin ad yazlr. Paketin ad yazldqdan sonra onun daxilindki
method-lar arlma gzlyir. Bel ki, bizd sad kild tarixdeyiseni-n hmin dyrlri vermiik. Hr
bir paketin v ya method-un istifad olunma qaydas var. Bunlar Oracle-n shifsind hr paket zr ayrca
izah edilmidir.

Access control( giriin idar olunmas)


Access control yazdnz class-larn, onlarn trkibindki method-larn v mumilikd yaratdnz
obyektlrin arlmas v ya onlara mdaxil olunmas qaydalarn tnzim edir. Aadak cdvld public,
private(prayvet-xsusi) v protected(protektd-qorunan) access control mrlri tsvir edilib.

Y-yes(bli) N-no(xeyr)
sasn proqramlar private v ya public olaraq tyin edilir. Bel ki, public mrini istifad etsk proqram btn
siniflr zr aq olur. Private sadc class daxilind proqram istifad olunmasn tmin edir. Digr pakage-
lr onu grmr. Protected bir o qdr d istifad olunmayan mrdir v demk olar ki, public onu hr yerd
vz ed bilir. No modifier(modifay) bndind hr hans bir mr bildirilmzs o zaman pakage-in mumi
access control dyri avtomatik mnimsdilir.

Method ndir?
Method bir nv dyin bnzyir. Hr hans bir dyr, ona verilmi ada mnimsdilir. Aadak misalda
method(); -un yazl kli gstrilmidir. Dyindn frqli olaraq method-un daxilindki dyr ondan
aada main-dn yni sas proqramdan ayr amma eyni class-n daxilind yazlr. Method yaratmaq n
biz 4 parametr lazmdr. 37
1. Access control public, private, protected
2. Return type void(method-dan ntic qaytarmr), return(hesablayb ntic qaytarr)
3. Name hr hans bir ad verilir
4. Parameter istifad edcyi parametrlr(dyrlr)

Yuxardak misalda gstrildiyi kimi method-un hesablama hisssi main-dn ayr yazlr. kinci public static
void method() yazlan hissdn balayaraq anlamaa alaq.

Method-da class kimi access control mrlrini tlb edir. Method-un public olmas onun btn
proqramlar trfindn arla bildiyini gstrir.
Static yazlmas instansnn olmamas demkdir.
Void yazlmas methodun daxilindki hesablamalarn nticlrini geri qaytarmadn amma
nticnin method daxilind olduunu gstrir
Method v ya digr ad verildikdn sonra mtriz v yri mtriz daxilind hesablama yazlr.
Method()-un main-d yazlmas il onun daxilidki proseslr main trfindn i salnr, oxunur v
method daxilindki c nticsi ekrana verilir.
38

Yuxardak misalda return type- olan ikinci msl gstrilmidir. Yni nt return type-dr.
Mtriz daxilindki dyrlr integer tipli return type-dr. Return mri z proqramn sonunda
yazlmasna baxmayaraq qaytaraca nticnin tipini vvlcdn qeyd etmyi tlb edir.
Method-a ad verildikdn sonra mtriz daxilind parametr verilmidir. Parametrlrin tipi
gstrilmidir.
Method-dak dyinlr dyrlrini main-dn gtrr. Yuxardak misalda 2 eyni adda method
gstrilmidir. Hans method-un main trfindn ilnmsini main-d yazlan method-un iindki
parametrlrin say myyn edir. gr 2 parametr a v b yazlsayd, o zaman birinci method
ilnckdi.

Constructor
Konstruktor yeni obyekti v ya obyektin instance-n yaratmaq n tyin olunmu xsusi bir method-dur.
Proqram daxilind konstruktorlar method-lardan vvl arlr. Bundan baqa method-lardan seiln sas
frqi return type-nn olmamasdr. Class-n atributlarna digr szl dyinlrin saslanaraq
obyekti(instance-) yaradr. Konstruktor ad class ad il eyni olmaldr. gr konstruktoru class adndan
frqli adlandrsanz o zaman konstruktor yox method yaratm olarsnz. Konstruktoru yaradarkn ona
ildcyi dyrlri tyin etmsniz java bir qayda olaraq hmin dyrlri konstruktor n z tyin edir.
Bundan lav, konstruktorun mtriz daxilindki parametrlri sas gtrlr. Aadak kild Constructor
adnda class yaradlmdr(class-a istdiyiniz ad ver bilrsiniz). Sonra integer-lr daxil edilmidir.
Bildirdiyimiz kimi konstruktorlarn return type- yoxdur. Ona gr getnumber() method-unu public gstrib
v onun vasitsil nticni digr class-lar trfindn arlmasn mmkn edirik. Return getnumber()
methoduna aiddir.
39

Yuxardak misalda konstruktorlarn frqli kild yaradlma sullar gstrilmidir. Getnumber() method-
unun hesablayaca dyinlr sabitdir. Method-dan sonra ilk sulu sad Constructor-u, dyinlri tyin
edilmmi variant yazmq. kinci v nc variantlarda konstruktorlarn dyinlrinin say vvlcdn
tyin edilmidir. Yuxardak class-da konstruktorun mqsdi hmin class-dak mlumatlar digr class-a
damaqdr. Bel ki, birinci yaratdmz class Constructor-un sahib olduu dyrlri ikinci yaratdmz class
ConsAdd-d ki, yeni instance-a obyekt- aadak kild trrk.

Yazlan formulda Constructor(tipi) obyekt(dyini) =(dyrin mnimsdilmsini) new(yeni instance-n


yaradlacan) Constructor(konstruktor arqumentlri v ya dyrlri gstrir). Yaradlacaq obyekt
Constructor-un tipin uyun yaradlmal v yaradldnda hans dyrlri damas ikinci Constructor-un
yanndak mtrizlr daxilind ki, arqumentlr vasitsil tyin edilir.

Daha rahat baa dmk n yazlm format bel d oxumaq olar. New(yeni) instance(obyekt)
yaradram, formas bu cr olsun Constructor(75, 30, 5), yaratdm instance-a obyekt adn verirm v
tipi Constructor olsun.

40
Inheritance-n yaradlmas
Bildiyimiz kimi inheritance, bir proqrama baqa proqramn xsusiyytlrini istifad etmy imkan yaradr.
nheritance aadak misalda extend(uzatmaq, bytmk, artrmaq) mri il yaradlmdr. Aadak
misalda A, B, C class-lar hazrlanm, daha sonra C-y uyun olaraq obyekt yaradlm, obyekt-in C-y
aid olmasna baxmayaraq B-nin dyrlrini ara bilir.

41

Super aar sz
nheritance-dan biz myyn olduu kimi, class-lar tabeliyind olduu class-n istniln dyrini ara
bilir. Bzn alt sinif(subclass) v st sinif(superclass) eyni adda dyin sahib olur. Bu zaman super
mrindn istifad edrk st sinif aid olan dyini proqramdak yerini tyin ed bilirik. Super szn qeyd
etdikdn sonra CTRL+SPACE dymlrini sxaraq istniln JVM-d olan dyri ara bilrsiniz.
42

This aar sz
This(bu demkdir) aar sz adndan grndy kimi olduu yeri tyin edir. Super aar sz il demk
olar ki, eyni mqsdi dayr. Eyni adda dyinin hans class-a aid olduunu bildirmk ndr. Super is
sas olan super class- gstrir. "This" is yazld class bildirir. Aadak misalda hr iki aar sz
gstrilmidir.

Static Variable
Statik dyinlrin birbaa mnas yanl anlala bilr. Mnimsdiyi dyrlrin hmi sabit qalmas kimi
baa dlr amma bu bel deyil. Statik dyinlr proses iind mxtlif dyrlr sahib ola bilir, amma
arld obyektlr nisbtd dyrlri sabitdir. Statik dyinlrin digr ad class dyinlridir.
Konstruktorlarda bildirmidim ki, proqram i baladnda konstruktorlar method-lardan vvl arlr.
Statik dyinlr proqram compile olunanda JVM-dki class loader trfindn myyn edilir v yaddada
saxlanlr. Bundan lav mrlr iind konstruktordan da vvl arlr. Aadak misalda sad static
dyin gstrilmidir. gr static dyinlr dyr mnimstmsk rqmlr n 0, boolean n
false, char n 0, obyekt n null gstrilckdir.

43

Burada bir java fayln iind 2 class yaratmam. Birinci class main-dir. Son nticmizd oradan apa verilir.
kinci class-mzn vzifsi sadc static dyri tqdim etmkdir. Static dyinlr mrkkb funksiyalardan
alnan dyrlri mnimstmk n statik bloklardan istifad edilir.

gr class daxilind iki statik dyin varsa JVM- yazldqlar ardclla gr yklnirlr. Statik bloklar
aadak kimi trtib edilir. Bu misalda konstruktordan istifad etmim. Konstruktorun funksiyas class-da
olan dyrlri bir class-dan digrin instance yaradaraq trmkdir. He bir dyindn istifad etmdn
class-n trkibindki iki static v bir konstruktor dyrini main class-da yeni obyekt mnimsdrk nticni
ld etmim. Nticdn d aydn olduu kimi konstruktor sralamada ikinci olsa da onun nc yazlan
static dyin ardcllqda qabaqlayr. Bundan lav konstruktor obyekti sadc main class-da yaradlmaqla
nticni ekrana verir.
Casting
Mlumatn yeni formaya evrilmsin casting deyilir. Casting dyinin v ya obyektin dyrini deyil,
onlarn int, float, char, long, short, double, byte kimi tiplrini dyiir.

float mnb = 7.06F;


int ntic = (int) mnb;

Yuxarda gstriln misalda float tipind olan dyin ondan aada yazlan sulla integer tipin
evrilmidir.

Qeyd: nheritance laqsi olan obyektlr arasnda casting etmk mmkndr.


44

Swing GUI- Qrafiki Istifadi nterfeysi


Swing Graphical User Interface(GUI) Swing Qrafiki stifadi nterfeysi Java-da arxa planda(backend)
yazlan proqramlar, istifadilr qrafiki tsvir klind(frontend) tqdim etmk n nzrd tutulub. Swing
arxa planda yazlan proqramlara qrafiki grn verir.

Swing-in strukturu
Interfeysin grnmsi n obyekt yaradlmaldr. Aadak kild Swing-in strukturu iyerarxik dzld
tsvir olunmudur. Strukturun hr bir paras bir araya glrk obyekti formaladrr v onun zrind
toplar. Component(komponent) v Container(konteyner) GU-nin yaradlmas n sas obyektlrdir.
Komponent individual elementlrdn(dymlr, yaz qutular, v s.) ibartdir. Konteynerlr d
komponentdirlr amma onlar bir ne komponenti bir arada tutmaq n istifad olunurlar.
Yuxardak tsvirdn d myyn olunduu kimi, konteynerlrin trkibind Window(pncr), Panel(lvh),
JComponent kimi komponentlr vardr. Swing-in trkibindki btn elementlri v onunla bal mrlrin
hamsn sadalamaq mmkn deyil. Hr yenilnmd yeni elementlr v funksiyalar lav oluna bilr. Bu
sbbdn ilm mntiqini anlamaq daha vacibdir. Praktiki msllr zrind mq etmk GU-lri
mnimsmkd daha byk rol oynayr. Swing standart olaraq Netbeans- yklnmidir. Bu baxmdan ilk
olaraq Swing-l tcrb kemk n dorusudur.

Salam Dnya! proqram qrafiki tsvird

45

Yuxardak Salam Dnya! proqramnn qrafiki grn swing-l trtib edilmidir. Backend-d, Swing
paketini araraq onun trkibindki JFrame(frame-riv demkdir) proqramn istifad etmiik.
Proqramdan istifad etmk n obyekt yaratmq v onun trkibindki method-lar, proqramlar v sair
dyrlri obyekt vasitsi il arr, istdiyimiz yeni dyrlrl yeni forma v funksiyalar yaradrq.

Obyekt pncr yaradldqda proqram daxilind pncrdn sonra . nqt qoysaq avtomatik olaraq JVM-
dn JFrame- aid olan funksiyalar pncr obyekti n aracaqdr. Obyektin ekranda grnmsi n
ilk mrimizi pncr.setVisible (set-tyin etmk)(visible-aydn, grnn) yazrq. Bu funksiya boolean
dyr(true v ya false) qbul edir. True- doru, tsdiqlmk mnasn verir v burada pncrnin
grnmsin razlq veririk. Daha sonra pncr.setSize(500, 400) mrlri il pncrnin hans ld
olmas myyn edilir. pncr.setDefaultCloseOperation mri pncrnin standart olaraq qapanmasn v
bu hrktin JFrame-in trkibindki Exit_ON_CLOSE mri il yaradlacaq pncrd sa st trfdki
x dymsin basarkn pncrni balamasn mr edir. Swing bard mumi tsvvr yarandn gman
edirm. Swing-in trkibindki btn mrlri zbrlmk mmkn deyildir. mumilikd proses swing
paketini daxil etmkl trkibindki proqramlar arr v istdiyimiz interfeys dizaynn trtib edirik. Swing
kimi mxtlif qrafiki interfeyslr(GUI) var. Swing mrlri il bal mxtlif shiflr mvcuddur.
http://www.tutorialspoint.com/swing/swing_controls.htm - bu shifd hr mr uyun olaraq onun alt
mrlri sad formada gstrilmidir.

You might also like