Osztályok. 4. gyakorlat

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

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

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

JAVA PROGRAMOZÁS 2.ELŐADÁS

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

Java és web programozás

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

Java és web programozás

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

Java és web 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

C++ programozási nyelv Konstruktorok-destruktorok

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

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

Objektumelvű programozás

és az instanceof operátor

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

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

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

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

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

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

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

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

Programozási nyelvek Java

OOP #14 (referencia-elv)

Programozási nyelvek II.: JAVA

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

Programozás I. Első ZH segédlet

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.

Objektumok inicializálása

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

Öröklés és Polimorfizmus

Objektumorientált programozás IX. Osztályok, objektumok

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?

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

III. OOP (objektumok, osztályok)

Programozási nyelvek Java

Web-technológia PHP-vel

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

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?

JAVA PROGRAMOZÁS 3.ELŐADÁS

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

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

Programozási nyelvek Java

Származtatási mechanizmus a C++ nyelvben

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

Programozási alapismeretek 4.

Objektumorientált szoftverfejlesztés alapjai

Bevezetés a Python programozási nyelvbe

Elemi Alkalmazások Fejlesztése II.

BME MOGI Gépészeti informatika 8.

C++ programozási nyelv

Programozás II. 4. Dr. Iványi Péter

Programozási nyelvek Java

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

Osztály és objektum fogalma

ELTE SAP Excellence Center Oktatóanyag 1

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

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

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

Programozási nyelvek Java

Programozási nyelvek II.: JAVA

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

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

Globális operátor overloading

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

OOP: Java 8.Gy: Gyakorlás

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

4. Öröklődés. Programozás II

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

Bánsághi Anna

OOP: Java 4.Gy: Java osztályok

OOP: Java 5.Gy: Osztály, referencia, konstruktor

Szoftvertechnológia alapjai Java előadások

OOP: Java 6.Gy: Java osztályok. Definíció, static, túlterhelés

Objektumorientált programozás C# nyelven

Programozás módszertan

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

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

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

C++ programozási nyelv Konstruktorok Gyakorlat

Bevezetés a Programozásba II 3. előadás. Biztonságos adattípusok megvalósítása

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

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

Bevezetés, a C++ osztályok. Pere László

Objektumorientált Programozás VI.

Programozás II gyakorlat. 8. Operátor túlterhelés

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

3. Osztályok II. Programozás II

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

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

Memóriakezelés, dinamikus memóriakezelés

Interfészek. PPT 2007/2008 tavasz.

Java VII. Polimorfizmus a Java nyelvben

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

