Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Lloji dhe vlera e java. Llojet primitive Java

Lloji i të dhënave përcaktohet nga tre komponentë:

  • një grup vlerash ose objektesh;
  • një grup operacionesh që mund të zbatohen për të gjitha vlerat në grup;
  • përfaqësimi i të dhënave që përcakton ruajtjen e tyre.

Cilat janë llojet e të dhënave në Java?

Gjuha e programimit përmban disa lloje të integruara të paracaktuara dhe i lejon programuesit të përcaktojnë ato të tyre, të personalizuara.

Në Java, llojet e të dhënave ndahen në lloje primitive dhe referente.

"Primitive" do të thotë se ndarja e tij e mëtejshme është e pamundur. Gjuha e programimit nuk ju lejon të zgjeroni ose ndryshoni gjuhën e saj të programimit. Një lloj i tillë i të dhënave përshkruhet nga lloje primitive dhe lloje të tjera të përcaktuara nga përdoruesi.

Një ndryshore e një lloji primitiv përmban një vlerë, ndërsa një variabël referencë përmban adresën e një objekti në memorie.

gjuha Java. koha dhe data

Të dhënat e përbëra ndahen në klasa, ndërfaqe dhe vargje. Anëtarët e një lloji të ndërfaqes janë metoda dhe konstante abstrakte. Në Java, llojet e të dhënave të datës dhe orës specifikohen nga konstruktori Date():

  • d = data e re().

gjuha Java. Llojet e të dhënave: String

Një varg është një klasë e përcaktuar në dhe mund të përdoret për të punuar me tekst (një sekuencë karakteresh).

Deklarimi i një ndryshoreje referencë String është si më poshtë: String str.

  • str = String i ri ("Përshëndetje").

Çfarë ndodh kur ky kod ekzekutohet? Së pari, memoria ndahet dhe emri str lidhet me atë vendndodhje memorie. Kjo nuk ndryshon nga deklarimi i një ndryshoreje primitive. Pjesa e dytë e kodit krijon një objekt String në memorie me tekstin "Hello" dhe ruan një referencë për të (ose një adresë memorie) në str.

Llojet e të dhënave të referencës Java ju lejojnë gjithashtu të caktoni një referencë objekti të ruajtur në një variabël tek tjetri. Ata të dy i referohen të njëjtit objekt në kujtesë. Kjo mund të arrihet si kjo:

  • stringstr1;
  • stringstr2;
  • str1 = varg i ri ("Përshëndetje");
  • str2 = str1;

Një objekt String krijohet duke përdorur operatorin e ri. Por meqenëse vargjet përdoren shpesh, ekziston një mënyrë më e lehtë për të krijuar një të tillë. Të gjitha literalet e vargut, domethënë një sekuencë karakteresh të mbyllura në thonjëza të dyfishta, trajtohen si objekte të vargut. Prandaj, në vend të operatorit të ri, mund të përdorni vargje literale:

  • String str1 = "Përshëndetje".

Llojet primitive të të dhënave të Java janë byte, short, int, long, char, float, double dhe boolean. Ato ndahen në dy kategori: logjike dhe numerike. Këto të fundit mund të ndahen në numra të plotë dhe numra me pikë lundruese.

Llojet e të dhënave të numrave të plotë Java janë lloje numerike, vlerat e të cilave janë numra të plotë. Janë pesë prej tyre: byte, short, int, long dhe char.

ndër

Int është një lloj i të dhënave primitiv i nënshkruar 32-bit. Ndryshorja zë 32 bit memorie. Gama e vlefshme është -2147483648 deri në 2147483647 (-231 deri në 231 - 1). Të gjithë numrat e plotë në këtë varg janë literale ose konstante numrash të plotë. Për shembull, 10, -200, 0, 30, 19 janë fjalë për fjalë int. Ato mund t'i caktohen një ndryshoreje int:

  • int num1 = 21;

Literalet e plota mund të shprehen si një numër binar, oktal, dhjetor dhe heksadecimal.

Kur një fjalë për fjalë fillon me zero dhe ka të paktën dy shifra, konsiderohet të jetë e shkruar në format oktal. 0 dhe 00 përfaqësojnë të njëjtën vlerë - zero.

Të gjitha literalet int në formatin heksadecimal fillojnë me 0x ose 0x dhe duhet të përmbajnë të paktën një shifër heksadecimal:

  • int num1 = 0x123.

Literalet int në format fillojnë me 0b ose 0B:

  • int num1 = 0b10101.

E gjatë

Është një tip primitiv i nënshkruar 64-bit. Përdoret kur rezultati i një llogaritjeje mund të tejkalojë diapazonin e një int. Gama e gjatësisë është -2 63 deri në 2 63 - 1. Të gjithë numrat e plotë në këtë varg janë fjalëpërfjalë të tipit të gjatë.

