1 / 86

11. Alapfogalmak 12. Kifejezések, értékadás 13. Szelekciók 14. Iterációk 15. Metódusok írása

11. Alapfogalmak 12. Kifejezések, értékadás 13. Szelekciók 14. Iterációk 15. Metódusok írása. IV. Java programozási alapok. 11. Alapfogalmak 1. Mintaprogram - Krumpli 2. ASCII és unikód karakterek 3. A program alkotóelemei 4. Változó, típus 5. Primitív típusok.

huyen
Télécharger la présentation

11. Alapfogalmak 12. Kifejezések, értékadás 13. Szelekciók 14. Iterációk 15. Metódusok írása

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 11. Alapfogalmak 12. Kifejezések, értékadás 13. Szelekciók 14. Iterációk 15. Metódusok írása IV. Java programozási alapok

  2. 11. Alapfogalmak 1. Mintaprogram - Krumpli 2. ASCII és unikód karakterek 3. A program alkotóelemei 4. Változó, típus 5. Primitív típusok IV. Java programozási alapok 6. A forrásprogram szerkezete 7. Metódushívás (üzenet) 8. Értékadó utasítás 9. Adatok bevitele a konzolról 10. Megjelenítés a konzolon

  3. Mintaprogram - Krumpli • Feladat – Krumpli • Egy cserkésztáborban készül a vacsora, de a konyhafőnök nem tudja, mennyi krumplit vegyen. A fejadagot ismeri, az 0.4 kg, de a szükséges mennyiséget számítógép segítségével szeretné kiszámolni az aktuális létszámtól függően. • Írjuk meg a programot a konyhafőnöknek! A program kérje be a létszámot, majd írja ki a szükséges mennyiséget a következőképpen: • Létszám? 20 • A szükséges mennyiség: 20 * 0.4 kg = 8.0 kg

  4. Krumpli + main(args:String[]) A Krumpli osztály UML ábrája

  5. import extra.*; // extra egy saját csomag, nem API public class Krumpli { public static void main(String[ ] args) { int letszam; double fejadag=0.4, osszesen; // A letszam változó beolvasása konzolról: letszam = Console.readInt("Letszam? "); // A szükséges mennyiség kiszámítása és kiírása: osszesen = fejadag*letszam; System.out.print("A szukseges mennyiseg: "); System.out.println(letszam+" * "+fejadag+" kg = "+ osszesen+" kg"); } }

  6. A Krumpli program fordítása és futtatása

  7. ASCII és unikód karakterek • ASCII karakterkészlet: Szabványos kódrendszer, mely a karaktereket 1 bájton ábrázolja. • megjeleníthető karakterek • vezérlő (kontroll, escape) karakterek • Unikód karakterkészlet: Szabványos kódrendszer, mely a karaktereket 2 bájton ábrázolja. • jelölése: \uhhhh, ahol h hexadecimális számjegy • lehetséges értékek: \u0000  \uffff • első 256 karaktere megegyezik az ASCII karakterkészlettel

  8. A program alkotóelemei • Fehér szóköz, pl. szóköz, tabulátor, sorvégjel • Megjegyzés: //, /*...*/ • Azonosító • Kulcsszó • Literál • egész, valós, karakter, logikai, szöveg • Szeparátor, pl.:( ) { } . , [ ] • Operátor, pl. */+ == < A program alapelemei

  9. fejadag osszesen letszam ? 0.4 ? 4 byte 8 byte 8 byte Változó, típus Változó = névvel azonosított memóriaterület int letszam; double fejadag=0.4, osszesen;

  10. Deklarálás, inicializálás • A Javában a változókat deklarálni kell! Deklarálás: <típus> <változó>; Például: int letszam; Deklarálás és inicializálás: <típus> <változó> = <kifejezés> ; Például: double fejadag=0.4; A deklaráció abban a blokkban érvényes, ahol a változót deklaráltuk. Inicializálás

  11. Konstans • Változtathatatlan változó • Módosítója: final • Például:final int EVSZAM=1999; • EVSZAM=2000;//  fordítási hiba! • konstans  literál

  12. Java típusok • Primitív típusú változó: memóriaterülete oszthatatlan. • Referencia típusú változó: mutató, mely egy objektum hivatkozását tartalmazza.

  13. Primitív Numerikus Logikai Valós boolean Sorszámozott Egész Karakter float double byte short int long char Primitív típusok

  14. Egész típusok Valós típusok

  15. Karakter típus Logikai típus

  16. C1 CN App v1, ...vN … ... ... +main +m1 ... +mN A forrásprogram szerkezete

  17. Csomagok importálása // App.java forrásprogramja import java.util.*; import extra.*; // osztálydeklarációk(sorrend mindegy): class C1 { ... } ... class CN { ... } osztály feje osztály blokkja

  18. osztály feje metódus feje public class App { v1, ... vN public static void main(String[ ] args) { // metódus blokkja: deklarációk,utasítások } void m1() { ... } ... void mN() { ... } } App a fordítási egység egyetlen publikus osztálya

  19. Blokk, utasítás • Blokk (összetett utasítás): { ... } • Mindaz, amit abban a blokkban adunk meg, pontosan arra a blokkra érvényes! • Ahol egy utasítást megadhatunk, ott egy blokkot is. • Egy blokk utasításokból áll. • Minden utasítást pontosvessző zár le.

  20. Utasítások fajtái • Deklaráló utasítás (Memóriahelyek foglalása):int letszam; • Értékadó utasítás: letszam=45; • Postfix és prefix növelő és csökkentő utasítások:letszam++; --letszam; • Metódushívás: System.out.println("Hello"); • Példányosítás (Új objektum létrehozása):aDatum = new Datum(2000,11,05); • Programvezérlő utasítás: if (i==0) ... • Üres utasítás: ;(csak egy pontosvessző)

  21. Kivétel (Exception) // Kivetel.java import extra.*; public class Kivetel { public static void main(String[] args) { int narancsokSzama = 56; int letszam = Console.readInt("Letszam: "); System.out.println("Fejadag: "+narancsokSzama/letszam); System.out.println("Finom a narancs!"); } }

  22. Futási hiba (kivétel) keletkezése

  23. Metódushívás (üzenet) • Osztálymetódus hívása: Osztály.metódus(paraméterek)Például:letszam = Console.readInt("..."); • Példánymetódus hívása: objektum.metódus(paraméterek)Például: System.out.print("..."); • Ha a metódust a saját osztályából hívjuk, akkor nem kell minősíteni:metódus(paraméterek)

  24. extra::Console +readInt(str: String): int +readInt(): int +readLong(str: String): long +readLong(): long +readDouble(str: String): double +readDouble(): double +readChar(str: String): char +readChar(): char +readLine(str: String): String +readLine(): String +pressEnter() Adatok bevitele a konzolról

  25. Megjelenítés a konzolon • Konzolra a következő metódusokkal írhatunk: • System.out.print(paraméter) • System.out.println(paraméter) • System.out.println() • számok, szövegek igazítása: extra.Format osztály

  26. extra::Format +left(num: int, len: int): String +right(num: int, len: int): String +left(num: double, len: int, frac: int ): String +right(num: double, len: int, frac: int ): String +left(str: String, len: int): String +right(str: String, len: int): String

  27. 12. Kifejezések, értékadás 1. A kifejezés alkotóelemei 2. Operátorok 3. Típuskonverziók 4. Értékadás 5. Kifejezések kiértékelése – példák 6. Feltétel 7. Paraméterátadás, túlterhelt metódusok 8. java.lang.Math osztály IV. Java programozási alapok

  28. Kifejezések kiértékelése Kiértékelési sorrend: • Zárójelek (belülről kifelé) • Előbb a nagyobb prioritású operátor • Egyforma prioritás esetén az operátor asszociativitásától függően jobbról balra () vagy balról jobbra ()

  29. Példák • alfa • Math.sin(alfa) + 5 • -98E4 • (j<5) || (j>10) • !(Math.sqrt((n+3)/2)==0)

  30. Az operandus típusa • Változó és függvény típusa a deklarált típus • Literálok alapértelmezett típusai: • Egész: int. De: 45L • Valós: double. De: 7.8F • Logikai: boolean • Karakter: char • Szöveg: String

  31. Java operátorok

  32. Java operátorok(folyt)

  33. Java operátorok(folyt.)

  34. Példák int i; long lon; float f; double d; char c; boolean bool; Unáris postfix és prefix operátorok (előjel, léptetés) i=3; i=-i; // i==-3 i=3; lon=3+ i++; //lon==6, i==4 i=3; lon=3+ ++i; //lon==7, i==4 Multiplikatív operátorok i=22; i=i/5; // i==4f=20.5F; f=f/5; // f==4.1f=20.5F%5; // f==0.5

  35. Hasonlító és egyenlőségvizsgáló operátorok i=3; bool=i==5; // bool==false Additív operátorok i=3; f=i+600; // f==603.0 Logikai operátorok boolean vanA; vanA=Console.readChar(”Betű:")=='A' || Console.readChar("Még egy:")=='A'; Feltételes kiértékelés int teljesitmeny = 60;int premium = (teljesitmeny>50)?10000:0;

  36. Típuskonverziók • A Java erősen típusos nyelv (a fordító ellenőrzi a kompatibilitást) • Bizonyos műveletek előtt konvertálni kell.A típuskonverzió fajtái (kétféle osztályzás): • automatikus (implicit) vagy kényszerített (explicit) • konverzió iránya: szűkítő vagy bővítő

  37. Implicit és explicit típuskonverzió Típuskényszerítés (<típus>) <kifejezés> Példák: double d; int i=5; d=i; //int  double, implicit bővítő d=79.4; i=(int)d; // double  int, explicit szűkítő, i==79 // i=d; // Szintaktikai hiba!!!

  38. Szűkítő és bővítő konverziók • bővítő konverzió: nincs információvesztés • szűkítő konverzió: információvesztés lehetséges byte short long float double int char A bővítő konverzió iránya Példák: int i = 'A'; // implicit bővítő, char  int char c = (char)65; // explicit szűkítő, int  char

  39. Numerikus operátorok típuskonverziói • Minden operandus minimum int típusú lesz • Az eredmény típusa a közös, konvertált típus lesz Példák: double d = 21/2*3; // d==30.0 double d = 21.0/2*3; // d==31.5 int i = ’A’+1; // i==66

  40. Értékadás <változó> = <kifejezés> • precedenciája a legkisebb • visszaadja a jobb oldali kifejezés értékét Többszörös értékadás <v1> = <v2> = ... <vN> = <kifejezés> (jobb asszociativitás)

  41. Értékadási kompatibilitás Az értékadás kiértékelésének szabályai: • Bal és jobb oldal típusai megegyeznek nincs típuskonverzió byte b=(byte)128; // b==-128 • Jobb oldal szűkebb implicit bővítő konverzió int i=50; long lon; lon = i; // int  long • Bal oldal byte, short vagy char, és belefér implicit szűkítő konverzió byte b=127; // int  byte char c=65; // int  char

  42. 1 1 2 2 3 3 Kifejezések kiértékelése - példák • int i=5; double d=1; • i / 2 * d d * i / 2 2 (int) eredmény: 2.5(double) eredmény: 2.0(double) 5 (int) 5.0(double) 1.0(double)

  43. 1 6 2 3 4 5 7 Kifejezések kiértékelése - példák • byte b=1; int i=3; • (b + 2 * i++) % 2 == 0 | i == 3 3 (int) false(boolean) false(boolean) 6 (int) 7 (int) 1 (int) eredmény: false(boolean)

  44. Metódusok túlterhelése • int min(int a, int b)long min(long a, long b)float min(float a, float b)double min(double a, double b) • metódus szignatúrája: • azonosítja a metódust • metódus neve + a paraméterek száma + paraméterek típusa (például min,int,int) • túlterhelt (overloaded) metódus: ugyanolyan nevű, de más paraméterezésű metódus

  45. Adatok (konstansok) • final double E a természetes alap final double PI Pi értéke java.lang.Math osztály • matematikai függvények és konstansok gyűjteménye • nem példányosítható, kizárólag statikus deklarációkat tartalmaz

  46. Metódusok double max(double a, double b)float max(float a, float b)int max(int a, int b)long max(long a, long b) double min(double a, double b) float min(float a, float b)int min(int a, int b)long min(long a, long b) double abs(double a)float abs(float a)int abs(int a)long abs(long a)

  47. Metódusok (folyt.) double ceil(double a) // legközelebbi >= egész double floor(double a) // legközelebbi <= egész double rint(double a) // legközelebbi egész long round(double a) // legközelebbi long értékint round(float a) // legközelebbi int érték double exp(double a) // eadouble log(double a) // e alapú logaritmusdouble sqrt(double a) // négyzetgyök adouble pow(double a, double b) // ab double random() // véletlenszám, // 0.0 <= … <1.0.

  48. Metódusok (folyt.) double sin(double a) // a radián!double cos(double a)double tan(double a) double toDegrees(double radian) // radián  fokdouble toRadians(double degree) // fok  radián

  49. 13. Szelekciók 1. Egyágú szelekció – if 2. Kétágú szelekció – if..else 3. Egymásba ágyazott szelekciók 4. Többágú szelekciók – else if és switch 5. Független feltételek vizsgálata IV. Java programozási alapok

  50. [else] [feltétel] utasítás Egyágú szelekció - if if (feltétel) utasítás; if (feltétel) { utasítás1; utasítás2; ... utasításN; } A Javában minden feltételt zárójelbe kell tenni!

More Related