200 likes | 443 Views
Nimed. Muutujad. Tüübid int , double ja String . Tehted. Avaldised. Programmeerimine 2. loeng. 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.
E N D
Nimed. Muutujad. Tüübid int, double ja String. Tehted. Avaldised Programmeerimine 2. loeng
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
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;
Omistamine • a = 12; • b = a + 10; • Kirjeldamine ja omistamine koos int koht = 8;
Täisarvuline avaldis • liitmine + • lahutamine - • korrutamine * • jagamine / • jäägi leidmine %
Tehete järjekord • unaarne + unaarne – • * (korrutamine), / (jagamine), % (jääk) • + (liitmine), - (lahutamine), + (sõnede sidurdamine) • = omistamine • saab sulgudega muuta
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 Stringei ole algtüüp (on viittüüp)
double • Ujupunktarv, ujukomaarv • IEEE 754 • 1 bitt märgi, 11 järgu, 52 mantissi jaoks double pikkus = 180.6;
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";
Arvuline e. arvulist tüüpi (int, double, …) muutuja omab 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;
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.
Nimed (identifikaatorid) • 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 saasisaldada tühikuid • ei tohi olla võtmesõna (class, int, true, if … ... ca 60 tükki, vt. Leksikon)
Nimed (identifikaatorid) • TAVAD • klassi nimi - suur algustäht KlassiNimi • meetodi nimi - väikesed tähed meetodiNimi • muutuja nimi - väikesed tähed muutujaNimialates 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.class • http://www.ut.ee/~jaanus/java/projektid/Java_koodistandard.html
Avaldis (avaldis) == avaldis
z = Math.sqrt(2*y)/(x = x + 1) ehk z = Math.sqrt(2*y)/(++x) ; avaldis avaldis avaldis avaldis avaldis avaldis avaldis avaldis avaldisdirektiiv
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();
MEETOD Meetodi kirjeldus (lühemalt: meetod): piiritlejad -- võivad puududa tagastustüüp meetodiNimi(formaalsete parameetrite loetelu) { lokaalmuutujad, direktiivid } Meetodi rakendus ehk väljakutse: Klassi nimi. või isendiviit. -- võib puududa meetodiNimi(argumentide loetelu)
Meetod int 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)); }
MUUTUJA väli või parameeter või lokaalmuutuja class A{ int meetod( ){ } }