Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu



Hasonló dokumentumok
JAVA PROGRAMOZÁS 2.ELŐADÁS

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

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

és az instanceof operátor

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

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

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

Programozás III. - NGB_IN001_3

Osztályok. 4. gyakorlat

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?

III. OOP (objektumok, osztályok)

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

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

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

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?

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

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

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Bevezetés a Python programozási nyelvbe

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

OOP #14 (referencia-elv)

Interfészek. PPT 2007/2008 tavasz.

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

Programozási nyelvek Java

Programozási nyelvek Java

Java és web programozás

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Programozási technológia

Már megismert fogalmak áttekintése

Java és web programozás

Programozási nyelvek II.: JAVA

Java Programozás 3. Ea: Java osztályok. OOP alapalapok

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

Objektumorientált programozás C# nyelven

Objektumorientált programozás Java-ban

Programozás módszertan p.1/46

Objektumorientált programozás C# nyelven

Java III. I I. Osztálydefiníció (Bevezetés)

Java III. I I. Osztálydefiníció (Bevezetés)

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

1. Bevezetés A C++ nem objektumorientált újdonságai 3

Programozás I. Első ZH segédlet

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

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

Öröklés és Polimorfizmus

Pénzügyi algoritmusok

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus

JAVA PROGRAMOZÁS 3.ELŐADÁS

Szoftvertechnológia alapjai Java előadások

OOP: Java 8.Gy: Gyakorlás

Objektumelvű programozás

Programozási nyelvek Java

BME MOGI Gépészeti informatika 8.

Programozási nyelvek Java

Osztályok, objektumok

OOP és UML Áttekintés

Web-technológia PHP-vel

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

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

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

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

Programozási nyelvek Java

Interfészek. Programozás II. előadás. Szénási Sándor.

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

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

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Segédanyag: Java alkalmazások gyakorlat

Mi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani

Java és web programozás

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

Programozási nyelvek II.: JAVA

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

Programozási alapismeretek 4.

Objektumorientált paradigma és programfejlesztés Bevezető

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Globális operátor overloading

3. gyakorlat. Objektumorientált programozás

7. K: JAVA alapok Konzultáció

Java programozási nyelv

Objektumorientált szoftverfejlesztés alapjai

C++ programozási nyelv

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

Objektum Orientált Programozás. 5. JAVA osztályok 21/1B IT MAN

Java programozási nyelv 6. rész Java a gyakorlatban

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

Java Programozás 11. Ea: MVC modell

OOP. Alapelvek Elek Tibor

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

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

Java II. I A Java programozási nyelv alapelemei

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

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

JAVA nyelvi alapok. Adatbányászati technikák (VISZM185) Dávid István

Programozási nyelvek II.: JAVA

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

Átírás:

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

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. interpreter és compiler változatok. Optimalizál, ellenőriz. Memóriát kezel, kioszt, felszabadít. Op. rendszerrel kapcsolatot tart, erőforrásokat használ. 2

3

javac *.java 4

java Teszt 5

Osztályok használata Osztályok és objektumok életciklusa osztály betöltése a virtuális gépbe a példányosítás (a referenciák szerepe) az objektum megszüntetése (null referencia és garbage collector ) 6

Egybezártság - adatrejtés Osztályok szerepe az egybezártságban Hozzáférési kategóriák nyilvános tagok félnyilvános tagok védett tagok privát tagok Üzenetküldés 7

Öröklődés A közös ős szerepe Konstruktorok szerepe az öröklődéskor super() this() 8

Többalakúság Változók, referenciák dinamizmusa Metódusok felüldefiniálása (override) az öröklési láncban Metódusok felültöltése (overload) 9

Metódushívás az öröklési láncban Széchenyi István Egyetem 10

Absztrakt osztályok Közös adattípusok. Közös műveletek. Absztrakt (definíció nélküli) műveletek. Csak örökítési célból (az ős ismeri, de nem tudja). Közvetlenül nincs példányosítás, csak a leszármazottakból! 11

A változókról 12

Változók lehetséges szerepkörei Példányváltozó Példányonkénti egyedi tárterület. Kezdőértékkel rendelkezik. Általában a konstruktor inicializálja. Lokális változó Blokk-szintű: (paraméterek, blokkon belüli vált.) Korlátozott hatókör A veremben kap tárhelyet Osztályváltozó 13

