Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Hasonló dokumentumok
Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Szoftvertechnológia alapjai Java előadások

Java II. I A Java programozási nyelv alapelemei

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Java II. I A Java programozási nyelv alapelemei

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Informatika terméktervezőknek

Programozási technológia I 1. gyakorlat. A Java nyelvi alapjai, a NetBeans környezet

Programozási nyelvek II.: JAVA, 4. gyakorlat

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Magas szintű programozási nyelvek 2 Előadás jegyzet

C# gyorstalpaló. Készítette: Major Péter

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Imperatív és procedurális programozás a Javában

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Java programozási nyelv

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás I. Első ZH segédlet

A C# programozási nyelv alapjai

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Programozási nyelvek Java

JAVA PROGRAMOZÁS 2.ELŐADÁS

Készítette: Nagy Tibor István

és az instanceof operátor

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Szoftvertervezés és -fejlesztés I.

Mintavételes szabályozás mikrovezérlő segítségével

Programozási nyelvek II.: JAVA, 4. gyakorlat

Kifejezések. Kozsik Tamás. December 11, 2016

Programozási nyelv Java

Java programozási nyelv

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Információs Technológia

Programozási nyelvek Java

Java programozási nyelv 5. rész Osztályok III.

A C programozási nyelv I. Bevezetés

Objektumorientált programozás C# nyelven III.

Osztályok. 4. gyakorlat

3. Gyakorlat Ismerkedés a Java nyelvvel

A Java programozási nyelv

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Java programozási nyelv

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

A C# PROGRAMOZÁSI NYELV

A Java nyelv. Bevezetés, alapok Elek Tibor

A C programozási nyelv I. Bevezetés

Programozási nyelvek Java

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Objektumorientált Programozás II.

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Készítette: Nagy Tibor István

GYAKORLATIAS JAVA MINTA

1. Jelölje meg az összes igaz állítást a következők közül!

Pénzügyi algoritmusok

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Java programozási nyelv 4. rész Osztályok II.

A Java és a C++ összehasonlítása

Programozási technológia I.

C programozás. 1 óra Bevezetés

Bánsághi Anna

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Abstract osztályok és interface-ek. 7-dik gyakorlat

Programozás III A JAVA TECHNOLÓGIA LÉNYEGE. Többlépcsős fordítás JAVA PLATFORM. Platformfüggetlenség

Globális operátor overloading

JAVA PROGRAMOZÁS 3.ELŐADÁS

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

OOP: Java 8.Gy: Abstract osztályok, interfészek

A C programozási nyelv III. Pointerek és tömbök.

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

A C programozási nyelv III. Pointerek és tömbök.

Programozás 1. Dr. Iványi Péter

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Bevezetés a C++ programozási nyelvbe

Programozási nyelvek (ADA)

Algoritmusok és adatszerkezetek II.

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok


Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Pénzügyi algoritmusok

A Java nyelv. II. rész - alapok, osztályok /2 53

Algoritmizálás + kódolás C++ nyelven és Pascalban

Fizika InfoRmatika Kémia Alapok. Az Erdélyi Magyar Műszaki Tudományos Társaság kiadványa. Megjelenik kéthavonta (tanévenként 6 szám)

Programozás I. Második ZH segédlet

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Átírás:

Programozás III. Varjasi Norbert varjasin@sze.hu 1

A Java nyelv fő jellemzői Egyszerű Objektumorientált Elosztott Robusztus (hibatűrő, megbízható): Biztonságos Hordozható Architektúra-független (gépfüggetlen): Interpretált Nagy teljesítményű Többszálú Dinamikus 2

A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata: Betölti a használt osztályokat (.class állományok) Az ott található blokkokat, utasításokat értelmezi, átalakítja gépi kódú üzenetekké és futtatja. Memóriát kezel, kioszt, felszabadít, op. rendszerrel kapcsolatot tart, erőforrásokat használ. 3

4

5

6

A Java adattípusai Széchenyi István Egyetem 7

A Java adattípusai 8

A Java megszámlálható egész adattípusai Egészek: Pl.: byte (8 bites, -128 127) short (16 bites, -32.768 32.767) int (32 bites, -2.147.483.648 2.147.483.647) long (64 bites, -9.223.372.036.854.775.808 9.223.372.036.854.775.807) int újszoket, régiszoket, newsocket, oldsocket; byte elsőbájt, lastbyte; byte utolsóbájt = 12; (értékadással) int folyamazonosító = 017; (oktális értékadás) int streamid = 017; int kapcsolóazonosító = 0XFF; (hexadecimális értékadás) int streamcontrolid=0x0f, switchid=0xbb; 9