Për të dalluar midis llojeve të të dhënave int dhe të gjata në Java, një literal i tipit të fundit gjithmonë përfundon me L ose l.

Literalet e numrave të plotë të tipit të gjatë mund të shprehen gjithashtu në format oktal, heksadecimal dhe binar.

Kur një literal i gjatë i caktohet një variabli të gjatë, përpiluesi Java kontrollon vlerën që caktohet për t'u siguruar që është në intervalin e pranueshëm; përndryshe, do të ndodhë një gabim përpilimi.

Meqenëse diapazoni i një int është më i vogël se ai i një long, vlera e një ndryshoreje int gjithmonë mund t'i caktohet një ndryshoreje të tipit long. Por caktimi i kundërt nuk është i mundur as brenda gamës së një int. Kjo bëhet në mënyrë eksplicite:

  • num1 = (int) num2;

byte

Byte është një tip primitiv me numra të plotë 8-bit. Gama e saj është -128 në 127 (-27 në 27 - 1). Është lloji më i vogël i numrit të plotë i disponueshëm në Java. Si rregull, variablat bajt përdoren kur në program përfshihen shumë vlera në intervalin nga -128 në 127, ose kur punoni me të dhëna binare. Ndryshe nga literalet int dhe të gjata, nuk ka fjalë për fjalë bajte. Megjithatë, ju mund të caktoni çdo int literal në një ndryshore bajt, pasi ajo përfshin diapazonin e një bajt.

Nëse vlera e një ndryshoreje është jashtë diapazonit, Java do të lëshojë një gabim përpiluesi.

Përveç kësaj, ju mund të caktoni vetëm një int literal, jo vlerën e ruajtur në një ndryshore int, pasi kjo mund të rezultojë në një humbje të saktësisë. Kjo do të kërkonte një shtypje të qartë të tipit.

  • b1 = (byte)num1.

shkurt

Përfaqëson një lloj të dhënash primitiv me numër të plotë të nënshkruar 16-bit. Gama e tij është -32768 deri në 32767 (ose -2 15 deri në 2 15 - 1).

Në mënyrë tipike, nevoja për variabla të shkurtër lind kur një program përdor një numër të madh vlerash që nuk e kalojnë intervalin e specifikuar. Nuk ka fjalë për fjalë të shkurtër, por mund të caktohet çdo int literal brenda intervalit të shkurtër. Vlera e një ndryshoreje bajt gjithmonë mund të caktohet. Pjesa tjetër e rregullave për caktimin e një int ose të gjatë në një ndryshore të shkurtër janë të njëjta si për bajtin.

Char

Char është një lloj i të dhënave primitiv i panënshkruar 16-bit që përfaqëson një karakter Unicode. Mungesa e një shenje do të thotë që ndryshorja nuk mund të ketë një vlerë negative. Gama është nga 0 në 65535, që është i njëjti kodim si grupi i karaktereve Unicode. Një literal përfaqëson një vlerë char dhe mund të shprehet në format e mëposhtme:

  • një personazh i mbyllur në thonjëza të vetme;
  • sekuenca e karaktereve të kontrollit;
  • një sekuencë karakteresh kontrolli unicode;
  • sekuenca e karaktereve të kontrollit oktal.

Një karakter mund të shprehet duke e mbyllur në thonjëza të vetme: char C1 = "A". tregojnë një varg literal që nuk mund t'i caktohet një ndryshoreje char, edhe nëse vargu përbëhet nga vetëm një karakter. Kjo nuk lejohet sepse një referencë për një ndryshore primitive nuk është caktuar. Të gjitha literalet e vargjeve janë objekte të klasës String dhe për rrjedhojë referenca, ndërsa literalet e karaktereve janë të një lloji primitiv.

Një fjalë për fjalë e shprehur në një sekuencë ikjeje shkruhet si një vijë e prapme e ndjekur nga një karakter në thonjëza të vetme. Janë gjithsej 8 prej tyre: '\n', '\r', '\f', '\b', '\t', '\\', '\"', '\'.

Sekuenca e ikjes së Unicode është e formës "\uxxxx", ku \u (një vijë e prapme e ndjekur nga një shkronja e vogël u) tregon fillimin e saj dhe xxxx përfaqëson saktësisht katër shifra heksadecimal të kodit të karakterit Unicode. Për shembull, "A" ka vlerën 65 në dhjetor dhe 41 në heksadecimal. Kështu, ky karakter mund të përfaqësohet si "\u0041".

