1
Nimed. Muutujad. Tüübid int, double ja String. Tehted. Avaldised
Programmeerimine
2. loeng
2
Muutuja
• Muutuja – teatavat tüüpi väärtuste jaoks ettenähtud mäluväli
• muutujale saab omistada väärtust ning seda väärtust kasutada avaldise arvutamisel
• muutujale viidatakse tema nime abil
3
Täisarvuline muutuja. Kirjeldamine
• teatavat tüüpi väärtused– nt. täisarvud
• byte 8 bitti -128 127• short 16 bitti -32768 32767• int 32 bitti -2147483648 2147483647• long 64 bitti
• muutujakirjeldus reserveerib koha antud tüüpi ja antud nimega muutujale (ja salvestab antud kohale antud tüübi vaike-algväärtuse)
int a;int a, b, autodeArv;
4
Omistamine
• a = 12;
• b = a + 10;
• Kirjeldamine ja omistamine koos
int koht = 8;
5
Täisarvuline avaldis
• liitmine +
• lahutamine -
• korrutamine *
• jagamine /
• jäägi leidmine %
6
Tehete järjekord
1. unaarne + unaarne –
2. * (korrutamine), / (jagamine), % (jääk)
3. + (liitmine), - (lahutamine), + (sõnede sidurdamine)
4. = omistamine
• saab sulgudega muuta
7
Algtüübid Vt. Leksikon, märksõna: tüüp
täisarvud int, byte, short, long
ujupunktarvud
float 32-bitilised (7 tüvekohta)
double 64-bitilised (15 tüvekohta) -1,7*10308…1,7*10308
char – 16-bitilised Unicode-sümbolid
boolean – true või false
void – tühitüüp; kasutatakse ainult tagastustüübina, juhul kui tegelikult väärtust ei tagastata
String ei ole algtüüp (on viittüüp)
8
double
• Ujupunktarv, ujukomaarv
– IEEE 754
– 1 bitt märgi, 11 järgu, 52 mantissi jaoks
double pikkus = 180.6;
järkmantissmärk 10**210*14869*169.148
järkmantissmärk 2**
9
String
• Sõne• Ei ole algtüüp, on natuke eripärane viittüüp
String kauneimLinn = "Tartu";
• On veel viise loomiseks, aga hetkel ei käsitle• Sõnesidurdus (tähistatakse plussmärgiga)
String hoone1 = kauneimLinn + " raekoda";
10
Arvuline e. arvulist tüüpi (int, double, …) muutujaomab arvulist väärtust int z, w, i1; double x, y; i1 = 0; … z + w*2 ... Loogiline e. loogilist tüüpi (boolean) muutuja
omab ühte kahest loogilisest väärtusest: true või false boolean k, m3; boolean g; k = true; m3 = (x <= 1); g = (c != (a + 2)); k = m3 && g;
11
Nimed ehk identifikaatorid
• Programmeerija poolt valitavad klasside, meetodite, väljade, lokaalmuutujate jmt. tähised
• Nõuded failinimedele on Java-välised, määratud kasutatava operatsiooni-süsteemiga.
12
• REEGLID
– võivad sisalduda tähed (ka täpitähed), numbrid, _ , $
– ei tohi alata numbriga
– pikkusel reaalsel kasutamisel häirivaid piire pole
– suured ja väikesed tähed (nt. A ja a) loetakse
erinevateks (nt. jaAk ja jAak on erinevad,
String ja string on erinevad).
– ei saa sisaldada tühikuid
– ei tohi olla võtmesõna (class, int, true, if …
... ca 60 tükki, vt. Leksikon)
Nimed (identifikaatorid)
13
Nimed (identifikaatorid)
• TAVAD
klassi nimi - suur algustäht KlassiNimi
meetodi nimi - väikesed tähed meetodiNimi
muutuja nimi - väikesed tähed muutujaNimi
alates teisest sõnast suure tähega
.java-fail võiks sisaldada ainult ühte klassi ja selle faili
nimi võiks olla sama, mis on klassi nimi (KlassiNimi)
(mõnes keskkonnas peabki olema)
.class-fail tekib siis faili KlassiNimi.java
kompileerimisel ja nimeks on KlassiNimi.classhttp://www.ut.ee/~jaanus/java/projektid/Java_koodistandard.html
14
Avaldis A Operatsioon Avaldise A väärtuseks on
x = avaldisB Arvutatakse avaldise B väärtus ja omistatakse see muutujale x
x väärtus pärast operatsiooni
x++
x--
x = x + 1
x = x - 1
x väärtus enne operatsiooni
++x
--x
x = x + 1
x = x - 1
x väärtus pärast operatsiooni
Omistamine
15
AvaldisNäiteavaldis Väärtus
1.5 (literaal) 1,5
x Muutuja x väärtus
x + y x ja y väärtuste summa
meetod(a) Meetodi poolt tagastatav väärtus (argumentavaldise a korral)
y = avaldis Muutuja y uus väärtus
y += avaldis Sama, mis
y = y + avaldis
(avaldis) == avaldis
16
z = Math.sqrt(2*y)/(x = x + 1)ehkz = Math.sqrt(2*y)/(++x) ;
avaldis
avaldis
avaldis
avaldis
avaldisavaldis avaldis
avaldisdirektiiv
avaldis
17
Avaldisdirektiivi erijuht (omistamistehteta):meetodi rakendus ehk meetodi väljakutse
meetodiNimi(argumentide loetelu);
Tavaline, kui meetodi tagastustüübiks on tühitüüp void.
Näide:
System.out.println();
18
MEETOD
piiritlejad -- võivad puududa
tagastustüüp meetodiNimi(formaalsete parameetrite loetelu){ lokaalmuutujad, direktiivid}
Meetodi kirjeldus (lühemalt: meetod):
Meetodi rakendus ehk väljakutse:
Klassi nimi. või isendiviit. -- võib puududa
meetodiNimi(argumentide loetelu)
19
Meetodint ruutudeSumma(int a, int b){ int c; c = a*a + b*b; return c;}
int f(int a, int b, int c, int d){ int x, y; x = ruutudeSumma(a, b); y = ruutudeSumma(c, d); z = ruutudeSumma(x, y); return z;}
void test(int a){ System.out.println(“Kui a = b = c = d = “ + a); System.out.println(“ siis f = “ + f(a,a,a,a));}
20
MUUTUJA
väli või parameeter või lokaalmuutuja
class A{
int meetod( ){
}
}