Lebegőpontos típusok: Széchenyi István Egyetem float (32 bites, 1.40129846432481707e-45-3.40282346638528860e+38) double (64 bites, 4.94065645841246544e-324d - 1.79769313486231570e+308d) Pl.: float összeg=23.8f, újösszeg=24.f; float cashvalue=23.8f, newcashvalue; double teljesösszeg=1.56e2, régiösszeg=2.34e4d, össz=7.34d; double newtotal=1.56e2, oldtotal=2.34e4; 10

Karakter típusú adatok: char (2 bájt/karakter!, 0 65.535 ) Pl.: char elsőbetű, másodikbetű='b'; char sensechar, ringchar='e'; Logikai típusú adatok boolean (1 bit) Pl.: boolean kilép, vanérték=true; boolean loopsensor, pollsensor=true; 11

Kulcsszavak és azonosítók abstract boolean break byte case catch char class const continue default do double else extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static super switch synchronized this throw throws transient try void volatile while 12

Kifejezések, operátorok prefix az operátor az operandus előtt áll, postfix az operátor az operandus után áll, vagy infix jellegű az operátor az operandusok között helyezkedik el. A kifejezés kiértékelése a műveleti jelek közötti precedencia szabály alapján következik 13

Precedencia Operátor Megnevezés [ ] tömb indexelés. tagelérés pl: java.lang.math.pi ( ) zárójeles kifejezés kif++ kif-- postfix operátorok ++kif --kif +kif kif prefix operátorok! ~ logikai NEM, bitenkénti NEM new (típus)kif példányosítás típuskényszerítés * / % aritmetikai műveletek + - << eltolás balra, a legkisebb bit 0-t kap >> eltolás jobbra, és balról a legmagasabb helyiértékű bit értéke kerül be >>> eltolás jobbra, balról 0 érkezik. 14

Precedencia Operátor Megnevezés < > <= >= összehasonlítások instaceof az objektum példánya-e az osztálynak ==!= egyenlőségvizsgálatok (referencia összehasonlítás) & bitenkénti ÉS ^ bitenkénti kizáró VAGY bitenkénti VAGY && logikai ÉS logikai VAGY? : feltételes kifejezés = += -= *= /= %= hozzárendelés, értékadás >>= <<= >>>= bit szintű értékadások &= ^= = 15

Referenciák, példányosítás A példányok - objektumok típusa Minden objektum, tömb, felsorolás ilyen A referencia!= mutató, (kicsit több annál :) Pl: Osztálytípus peldánynév; Teglalap t1; String szoveg1; String szoveg2 = new String( Béla ); Teglalap t2 = new Teglalap(3,4); A null referencia szoveg1 = null; 16

Hozzáférési kategóriák (adatrejtés) nyilvános tagok (public) csomag-szintű tagok (jelöletlen) védett tagok (protected) privát tagok (private) 17

Vezérlési szerkezetek utasítások feltételes kifejezés elágazások if if-else if-else-if switch ciklusok while do-while for 18

Feltételes kifejezések if(<logikai kif.>) <utasítás>; (vagy utasítás blokk); if(<felt.>) {<utasítás;>} else{<utasítás;>} if(<felt.>) {<utasítás;>} else if(<felt.2>) {<utasítás;>} else {<utasítás;>} switch(<argumentum>){ case <érték1>: utasítás(ok); break; case <értékn>: utasítás(ok); break; default: utasítás(ok); } <argumentum>: megszámlálható típus, (java 7-től: String is!) 19

Elöl- és hátultesztelő ciklusok while: while (<kifejezés igaz>) { <utasítások;> } while (i < 5) { sum += tomb[i]; i++; } do-while: do{ <utasítások;> }while (<kifejezés igaz>) do { i++; namearray[i] = ; } while (i!= lastindex); 20 PÉLDA demo

A tömb adattípus 21

Tömbök deklarációja <elemtípus>[] <tömbazonosító>; <elemtípus> <tömbazonosító>[]; int ct[], d; // d egyetlen elemi adat!!! Alkalmazott[] dolgozok; int a[3]; -> fordítási hibát okoz!! 22

Tömbök létrehozása new <elemtípus> [méret]; it = new int[365]; dt = new double[365/12]; //30! st = new String[4]; 23

Tömbök helyfoglalása short [] atomb = new short[10]; for(int i=0; i < atomb.length; i++){ atomb[i] = i*5; } 24