Një sekuencë oktale e ikjes shkruhet si "\nn", ku n është një shifër oktale (0-7). Gama e vlerave është nga "\000" në "\377", ku 377 8 korrespondon me 255 10. Prandaj, përdoret për të përfaqësuar karaktere nga 0 në 255, e cila është e nevojshme për pajtueshmërinë me gjuhët e tjera të programimit. Ndryshe nga sekuenca Unicode, ku kërkohen të katër shifrat heksadecimal, këtu mund të përdoren 1, 2 ose 3 shifra oktal: "\n", "\nn" ose "\nn".

tip boolean

Boolean ka vetëm dy vlera reale: true (e vërtetë) dhe false (false). Ata quhen literale boolean. Një variabël boolean nuk mund të transferohet në një lloj tjetër dhe anasjelltas. Java nuk përcakton madhësinë e një boolean - kjo varet nga zbatimi i veçantë i JVM.

Llojet e të dhënave me pikë lundruese Java

Një numër që përmban një pjesë të pjesshme mund të ruhet në kujtesën e kompjuterit në një paraqitje me një numër të caktuar shifrash para dhe pas pikës, ose me një tregues të pozicionit të saj. Meqenëse numri i shifrave mund të ndryshojë, pika thuhet se "lundron".

Në gjuhën Java, llojet e të dhënave me pikë lundruese përdorin 32 bit. Sipas standardit IEEE 754, kjo korrespondon me saktësinë e vetme, e cila lejon që numrat 1.4 x 10 -45 dhe 3.4 x 10 38 të përfaqësohen, për shembull, pozitiv dhe negativ.

Çdo gjë që mbaron me f ose F quhet literale float. Ato mund të paraqiten në format dhjetor dhe në shënime shkencore. Për shembull:

  • float f1 = 3,25F;
  • float f2 = 32.5E-1F;
  • float f3= 0,325E + 1F.