OOP alapok Egy OOP nyelvet három fontos dolog jellemez. egységbezárás ( encapsulation objektumoknak öröklés ( inheritance

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Virtuális függvények (late binding)

Átírás:

Osztályok 4. gyakorlat

Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum pontosan egy osztály példánya.

Adattagok - metódusok Általában minden osztály rendelkezik adattagokkal, metódusokkal. A metódusok az adattagokon végeznek műveletet, ezért gyakori, hogy a paraméterlistájuk üres. Addattag megadása: [láthatóság][static][final][transient][volatile] típus változónév; Metódus megadása: [láthatóság] [static] [abstract] [final] [native] [synchronized] visszatérésitípus metódusnév ([paraméterek]) [throws kivétellista]

Láthatóságok public bárki használhatja a programon belül közvetlenül. private csak az adott osztály saját metódusai férhetnek hozzá (használhatják). protected az adott osztály metódusain kívül a származtatott osztály metódusai érhetik el.

Adattagok metódusok - Példa class Muvelet{ //adattagok private int x; private int y; private int eredmeny; //további kód public int Osszead(){ eredmeny = x + y; return eredmeny; //további kód

Különleges metódus. Konstruktor Neve meg kell hogy egyezzen az osztály nevével! Láthatósága public, de előfordulhat, hogy protected. Nem lehet visszatérési értéke! Objektum létrehozásakor hívódik meg. Feladata az inicializálás. (adattagok inicializálásért felelős kód ide helyezendő). Egy osztálynak lehet több konstruktora, ilyenkor paraméterekben kell különbözniük! A paraméter nélküli konstruktort default konstruktornak nevezzük. Ha nincs az osztálynak konstruktora, akkor a fordító létrehoz egy default konstruktort.

Konstruktor - Példa public Muvelet(){ x = 0; y = 0; public Muvelet( int xertek, int yertek ){ x = xertek; y = yertek;

Objektum létrehozása Objektum referencia: <OsztályNév> változónév; Pl: Muvelet muvelet; Objektum létrehozása: A new kulcsszóval (operátorral) tudunk objektumot létrehozni (mint a tömböknél, mivel a tömbök is objektumok). new <Konstruktor>([paraméterek]); A paraméterektől függ, hogy az osztály melyik konstruktora hívódik meg. Pl: muvelet = new Muvelet( 2, 3 );

Getter Setter metódusok Adattagok beállítására (setter) és lekérdezésére (getter) szolgálnak. Kívülről ezeken keresztül tudjuk változtatni vagy lekérdezni a private adattagok értékét. Elnevezési szabályok: Getter: getadattagneve Setter: setadattagneve

Getter Setter metódusok - Példa public int getx(){ return x; public void setx( int ertek ){ x = ertek;

Metódusok, adattagok elérése Miután létrehoztuk az objektumunkat, a metódusait, adattagjait el kell valahogy érnünk. Referencianév után ponttal (.) hivatkozhatunk az egyes metódusokra. Pl: Muvelet muvelet = new Muvelet( 2,3 ); int eredmeny = muvelet.osszead();

Metódus túlterhelés ( overloading ) Egy osztályon belül lehet több ugyanolyan nevű metódus is, ha a paraméterlistájuk különbözik ezt hívjuk túlterhelésnek (overloading). A fordító a paraméterlista szerint tesz különbséget az azonos nevű metódusok között. Pl: static double osszeg( double x, double y ){ return x + y; static double osszeg( int x, double y ){ return x + y;

Statikus adattagok, metódusok static kulcsszóval jelezzük, hogy a változó vagy metódus statikus. Objektum nélkül is léteznek, tehát nem kell ahhoz objektum, hogy használni tudjuk őket. Nem rendelkezik minden objektum külön példánnyal belőlük, csak egyetlen példányként vannak a memóriában, az összes objektum ezt a példányt tudja elérni és használni. Elérése: OsztályNév.statikusMezőNeve; OsztályNév.statikusMetódusNeve([paraméterek]);

Statikus adattagok, metódusok Statikus metódusban nem használhatunk nem statikus osztályváltozót (adattagot), mivel a statikus metódusok ( és statikus változók ) objektum létrehozás nélkül is létrejönnek, ellenben a nem statikus osztályváltozókkal. Statikus metódus csak statikus metódust hívhat.

Konstansok final kulcsszóval tudjuk jelezni, hogy egy változó konstans. Kezdő értéke nem változtatható meg. Elnevezési szabály: Csupa nagybetű, szóhatárnál aláhúzás. Pl: public static final FALSE = 0;

this Referencia, mely az aktuális objektumra mutat. this után ponttal (.) tudunk hivatkozni az aktuális objektum adattagjaira és metódusaira. Akkor használatos, mikor egy metódus paramétereinek az elnevezése megegyezik az osztály adattagjainak az elnevezésével. Megkülönböztetésre szolgál. Pl: public Muvelet( int x, int y ){ this.x = x; this.y = y;

null Referenciánál jelezhetjük, hogy nincs beállítva neki objektum (nem mutat semmire). Segítségével jelezhetjük a Garbage Collector-nak, hogy az adott objektumra nincs szükségünk. Muvelet muv = new Muvelet( 3, 4 ); muv = null;