Tömbök deklarálása inicializáló blokkban <elemtípus> [] <tömbazonosító> = { <érték0>, <érték1>, }; int[] atomb = {1, 2, 3, 7, 11 }; char[] maganh = { a, e, i, o, u }; boolean[] valaszok = { true, true, false}; double[] arak = {1202.1, 33.35}; 25

Többdimenziós tömbök <elemtípus>[][] <tömbazonosító>; Egy 2 dimenziós tömb deklarációja: double [][] a; A 2 dimenziós tömb létrehozása: a = new double[2][3]; 26

Többdimenziós tömb megadása inicializáló blokkal <elemtípus> [][] <tömbazonosító> = { {<érték0>, <érték1>, }, {<érték0>, <érték1>, }, }; int[][] honapnapjai = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; 27

Többdimenziós tömbök helyfoglalása int[][] honapnapjai = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; 28

Többdimenziós tömbök egyéb esetei Megadható különböző méretű, több lépésben létrehozott többdimenziós tömb is: int[][] alsomatrix = new int[3][]; for (int i=0; i < alsomatrix.length; i++ ){ alsomatrix[i] = new int[i+1]; for (int j=0; j < alsomatrix[i].length; j++ ) { alsomatrix[i][j] = 1; } 29

Objektumokból képzett tömbök Obejektumtípus [] azon = new Objektumtípus[n]; String [] honapok = new String[12]; vagy inicializátorral: String [] honapok = { január, február, }; 30

Tömbök bejárása 1 for (<inic.> ; <log.kif.> ; <lépt.>){<ut.>} int i = 0 ; for ( ; i < 10; i++) { a[i] = 0;} for(int i = 0; i < 10; i++) { a[i] = 0;} for(int i = 0; i < 10; ) { a[i] = 0; i++; } for(int i=0, j=10; i<=j; i++, j--){ szamlalo++;} for(int i=start+newlist;i<=followbitsum;i+=2){ utasítások ;} 31

Tömbök bejárása 2 for (<típus> <elem> : <tömb>){} int total = 0; int t[] = new int[10]; for(int i: t){ total += i; } 32

Szöveges adatok kezelése A String osztály 33

Karakteres típusok 'a', '\t', '\b',... karakteres konstans char alaptípus Karakterekből képzett tömbök: char sor[] = new char[50]; Feldolgozásuk: C nyelvhez hasonlóan 34

Sztringkezelés Egy új, önálló osztály a szöveges adatok kezelésére, együttműködés az alaptípusokkal, automatikus konverzióban használható, a String osztály használata String szov1 = new String( első szöveg ); String szov2 = második szöveg ; String szov3 = Eredmény = +3 ; Konstans karakterláncok kezelése. Hatékony és gyors karakterlánc kezelés. Egyszerű műveletek és metódusok. 35

Sztringkezelés Alapműveletek: length(), charat(i), getbytes(), split(string,delim), tochararray(), valueof(g,i), substring(i,db) Csak kevés módosító művelete van: concat(g), replace(mit, mire), tolowercase(), touppercase(), trim(). 36

Sztringkezelés módosítható szöveges adatok A StringBuffer osztály String StringBuffer átalakítás oda-vissza hozzáfűzés, beszúrás (append, insert) rövidítés, bővítés megfordítható (reverse) karakterek, réssztringek törölhetők 37

StringBuffer (StringBuilder) Metódusai: capacity(), length(), charat(i), indexof(g), lastindexof(g) append(g), delete(i1, i2), insert(iposn, g), getchars(i), setcharat(iposn, c), substring(), replace(i1,i2,gvalue), reverse(), trimtosize(), tostring(g) 38

Szövegek darabolása split metódus, StringTokenizer Gyakori feladat a szövegek szétdarabolása fehér karakterek mentén: 1. String osztály split metódus String[] eredmeny = "Egy darabolási teszt feladat".split("\\s"); for (int x=0; x<eredmeny.length; x++) System.out.println(eredmeny[x]); (reguláris kifejezések!) 2. StringTokenizer osztály Később tárgyaljuk (a java.util csomagnál)! StringTokenizer st = new StringTokenizer("Egy darabolási teszt"); while (st.hasmoretokens()) { System.out.println(st.nextToken()); } 39

Csomagoló (burkoló) osztályok elemi típushoz egy ún. csomagoló osztály: Boolean, Character, Integer, Long, Float, Double Az adott típusú értéket egy objektumban helyezi el, amely ezután referenciaként érhető el: + : összetett adatszerkezetekben hatékonyabban használhatóak, elérhetőek egyes speciális műveletek : helypazarló Példa: Float f = new Float(3.14); int n = Integer.parseInt( 1234 ); 40

Csomagoló osztályok 41