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

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

Osztályok. 4. gyakorlat

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

és az instanceof operátor

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

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

JAVA PROGRAMOZÁS 2.ELŐADÁS

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

III. OOP (objektumok, osztályok)

Java II. I A Java programozási nyelv alapelemei

Osztály szint tagok. Krizsán Zoltán 1 [2012. március 12.] Objektumorientált programozás C# alapokon tananyag

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

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

Java II. I A Java programozási nyelv alapelemei

Bevezetés a Python programozási nyelvbe

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

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

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

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

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

OOP #14 (referencia-elv)

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

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.

Java és web programozás

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

Web-technológia PHP-vel

C++ programozási nyelv

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

Programozási nyelvek II.: JAVA

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

Objektumok inicializálása

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

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ás C++ -ban

Elemi Alkalmazások Fejlesztése II.

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

Programozás I. Első ZH segédlet

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

Származtatási mechanizmus a C++ nyelvben

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

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

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?

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?

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

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

Objektumorientált szoftverfejlesztés alapjai

Programozási nyelvek II.: JAVA

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

Objektum orientált kiterjesztés A+ programozási nyelvhez

Öröklés és Polimorfizmus

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

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

Objektumelvű programozás

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Objektum-orientált programozás

Programozási alapismeretek 4.

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

BME MOGI Gépészeti informatika 8.

Interfészek. PPT 2007/2008 tavasz.

Programozás C++ -ban

Programozás módszertan

JAVA PROGRAMOZÁS 3.ELŐADÁS

C++ programozási nyelv Konstruktorok-destruktorok

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

Programozási nyelvek Java

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

Osztálytervezés és C++ implementációs ajánlások I.

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

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

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban

Programozási nyelvek Java

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

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

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Programozás C++ -ban 2007/7

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

Objektumorientált programozás C# nyelven

3. gyakorlat. Objektumorientált programozás

Programozás. Osztályok, Származtatott osztályok. Fodor Attila

Függőség injekció Konstantinusz Kft 2010

Objektumorientált Programozás C++ ADATSZERKEZETEK ÉS ALGORITMUSOK 2. GYAKORLAT

Osztályok, objektumok

Objektumorientált programozás C# nyelven

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

A C programozási nyelv IV. Deklaráció és definíció

Szoftvertechnológia alapjai Java előadások

OOP: Java 8.Gy: Gyakorlás

Kivételkezelés a C++ nyelvben Bevezetés

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

0.2.1 Operátorok túlterhelése (műveletek definiálhatók felhaszn. típusokra) Kutya. Eb1. Eb2. Név (txt): Rex. Blöki. Német juhász 3

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

TestLine - OO Programozás alapjai Minta feladatsor

Java VII. Polimorfizmus a Java nyelvben

Apple Swift kurzus 3. gyakorlat

C++ programozási nyelv Struktúrák a C++ nyelvben

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

Java és web programozás

Programozás alapjai II. (4. ea) C++

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

Átírás:

Java V. szint lyszintű ű tagok A final minősítő Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 05. Java V.: szintű tagok JAVA5 / 1 Példányváltozó Az eddig megismert adattagokból minden objektumnak saját "készlete" van. Ezeket ezért szokás példányváltozóknak is nevezni. Az adattagok deklarációja elé kitehető a static minősítő. Java V.: szintű tagok JAVA5 / 2 változó A statikus adattag az osztály valamennyi objektuma számára egy példányban létezik, azok osztottan használják. Miután az osztály egészére vonatkoznak, szokás osztályváltozóknak is hívni. (Globális változó az osztályra nézve.) Nem a this pszeudó változó segítségével történik az elérése. Az objektumok előtt kell létrejönnie. Java V.: szintű tagok JAVA5 / 3