Osztályváltozók, osztálymetódusok Az egész osztályra vonatkozó közös tulajdonságok, műveletek static kulcsszó Közös osztályhoz rendelt adatterület (vs. példányváltozó!) public class Alkalmazott{ //osztályváltozó: private static int nyugdijkorhatár = 62; //osztálymetódusok: public static void nyugdijkorhataremel(){ nyugdijkorhatár++; } public static void nyugdijkorhatarcsokk(){nyugdijkorhatár--;} // stb. } 14

Osztályváltozók, osztálymetódusok A main, mint osztálymetódus Speciális szerep: A virtuális gép indításakor megadott osztály betöltése után automatikusan lefut a main. public static void main (String args[]) {...} 15

Konstans értékek kezelése Konstans értékek 'B', 42, 55000l, szövegkonstans, 2.71f Konstans adattagok static final módosító Pl: static final int MAX_ELEMSZAM = 10000; Itt (és csakis itt) megengedett a publikus hozzáférés! 16

Interfészek A Java nyelvben nincs többszörös öröklés Az osztályok általánosítása: Osztály absztrakt osztály interfész Az interfész: konstans értékeket, és metódus deklarációkat tartalmaz. Az objektumoknak küldhető közös üzenetkezelést teszi lehetővé. 17

Interfészek 18

Interfészek Interfészek deklarációja Az interface kulcsszó példa: public interface Interfésznév { public(final static)int KONSTANS = kezdőérték; public (abstract) boolean művelet(); } Jelölési konvenciók: konstans jelölésmód: MAX_ERTEK 19

Interfészek Interfészek megvalósítása Az implements kulcsszó Példa: public class Osztály implements Interfész { } public class Osztály extends Ős implements Interfész { } public class Osztály extends Ős implements Intf1, Intf2 { } Több interfész megvalósítása A többszörös öröklődés helyett Különböző jellegzetességek összekapcsolása (Holdon való járás, kétéltű autók, rendezhető elemek) 20

Az objektum orientáltságról Széchenyi István Egyetem

Az objektumorientált program Egy objektumorientált program egymással kommunikáló objektumok összessége, melyben minden egyes objektumnak jól meghatározott feladatköre van. Az objektumok közötti kommunikációt a szabványos üzenetküldés valósítja meg. A objektumorientált program nem sértheti meg az objektumorientált alapelveket.

Üzenetküldés objektumok között Széchenyi István Egyetem 1. objektum: Egy ember Pisti:Ember 2. egy gépjármű pistiautója:gépjármű 3. egy forgalomirányító lámpa lámpa12:forgalomirányító

Üzenetküldés objektumok Széchenyi István Egyetem között 1. lépés: megállás a pirosnál pistiautója:gépjármű 3 Pisti:Ember lámpa12:forgalomirányító lámpa12.milyenszínű?() 1 pistiautója.állórafékez() piros 2

Üzenetküldés objektumok Széchenyi István Egyetem között 1. lépés: megállás a pirosnál pistiautója:gépjármű Pisti:Ember lámpa12:forgalomirányító lámpa12.milyenszínű?() 2. lépés: várakozás pistiautója.állórafékez() 6 alapjárat() piros milyenszínű?() piros 5 4

Üzenetküldés objektumok Széchenyi István Egyetem között 1. lépés: megállás a pirosnál pistiautója:gépjármű Pisti:Ember lámpa12:forgalomirányító lámpa12.milyenszínű?() pistiautója.állórafékez() piros 2. lépés: várakozás alapjárat() milyenszínű?() piros 3. lépés: indulás zöld jelzésre 9 milyenszínű?() 7 indul() zöld 8

Osztályok és objektumok Széchenyi István Egyetem együttműködése, kapcsolatai Hierarchikus kapcsolatokkal nem minden probléma írható le. Az objektumokat valahogy össze kell kapcsolni egymással: ismertségi kapcsolatok, tartalmazási kapcsolatok, üzenetküldés. Kapcsolatok értelmezése objektum és osztály szinten.

Köszönöm a figyelmet! Széchenyi István Egyetem