16
Identifikatoriai ir unikodas Komentarai Raktiniai žodžiai Duomenų tipai Pirminiai duomenų tipai ◊ Sveikieji skaičiai ◊ Slankaus kablelio skaičiai ◊ Simboliai ◊ Loginiai kintamieji Pirminių duomenų tipų konvertavimas ◊ Slankaus kablelio į sveikąjį skaičių double tipo į float ◊ Loginis į arba iš bet kurio tipo Kintamųjų paskelbimas ◊ Galiojimas ◊ Kintamųjų pavadinimai Operacijos ◊Operacijos su skaičiais ◊Unarinės operacijos ◊Binarinės operacijos Sintaksė ir semantika

Identifikatoriai ir unikodas Komentarai Raktiniai žodžiai Duomenų tipai

Embed Size (px)

DESCRIPTION

Sintaks ė ir semantika. Identifikatoriai ir unikodas Komentarai Raktiniai žodžiai Duomenų tipai Pirminiai duomenų tipai ◊ Sveikieji skaičiai ◊ Slankaus kablelio skaičiai ◊ Simboliai ◊ Loginiai kintamieji Pirminių duomenų tipų konvertavimas ◊ Slankaus kablelio į sveikąjį skaičių - PowerPoint PPT Presentation

Citation preview

Page 1: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

•Identifikatoriai ir unikodas •Komentarai •Raktiniai žodžiai •Duomenų tipai •Pirminiai duomenų tipai ◊ Sveikieji skaičiai ◊ Slankaus kablelio skaičiai ◊ Simboliai ◊ Loginiai kintamieji •Pirminių duomenų tipų konvertavimas ◊ Slankaus kablelio į sveikąjį skaičių

◊ double tipo į float ◊ Loginis į arba iš bet kurio tipo

•Kintamųjų paskelbimas ◊ Galiojimas ◊ Kintamųjų pavadinimai •Operacijos ◊Operacijos su skaičiais

◊Unarinės operacijos ◊Binarinės operacijos◊Operacijos su objektais◊Operacijos su eilutėmis

Sintaksė ir semantika

Page 2: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

1. // tekstas Visas tekstas toliau už // ženklo iki eilutėspabaigos bus ignoruojamas.

2. /* tekstas */ Visas komentarų tekstas ignoruojamas. Jis gali susidaryti iš daugelio eilučių.

3. /** tekstas */Komentarai skirti įtraukti į javadoc generuojamą dokumentaciją

Galimi Java komentarų stiliai:

Komentarų pvz:

class test{ public static final void main (String[] S){/* normalūs komentarai su // /* /** simboliai viduje. komentarai pasibaigia čia */ System.out.println(“Sveikas, Pasauli!”);}}

Page 3: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Java kalbos raktiniai žodžiai abstract do implements package throw

boolean double import private throws

break else *inner protected transient

byte extends instanceof public try

case final int *rest *var

*cast finally interface return void

catch float long short volatile

char for native static while

class *future new super ** strictfp

*const *generic null*** switch

continue *goto operator synchronized

default if *outer this

* - rezervuoti ateičiai,** - buvo pridėti Java 2 *** - null yra specialus kintamasis ir Java 2 versijoje nevadinamas raktiniu.

Page 4: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Vardas Dydis Minimumas Maksimumas Pavyzdys

byte   8 -128 127 16,-16

short   16 -32768 32767 99, -99

int   32 -2147483648 2147483648 99999, -

99999

long   64 -9223…808 9223…807 10000000

Sveikieji skaičiai:

Pavyzdžiai:

short i = 0x7fff; // šešioliktaine forma short j = 07777; // tas pats aštuntaine forma short k = 32767 // tas pats dešimtaine forma

Cikliškas perkėlimas:

byte i=(byte)127; boolean b=(byte)(i+1) == -128; // !Keista

Page 5: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Slankaus kablelio skaičiai:1. Yra dviejų tipų: float ir double2. Nutylimieji visuomet double tipofloat num = 1.0; //! Kompiliavimo klaida

// nes 1.0 yra double tipoTeisingai:float num = 1.0f; //arbafloat num = (float)1.0;

3. Galimos specifinės reikšmės:Float.MAX_VALUEFloat.MIN_VALUEFloat.NaNFloat.NEGATIVE_INFINITYFloat.POSITIVE_INFINITY

4. Analogiškai Double5. Daugiaženklius lyginti pavojinga!