Lloji përcakton dy zero: +0.0F (ose 0.0F) dhe -0.0F. Megjithatë, për qëllime krahasimi, të dyja zerat konsiderohen të barabarta. Përveç kësaj, ai përcaktoi dy lloje të pafundësisë: pozitive dhe negative. Rezultatet e disa operacioneve (për shembull, janë të papërcaktuara dhe përfaqësohen nga vlera e veçantë NaN.

saktësi të dyfishtë

Double përdor 64 bit për të ruajtur numrat me pikë lundruese. Një numër me saktësi të dyfishtë mund të përfaqësojë vlera pozitive dhe negative prej 4.9 x 10 -324 dhe 1.7 x 10308.

Të gjithë numrat realë janë fjalë për fjalë të dyfishta si parazgjedhje. Opsionale, ato mund të tregohen në mënyrë eksplicite me prapashtesën d ose D, për shembull, 19.27d. Një fjalë për fjalë e dyfishtë mund të shprehet si në shënimet dhjetore ashtu edhe në ato shkencore.

Variabla na jepet me emrin e ruajtjes në mënyrë që programi ynë të mund të manipulohet. Çdo variabël në Java ka një lloj specifik, i cili përcakton madhësinë dhe vendndodhjen e tij në memorie; gamën e vlerave që mund të ruhen në memorie; dhe një grup operacionesh që mund të aplikohen në variabël.

Të gjitha variablat duhet të deklarohen përpara se të përdoren. Forma kryesore e deklaratës është paraqitur më poshtë:

Variabli i tipit të të dhënave [= vlera], [ndryshorja [= vlera], ...] ;

Për të deklaruar më shumë se një ndryshore të një lloji të caktuar, mund të përdorni një listë të kufizuar me presje.

Më poshtë janë shembuj të deklarimit dhe inicializimit të variablave në Java:

Int a, b, c; // Deklarimi i tre numrave të plotë a, b dhe c. int a = 10, b = 10; // Shembull i inicializimit. bajt b = 22; // Inicializimi i variablit b të tipit bajt. pi i dyfishtë = 3,14159; // Deklarimi dhe caktimi i pi. char a = "a"; // Variablës a të tipit char i caktohet vlera "a".

Në këtë tutorial, ne do të shikojmë llojet e ndryshme të variablave të disponueshëm në gjuhën Java. ekziston tre lloje të variablave:

  • variabla lokale;
  • variablat e shembullit;
  • variablat statike ose variablat e klasës.

Variablat lokalë në Java

  • Ndryshoret lokale deklarohen në metoda, konstruktorë ose blloqe.
  • Variablat lokale krijohen kur metoda, konstruktori ose blloku ekzekutohet dhe shkatërrohet pasi të përfundojë metoda, konstruktori ose blloku.
  • Modifikuesit e aksesit nuk mund të përdoren në variablat lokale.
  • Ato janë të dukshme vetëm brenda metodës, konstruktorit ose bllokut të deklaruar.
  • Variablat lokalë zbatohen në nivel stack brenda.
  • Java nuk ka një vlerë të paracaktuar për variablat lokale, kështu që ato duhet të deklarohen dhe duhet të caktohet një vlerë fillestare përpara përdorimit të parë.

Shembull

"age" është një ndryshore lokale, e përcaktuar brenda metodës "pupAge()" dhe shtrirja e saj është e kufizuar vetëm nga kjo metodë.

Testi i klasës publike (publik void pupAge() ( mosha int = 0; mosha = mosha + 7; System.out.println ("Mosha e qenushit: " + mosha); ) boshllëku publik statik kryesor (String args) ( Testi i testit = i ri Test(); test.pupAge(); ) )

Rezultati i mëposhtëm do të merret:

Mosha e qenushit: 7

Shembull pa inicializim

Një shembull i përdorimit të "moshës" pa inicializim. Programi do të japë një gabim gjatë përpilimit.

Testi i klasës publike( public void pupAge()( mosha int; mosha = mosha + 7; System.out.println("Mosha e qenushit: " + mosha); ) boshllëku publik statik kryesor (String args) ( Testi i testit = Testi i ri( ); test.pupAge(); ) )

Kjo do të rezultojë në mesazhin e mëposhtëm të gabimit në kohën e përpilimit:

Test.java:4:numri i ndryshores mund të mos jetë inicializuar mosha = mosha + 7; ^1 gabim

Variablat e shembullit

  • Variablat e shembullit deklarohen në një klasë, por jashtë një metode, konstruktori ose ndonjë blloku.
  • Kur ndahet hapësira për një objekt në pirg, krijohet një vend i caktuar për secilën vlerë të variablit të shembullit.
  • Në Java, variablat e shembullit krijohen kur një objekt krijohet me fjalën kyçe "të re" dhe shkatërrohen kur objekti shkatërrohet.
  • Variablat përmbajnë vlera që duhet t'i referohen më shumë se një metode, konstruktori ose blloku, ose pjesëve kryesore të gjendjes së një objekti që duhet të jenë të pranishme në të gjithë klasën.
  • Variablat e shembullit mund të deklarohen në nivel klase, para ose pas përdorimit.
  • Modifikuesit e aksesit mund të sigurohen në variablat e shembullit.
  • Variablat e shembullit në Java janë të dukshme për të gjitha metodat, konstruktorët dhe blloqet në një klasë. Si rregull, rekomandohet t'i bëni ato private (niveli i aksesit). Megjithatë, ju mund t'i bëni ato të dukshme për nënklasat e këtyre variablave duke përdorur modifikuesit e aksesit.
  • Variablat e shembullit kanë vlera të paracaktuara. Default është 0 për numrat, false për booleans, null për referencat e objekteve. Vlerat mund të caktohen në deklaratë ose në konstruktor.
  • Variablat e shembullit në Java mund të aksesohen drejtpërdrejt duke thirrur emrin e ndryshores brenda klasës. Megjithatë, në metodat statike dhe klasa të ndryshme (kur aksesueshmëria u jepet variablave të shembullit) duhet të thirren duke përdorur emrin plotësisht të kualifikuar - Referenca e objektit.Emri i ndryshores.

Shembull

import java.io.*; klasa publike Punonjës( // Ndryshorja e shembullit është publike për çdo klasë fëmijë. Emri publik i vargut; // Ndryshorja paga është e dukshme vetëm në Punonjës. paga e dyfishtë private; // Emri i ndryshores është caktuar në konstruktor. Punonjës publik (String empName)( emri = empName; ) // Pagës i caktohet një vlerë publike void setSalary(double empSal)( paga = empSal; ) // Kjo metodë printon të dhënat e punonjësve public void printEmp()( System.out.println("emri: " + emri) ; System.out.println ("paga:" + paga); ) publik statik void main (String args) ( Punonjës empOne = Punonjës i ri ("Oleg"); empOne.setSalary (1000); empOne.printEmp ();))

Programi do të prodhojë daljen e mëposhtme:

Emri: Oleg paga: 1000.0

Variablat e klasës ose variablat statike në Java

  • Variablat e klasës, të njohura gjithashtu si variabla statike në Java, të cilat deklarohen me fjalën kyçe statike në një klasë, por jashtë një metode, konstruktori ose blloku.
  • Do të ketë vetëm një kopje të çdo ndryshoreje statike në klasë, pavarësisht se sa objekte janë krijuar prej saj.
  • Variablat statikë ose të klasës përdoren rrallë në Java, përveç rasteve kur deklarohen si konstante. Konstantet janë variabla që deklarohen si publike/private, përfundimtare dhe statike. Konstantet nuk ndryshojnë kurrë nga vlera e tyre origjinale.
  • Në Java, variablat statike krijohen kur programi fillon dhe shkatërrohen kur programi ndalon së funksionuari.
  • Dukshmëria është si një variabël shembulli. Megjithatë, shumica e ndryshoreve statike deklarohen publike sepse ato duhet të jenë të disponueshme për përdoruesit e klasës.
  • Vlerat e paracaktuara janë të njëjta si për shembull variablat. Për numrat, parazgjedhja është 0, për të dhënat e tipit Boolean - false; dhe për referencat e objekteve - null. Vlerat mund të caktohen në deklaratë ose në konstruktor. Përveç kësaj, ato mund të caktohen në blloqe speciale të iniciatorëve statikë.
  • Variablat statike mund të aksesohen duke thirrur me emrin e klasës Emri i klasës.Emri i ndryshores.
  • Kur deklarohen variablat e klasës si publike, statike, përfundimtare, emrat janë me shkronja të mëdha. Nëse variablat statike nuk janë, sintaksa është e njëjtë si për shembull dhe variablat lokale.

Shembull

import java.io.*; Klasa publike Punonjës( // paga(paga) variabël privat statik privat statik paga e dyfishtë; // DEPARTAMENTI(departamenti) është një konstante publike statike përfundimtare String DEPARTMENT = "Zhvillimi "; publik static void main(String args)( paga = 1000; System.out.println(DEPARTMENT+"paga mesatare: "+paga); ) )

Kjo do të prodhojë rezultatin e mëposhtëm:

Paga mesatare e zhvillimit: 1000

Shënim: për t'u aksesuar nga një klasë e jashtme, konstantat duhet të jenë të disponueshme si Punonjës.DEPARTMENT.

Në materialet e mëparshme, modifikuesit e aksesit u përmendën më shumë se një herë. Në mësimin tjetër, ne do t'i shikojmë ato në detaje.

Llojet numerike janë lloje të krijuara për të ruajtur numrat. Kur kryeni veprime matematikore, keni të bëni me vlera numerike. Ekzistojnë dy lloje të llojeve numerike. Quhen ato që janë krijuar për të ruajtur numrat pa pjesë thyesore e tërë llojet, dhe ato që mund të ruajnë pjesën thyesore të numrit - reale, ose lloje me pikë lundruese.

Gjuha Java nuk ka konceptin e numrave të panënshkruar. Të gjitha llojet numerike të kësaj gjuhe janë të nënshkruara. Për shembull, nëse vlera e një ndryshoreje të tipit byte është 0x80 në heksadecimal, atëherë ky numër është -1.

2.1.1.1. Llojet e numrave të plotë

Mungesa e numrave të panënshkruar në Java e përgjysmon numrin e llojeve të numrave të plotë. Gjuha ka 4 lloje numrash të plotë, duke zënë 1, 2, 4 dhe 8 bajt në memorie. Çdo lloj - byte, short, int dhe long - ka përdorimet e tij natyrale.

Llojibajt

Lloji i bajtit është një tip 8-bitësh i nënshkruar. Gama e tij është -128 deri në 127. Ai është më i përshtatshmi për ruajtjen e një rryme arbitrare bajtësh të shkarkuar nga rrjeti ose nga një skedar,

bajt b;
bajt c = 11;

Nëse nuk përfshihet manipulimi i bitit, përdorimi i llojit të bajtit në përgjithësi duhet të shmanget. Për numrat e plotë normalë të përdorur si numërues dhe në shprehje aritmetike, lloji int është shumë më i përshtatshëm.

Llojishkurt

Short është një lloj 16-bitësh i nënshkruar. Gama e tij është -32768 deri në 32767. Ky është ndoshta lloji më i rrallë i përdorur në Java, sepse përkufizohet se ka në fillim bajtin më të rëndësishëm,

Pantallona të shkurtra;
t shkurt = 129;
Llojindër

Lloji int përdoret për të përfaqësuar numrat e plotë të nënshkruar 32-bit. Gama e vlerave të vlefshme për këtë lloj është -2147483648 deri në 2147483647. Ky lloj i të dhënave përdoret më së shpeshti për të ruajtur numra të plotë të rregullt me ​​vlera deri në dy miliardë. Ky lloj është i shkëlqyeshëm për përdorim në përpunimin e grupeve dhe numëruesit. Në vitet e ardhshme, ky lloj do të përputhet në mënyrë të përkryer me fjalët e makinës jo vetëm të procesorëve 32-bit, por edhe të procesorëve 64-bit me mbështetje për tubacion të shpejtë për të ekzekutuar kodin 32-bit në modalitetin e pajtueshmërisë. Kurdoherë që variablat e tipeve bajt, shkurt, int dhe literale integer shfaqen në të njëjtën shprehje, lloji i të gjithë shprehjes kalohet në int përpara përfundimit të vlerësimit.

int j = 1000;
Llojigjatë

Lloji i gjatë ka për qëllim të përfaqësojë numra të nënshkruar 64-bit. Gama e tij e vlerave të vlefshme është mjaft e madhe edhe për detyra të tilla si numërimi i numrit të atomeve në univers,

gjatëm;
gjatën = 123;

Ai duhet të identifikohet thellësi bit një tip numër i plotë me sasinë e memories që zë. Kodi Java ekzekutues mund të përdorë aq memorie sa e sheh të arsyeshme për variablat tuaja, për sa kohë që sjellja e tyre përputhet me sjelljen e llojeve që specifikoni.

Tabela 2.1. Tabela e thellësive të biteve dhe diapazoneve të vlefshme për lloje të ndryshme numrash të plotë

Bit thellësi

Gama

-9, 223, 372,036, 854, 775, 808 ... 9, 223, 372, 036, 854, 775, 807

-2, 147, 483, 648 .... 2, 147, 483, 647

-32,768 .... 32, 767

-128 ... 127

2.1.1.2. Numrat me pikë lundruese

Numrat me pikë lundruese, që shpesh quhen numra realë në gjuhë të tjera, përdoren në llogaritjet që kërkojnë përdorimin e një pjese thyesore. Java zbaton një grup standard (IEEE-754) të llojeve për numrat me pikë lundruese - float dhe double dhe operatorët për të punuar me ta.

Tabela 2.2. Karakteristikat e llojeve me pikë lundruese

Bit thellësi

Gama

1.7e-308....1.7e+ 308

3.4e-038....3.4e+ 038

Llojinoton

Në variablat me normale, ose saktësi e vetme, deklaruar duke përdorur fjalën kyçe float, 32 bit përdoren për të ruajtur një vlerë reale,

noton f;
float f2 = 3,14;
Llojidyfishtë

Kur Precizion i dyfishtë, specifikuar duke përdorur fjalën kyçe të dyfishtë, 64 bit përdoren për të ruajtur vlerat. Gjithçka transcendentale funksionet matematikore si sin, cos, sqrt japin një rezultat të dyfishtë,

dyfishtëd;
pi i dyfishtë = 3.14159265358979323846;

Një variabël është elementi bazë i ruajtjes së informacionit në një program Java. Një variabël karakterizohet nga një kombinim i identifikuesit, llojit dhe shtrirjes. Në varësi të vendit ku është deklaruar ndryshorja, ajo mund të jetë lokale, për shembull, për të koduar brenda një metode, ose mund të jetë një variabël shembulli i një klase që është i disponueshëm për të gjitha metodat e asaj klase. Hapësirat lokale deklarohen duke përdorur mbajtëse kaçurrelë.

1.1. Deklarimi i variablave

Të gjitha variablat duhet të deklarohen përpara se të përdoren për herë të parë në një program. Forma bazë e një deklarate variabli është:

shkruani id[=vlera][, id[=vlera]...];

Llojiështë ose një nga llojet e integruara, ose emri i një klase ose ndërfaqeje. Më poshtë janë disa shembuj të deklaratave të variablave të llojeve të ndryshme. Vini re se disa nga shembujt përfshijnë inicializimin e vlerës fillestare. Variablat për të cilat vlerat fillestare nuk janë specifikuar inicializohen automatikisht në zero.

Tabela 1.1. Deklarimi i variablave të llojeve të ndryshme

Lloji i ndryshores

në një,b, c;

Deklaron tre ndryshore të plota a,b, c

int d = 3, e,f = 5;

Deklaron edhe tre variabla me numër të plotë, inicializond dhef

bajt z = 22;

Deklaron një variabëllloji zbyte dhe inicializoni atë

pi i dyfishtë = 3,14159;

Deklaron një variabëllloji pidyfishojeni dhe inicializoni me pi

char x ="x";

Ndryshorja e karakterit x merr vlerën "x"

Një identifikues është emri i një ndryshoreje. Çdo sekuencë e shkronjave të vogla dhe të mëdha, numrave dhe simboleve _ (nënvizim) dhe $ (dollar) mund të përdoret si identifikues. Identifikuesit nuk duhet të fillojnë me një shifër.

Një vlerë është çdo fjalë për fjalë ose shprehje që vlerësohet në një vlerë të të njëjtit lloj (ose të tipit të përputhshëm). Shembulli i mëposhtëm krijon tre variabla që korrespondojnë me brinjët e një trekëndëshi kënddrejtë dhe më pas përdor teoremën e Pitagorës për të llogaritur gjatësinë e hipotenuzës, në këtë rast numrin 5, madhësinë e hipotenuzës së një trekëndëshi klasik kënddrejtë me brinjë 3- 4-5.

Variablat e klasës (
kryesore e zbrazët statike publike (args me vargje)(
dyfishi a = 3;
dyfishi b = 4;
c dyfishtë;
nga= Math.sqrt (a* a + b* b);
System.out.println("c = "+c);
}

1.2. Shtrirja e ndryshueshme

Blloqet e deklaratave të përbëra në Java janë shënuar me një palë kllapa kaçurrelë (). Variablat në Java hyjnë në fuqi nga pika e programit ku deklarohen deri në fund të bllokut përmbajtës. Blloqet mund të vendosen mbivendosur dhe secili mund të ketë grupin e vet të variablave lokale.

Ne kemi përdorur tashmë variabla në shembujt tanë, sepse pa to do të ishte shumë e vështirë për të shpjeguar llojet primitive të të dhënave në Java, por ne nuk u fokusuam në këtë, pasi kjo nuk është një temë e madhe dhe komplekse. Nuk kemi folur ende për konstante në Java. Dhe tani ka ardhur koha! Epo le të shkojmë!

Një variabël është komponenti kryesor i ruajtjes së të dhënave në një program Java. Një variabël përcaktohet nga një kombinim i një identifikuesi, një lloji dhe një vlerë fillestare opsionale. Përveç kësaj, të gjitha variablat kanë një shtrirje që përcakton dukshmërinë e tyre ndaj objekteve të tjera dhe jetëgjatësinë.

Në Java, të gjitha variablat duhet të deklarohen përpara se të përdoren. Ju mund të deklaroni një variabël kudo në program. Forma bazë e një deklarate variabli duket si kjo:

lloji identifikues[=vlera][, identifikues[=vlera] ...] ;

  • llojiështë një nga llojet primitive Java, ose emri i një klase ose ndërfaqeje.
  • identifikuesështë emri i ndryshores

Një variabël mund t'i caktohet një vlerë fillestare (inicializohet) duke specifikuar një shenjë të barabartë dhe një vlerë. Mos harroni se shprehja e inicializimit duhet të kthejë një vlerë të të njëjtit lloj (ose të pajtueshëm) siç është specifikuar për variablin. Ju mund të përdorni një listë të kufizuar me presje për të deklaruar më shumë se një ndryshore të një lloji të caktuar.

Disa shembuj të deklarimit të variablave të llojeve të ndryshme janë dhënë më poshtë. Vini re se disa deklarata inicializojnë variablat.

a , b , c ; // deklarimi i tre variablave të tipit int: a, b dhe c
ndër d = 3 , e , f = 5 ; // deklarimi i tre variablave të tjera int meinicializimi i d dhe f
bajt z = 22 ; // inicializimi i ndryshores z
dyfishtë pi = 3.14159 ; // deklarimi i vlerës së përafërt të ndryshorespi
karakter x = "x"; // duke i caktuar vlerën "x" ndryshores x

Ju nuk mund të përdorni një variabël të painitializuar në shprehje, kështu që ndryshorja duhet të inicializohet ose kur deklarohet ose para se të përdoret në ndonjë shprehje. Për shembull, fragmenti i mëposhtëm i kodit do të njihet si një gabim tashmë në fazën e përpilimit.

ditet e pushimeve ;
Sistemi . jashtë . println( ditet e pushimeve) ; // GABIM! Variabla nuk është inicializuar

Ne kemi diskutuar tashmë se si të emërtojmë siç duhet variablat.

Inicializimi dinamik i variablave

Java lejon që variablat të inicializohen në mënyrë dinamike me çdo shprehje të vlefshme në kohën kur deklarohet variabla. Për shembull:

a = 3.0 , b = 4.0 ;
// inicializimi dinamik i variablës c
dyfishtë c = Math . sqrt ( a * a + b * b) ;
Sistemi . jashtë . println( "Hipotenuza është" + c) ;

Shtrirja dhe jetëgjatësia e variablave

Kjo është një çështje e rëndësishme dhe duhet të shqyrtohet më në detaje. Dhe për këtë, së pari duhet të marrim parasysh përdorimin e blloqeve të kodit në Java.

Përdorimi i blloqeve të kodit

Java lejon që një ose më shumë deklarata të grupohen në blloqe kodi, të quajtura gjithashtu blloqe kodi. Kjo bëhet duke i vendosur operatorët në mbajtëse kaçurrelë. Pasi të krijohet, një bllok kodi bëhet një njësi logjike që mund të përdoret në të njëjtat vende si një deklaratë e vetme. Për shembull, një bllok mund të shërbejë si objektiv për deklaratat nëse dhe për. Merrni parasysh deklaratën e mëposhtme nëse:

( x< y ) { // fillimi i bllokut
x=y;
y= 0 ;
} // fundi i bllokut

Në këtë shembull, nëse x është më pak se y, programi do të ekzekutojë të dy deklaratat brenda bllokut. Kështu, të dy deklaratat brenda bllokut formojnë një njësi logjike, dhe ekzekutimi i një deklarate është i pamundur pa ekzekutimin e njëkohshëm të të dytit. Ideja bazë pas kësaj qasjeje është se sa herë që dy ose më shumë deklarata duhet të lidhen logjikisht, kjo bëhet duke krijuar një bllok.

Java lejon deklaratat e variablave brenda çdo blloku. Një bllok fillon me një mbajtës kaçurrel hapës dhe përfundon me një mbajtës kaçurrelë mbyllës. Blloku përcakton shtrirjen. Kështu, në hapjen e çdo blloku të ri, ne krijojmë një të ri fushëveprimi. Fushëveprimi specifikon se cilat objekte janë të dukshme për pjesët e tjera të programit. Ai gjithashtu përcakton jetëgjatësinë e këtyre objekteve.

Rregulli kryesor për t'u mbajtur mend është se variablat e deklaruar brenda një fushëveprimi nuk janë të dukshëm (d.m.th., të paarritshëm) për kodin që është jashtë fushëveprimit. Kështu, deklarimi i një variabli brenda një fushëveprimi çon në lokalizimin dhe mbrojtjen e tij nga aksesi dhe/ose ndryshimet e paautorizuara.

Fushat mund të mbivendosen. Për shembull, sa herë që krijojmë një bllok kodi, ne krijojmë një fushë të re, të mbivendosur. Në këto raste shtrirja e jashtme përfshin shtrirjen e brendshme. Do të thotë se objektet e deklaruara në shtrirjen e jashtme do të jenë të dukshme për kodin e përcaktuar në shtrirjen e brendshme. Megjithatë, e kundërta nuk është e vërtetë. Objektet që deklarohen në hapësirën e brendshme nuk do të jenë të dukshme jashtë tij. Kjo mund të sqarohet me shembullin e mëposhtëm:

E ndryshueshme y, i përcaktuar brenda fushës së tij të kufizuar nga mbajtëset kaçurrelë, është i disponueshëm vetëm brenda tij. Jashtë saj, ndryshorja y nuk është më e disponueshme dhe ndryshorja x në dispozicion, dhe në shtrirjen e ndryshores y.

Një nuancë tjetër e rëndësishme për t'u mbajtur mend është se variablat krijohen kur hyjnë në fushëveprimin e tyre dhe shkatërrohen kur e lënë atë.

Kjo do të thotë se ndryshorja do të humbasë vlerën e saj sapo të dalë jashtë fushëveprimit.

Edhe pse blloqet mund të ndërtohen, nuk mund të deklaroni variabla me të njëjtin emër në bllokun e brendshëm si në shtrirjen e jashtme.

Kodi i treguar në shembullin në të majtë do të japë një gabim përpilimi.

Truket e tilla të mundshme në C dhe C++ nuk funksionojnë në Java.

Konstantet në Java

Në Java, konstantet shënohen me fjalën kyçe final. Fjalë kyçe final do të thotë që ju mund t'i caktoni një vlerë kësaj ndryshoreje vetëm një herë, pas së cilës ajo nuk mund të ndryshohet. Rekomandohet përdorimi i shkronjave të mëdha për emërtimin e konstantave, megjithëse kjo nuk kërkohet, por ky stil kontribuon në lexueshmërinë e kodit. Një shembull i një deklarate konstante:

dyfishtë CM_PER_INCH = 2.54 ;

Një konstante mund të mos inicializohet kur deklarohet, por duhet të inicializohet përpara se të përdoret në ndonjë shprehje, ashtu si një ndryshore, por kjo mund të bëhet vetëm një herë. Për më tepër, kjo mund të bëhet edhe në deklarata të kushtëzuara, domethënë për të inicializuar vlerën e një konstante në varësi të kushteve. Përpiluesi do të kontrollojë të gjitha opsionet e mundshme dhe nëse ka të paktën një ku konstanta mund të mos inicializohet, do të gjenerojë një gabim.

Artikujt kryesorë të lidhur