változó (folyt.) Inicalizálása az osztály inicializálás során történik. A JVM akkor inicializál egy osztályt, amikor először történik rá aktív hivatkozás (példányosítás, metódus hívás vagy változó hozzáférés). Az osztályon belül a nevével hivatkozhatunk. Hivatkozhatunk rá bármely objektum példánnyal. Az osztály bármely metódusa használhatja. Mivel egyetlen példány létrehozása nélkül is létezik, a hivatkozásban osztálynevet is használhatunk. Java V.: szintű tagok JAVA5 / 4 változó (példa) public class Szamozott { private static int m_idarab = 0; private int m_isorszam; public Szamozott() { m_isorszam = ++m_idarab; Minden objektum számontartja, hogy hányadikként jött létre. A számozást a konstruktor végzi. Java V.: szintű tagok JAVA5 / 5 lymetódus Bár az eddigi metódusok csak egy példányban léteznek minden példány számára, de működésükhöz egy aktuális példány szükséges. Ezeket hívhattuk volna példánymetódusoknak is. Metódus is kaphat static minősítést: osztálymetódus. Az ilyen metódus a példányváltozókhoz és a this pszedóváltozóhoz nem férhet hozzá. Következmény: csak osztályváltozókat és más osztálymetódusokat használhat. Java V.: szintű tagok JAVA5 / 6

lymetódus (folyt.) Akkor is végrehajtható, ha az osztálynak nem léteznek példányai. Hivatkozás: osztályon belül a nevével minősített hivatkozásnál bármely példány vagy az osztály nevével. Egy program indulásakor nincs, ami példányt hozzon létre, ezért a main metódusnak static minősítésűnek kell lennie. Java V.: szintű tagok JAVA5 / 7 lymetódus (példa( lda) Az előző Szamozott osztály egy metódusa lehet: public static int hanyanvagyunk() { return m_idarab; Ez a metódus bármely Szamozott típusú példánnyal, vagy a Szamozott.hanyanVagyunk() formában is meghívható. Java V.: szintű tagok JAVA5 / 8 A final minősítő A final minősítő többféle célra is használható a Java nyelvben. Jelentése mindig "valami olyasmi, ami később nem változtatható meg". Rokon a C nyelv const minősítőjével, de attól sokoldalúbb. Java V.: szintű tagok JAVA5 / 9

final adattagok Deklaráció: final típus azonosító=inicializáló kifejezés Az inicializáló kifejezés csak olyan elemeket tartalmazhat, amelyek az addigi deklarációk ismeretében feldolgozhatóak. Minden példányosítás során végrehajtódik, tehát a változó értéke objektumonként egyedi lehet. Egyetlen metódus sem változtathatja meg az Java V.: szintű tagok JAVA5 / 10 static final adattagok Deklaráció: static final típus azonosító=inicializáló kif. Az inicializáló kifejezés csak konstansokat és olyan static adattagokat tartalmazhat, amelyek már deklaráltak. Csak egyszer, az osztály inicializálása során hajtódik végre, tehát a változó értéke az osztály minden példánya számára ugyanaz. Egyetlen metódus sem változtathatja meg az Java V.: szintű tagok JAVA5 / 11 Megjegyzések: Az egyszerű típusú final adattagok egy konstans értéket képviselnek. (Nagyjából megfelelnek a C const változóinak.) Az osztálytípusú final adattagok egy konstans referenciát képviselnek. Nem változtatható meg az értéke, hogy egy másik példányra hivatkozzon. Semmi sem akadályozza azonban azt, hogy a hivatkozott objektumot megváltoztassuk. A Java-ban egy objektum nem deklarálható konstansnak. Java V.: szintű tagok JAVA5 / 12

Kezdőérték nélküli final adattag Másik elnevezése üres konstans, angol elnevezése: blank final. A deklarációból az inicializáló kifejezés (az = jellel együtt) elhagyható. Az adattag az első használata előtt inicializálandó. (A fordító ezt ellenőrzi!) Veszélyes lehet, ezért az ajánlás: ne használjuk, ha használjuk, akkor minden konstruktor állítsa be az Java V.: szintű tagok JAVA5 / 13