Pvz.: Rezultatas0.333333333333333333!=0.3333333333333333333

bus sunkiai prognozuojamas

Page 6: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Perėjimo sekos

Paskirtis Unikodas

\b Tarpas \u0008 \t Horizontalus tarpas \u0009 \n Eilutės perdavimas \u000a \f Eilutės perstūma \u000c \r Karietėlė \u000d \" Dviguba kabutė \u0022 \' Vienguba kabutė \u0027 \\ Pasviras brūkšnys \u005c

Simboliai (characters)

Perėjimas į unikodo simbolius:

Pavyzdžiai:

'a' - simbolis . '\n' - eilutės perdavimas. '\\' - unikodo pasviras brūkšnys. '\u0042' - unikodas seka.

Unikodo koncsorciumo Web puslapis:http://www.unicode.org

Page 7: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Loginiai kintamieji1. Tik dvi reikšmės true ir false2. Galima naudoti santykio operacijas. Pvz:

boolean tiesa=1==1, netiesa=1==0;

Prad.   tipas

Paskirties tipas   byte  

short  

int  

long  

float  

double

char  

boolean

  byte   C X

  short  

C, L C X

  int   C, L C, L C, L X

  long   C, L C, L CL C, L C C, L X

  float   C, L C, L CL C, L C, L X

 double C, L C, L CL C, L C, L C, L X

  char   C, L C C C C C C X

boolean X X X X X X X

C - kad konvertuoti jūs turite naudoti (cast)operatorių; L - konvertavimo metu galima prarasti

tikslumas; X - konvertavimas draudžiamas.

Tipų konvertavimas:

Pavyzdys: int i = 1; short j = 1; // ! Klaida

Page 8: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Kintamųjų paskelbimo taisyklės:1. Kintamieji gali būti pirminių tipų,

objektai ir interfeisai;2. Kintamojo paskelbimas gali būti pratęstas pradinės

reikšmės priskyrimu;3. Kintamųjų paskelbimo vietą pasirenkate laisvai.

Kintamųjų paskelbimo pavyzdžiai:

int i=42; String it="Hello World"; float pi=3.14f; boolean cont;

Kintamieji galioja kol neišeinama iš jų paskelbimobloko {}. Pavyzdžiui

class foo { int cnt; public void test1() {

int num; } public void test2() {

for( int cnt=0; cnt< 5; cnt++)System.out.println(cnt);

} }

Page 9: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Kintamųjų galiojimo medis:

Kintamųjų užgožimo efektas ir sprendimas:this.cnt = 4;

Kintamųjų vardai ir jų paskelbimas:1. Turi prasidėti raide;2. Toliau gali būti ir skaitmenys bei skyrybos ženklai;3. Vardai negali dubliuotis to paties lygio bloke;4. Simboliai laikomi vienodais tada ir tik tada, kai

sutampa jų unikodo reikšmės.

Page 10: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Operacijos. [] ()

++ -- ! ~ instanceof * / % + -

<< >> >>> < > <= >=

== != & ^ |

&& || ?: = Op= ,

Operacijų eiliškumo tvarka yra iš viršaus į apačią.Tos pačios eilutės operacijos yra lygaus pirmumo.Pvz. x = 2+4*3 rezultatas dėl eilišk. bus x=14, bet ne 18.

1 tipas 2 tipas Rezultatas

byte   byte   int   byte   short   int   byte   int   int   byte   long   long   short   short   int   short   int   int   short   long   long  

int   int   int  

int   long   long  

int   float   float  

int   double double

float   float   float  

float   double double

1 tipas 2 tipas Rezultatas

Operacijos su skaičiais:

Page 11: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Operacija Aprašymas

- Unarinis minus

+ Unarinis plius

~ Bitinis papildinys

++ Padidinimas vienetu

-- Sumažinimas vienetu

Unarinės operacijos:

Pvz: i++; ++i; i--; ~i; +i Netikėtas rezultatas -128:

byte i=(byte)-128; System.out.println(-i);

Bitinis papildinys: Paskalyje: ~(byte)0 == 255 Javoje: ~(byte)0 == -1Apibrėžimas: ~x=-(x-1)

Padidinimas ir sumažinimas vienetu: int i=0, j=0; System.out.println(++i); System.out.println(j++); Spausdinimo rezultatas:1 ir 0;galutinės i ir j reikšmės: i=j=1

Page 12: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Binarinės operacijos:

Operacija Aprašymas + Sudėtis - Atimtis * Daugyba / Dalyba

% Modulis & Bitinis AND | Bitinis OR ^ Bitinis XOR

<< Su ženklu poslinkis į kairę >> Su ženklu poslinkis į dešinę

>>> Be ženklo poslinkis į dešinę Op= Kombinacija priskyrimas ir operacija

Adityvios operacijos: +, -Dauginimo operacijos: *,/,%1. Neasociatyvios. Pvz.

float v = 1f; float max = 2^24e104;

v +max - v == max - v + v yra false2. Apibrėžimas: (a/b) * b + (a%b) = a

pvz: 11 % 4 == 3, 11 % (-4) == -3Bitiniai operatoriai: &, |, ^ . Pvz:

byte flags=0xff; // inicijuoja 11111111 byte mask=0xfe; // trafaretas 11111110 flags = flags & mask; // eilės 8 pozicija flags = flags | mask; // išvalo 8 poziciją flags = flags ^ mask; // = 00000001

Page 13: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

int i = 129; // 10000001 dvejetainis

i = i >> 1; // dabar 1000000 arba 64

Postūmiai: <<, >>, >>>

Kombinacija priskyrimas ir operacija. Pvz: int i = 7; i *= 3; // i = 21 i +=5; // i =26 i += --i; // i = 51, bet ne 50

Santykio (palyginimo) operacijos:

Operatorius Aprašymas < Mažiau kaip > Didesnis kaip

<= Mažiau kaip arba lygus >= Didesnis kaip arba lygus == Yra lygūs != Nelygūs

Kuo skiriasi = ir == operacijos?C/C++ kompiliatorius tokio operacijų sumaišymo nepastebės!

Page 14: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Loginės operacijos

Operatorius Aprašymas ! Neiginys & Loginis AND | Loginis OR ^ Loginis XOR

&& Sąlyginis AND || Sąlyginis OR

== Lygus != Nelygus

Op= Kombinacija priskyrimas ir operatorius ?: Sąlygos operatorius

Sąlygos op. vienintelis naudoja tris operandus: a?b:c Pvz:

int i; boolean salyga=false; // įprasta if komanda if (salyga) i=5; else i=6;

// tas pats naudojant sutrumpinimą: i = (salyga?5:6);

Operacijos su simboliais

char c='B'; c = (char) (c - ('A' - 'a'));

Page 15: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Operacijos su objektais: =, ==, != ir instanceoffoo test = new foo(); foo test2 = null; test2 = test;  // test2 pasidaro test sinonimas

foo test1 = new foo(); foo test2 = new foo(); foo test3 = test1; test1 test2 test3

test1 == != == test2 != == != test3 == != ==

Instanceof naudojamas patikrinti objekto tipą. Pvz:shape shapeHolder; if (shapeHolder instanceof polygonShape) { polygonShape polygon = (polygonShape) shapeHolder; // darome ką nors su polygon }

Operacijos su eilutėmis. Hibridinės savybės.String foo = "Sveikas "; String bar = "Pasauli"; int i = 42;

boolean cont = false; String rezultatas = null;

result = foo + bar; // = "Sveikas Pasauli" result = foo + i; // = "Sveikas 42" result = foo + cont; // = "Sveikas false"

Page 16: Identifikatoriai ir unikodas  Komentarai  Raktiniai žodžiai  Duomenų tipai

Operandas i

Taisyklė

 null  kintami

eji

Kiekvienas kintamieji kurios reikšmė bus  null  bus pakeistas eilute "null ".

Sveikasis

skaičius

Sveikasis skaičius bus konvertuotas į eilutę vaizduojančią dešimtainę skaičiaus išraišką. -

ženklas pradės neigiamą skaičių ir nebus rašomi vedantieji nuliai, išskyrus 0 atvejį.

Slankaus

kablelio

Slankaus kablelio skaičiai bus konvertuojami į kompaktišką formą. Jeigu užrašo ilgis viršija 10 simbolių, jis bus užrašytas eksponentine forma.

Neigiamas skaičius prasidės - ženklu.

Simbolis

Simbolis bus konvertuotas į jai ekvivalenčią 1 simbolio ilgio eilutę.

Loginis Rezultatas bus arba "true"  arba "false"   eilutė priklausomai nuo loginio kintamojo reikšmės.

Objektas

Objektams bus keičiamas toString() metodas.

+ operacijos su eilute ir kito tipo kintamuoju:

String S=“Mano tekstas papildytas: “ + i;