Java és web programozás

Hasonló dokumentumok
Java és web programozás

Osztályok. 4. gyakorlat

Java és web programozás

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

Szoftvertechnolo gia gyakorlat

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

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

OOP #14 (referencia-elv)

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

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

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

Java és web programozás

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

JAVA PROGRAMOZÁS 3.ELŐADÁS

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:

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

Programozási nyelvek Java

JAVA PROGRAMOZÁS 2.ELŐADÁS

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

Szoftvertechnológia alapjai Java előadások

é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

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

Programozás I. Első ZH segédlet

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

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

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

4. Gy: JAVA osztályok

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

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

C# osztályok. Krizsán Zoltán

Programozási nyelvek Java

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

OOP: Java 8.Gy: Gyakorlás

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Smart Pointer koncepciója

Java Programozás 11. Ea: MVC modell

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

A C programozási nyelv V. Struktúra Dinamikus memóriakezelé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

A lista adatszerkezet A lista elemek egymásutániságát jelenti. Fajtái: statikus, dinamikus lista.

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

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

3. Osztályok II. Programozás II

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

Programozási nyelvek Java

BME MOGI Gépészeti informatika 8.

OOP: Java 4.Gy: Java osztályok

Java és web programozás

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

Származtatási mechanizmus a C++ nyelvben

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

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# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

1. Alapok. Programozás II

Java és web programozás

Programozási nyelvek II.: JAVA

C++ programozási nyelv

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

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

Objektumorientált programozás C# nyelven

Programozási nyelvek II.: JAVA

Programozás módszertan

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

Programozás C++ -ban

Objektumok inicializálása

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

Programozás C++ -ban

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

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

A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük.

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?

Java II. I A Java programozási nyelv alapelemei

Elemi Alkalmazások Fejlesztése II.

Web-technológia PHP-vel

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

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 II. labor

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

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

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

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

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

Öröklés és Polimorfizmus

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

OOP: Java 7.Gy: Öröklődés, referenciák

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?

Programozás alapjai. 10. előadás

Globális operátor overloading

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

C#, OOP. Osztályok tervezése C#-ban

Java és web programozás

Kalapácsvetés 2016 szöveges

Objektumorientált programozás C# nyelven

Segédanyag: Java alkalmazások gyakorlat

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

Bánsághi Anna

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

Átírás:

Budapesti M szaki Egyetem 2013. szeptember 25.

3. El adás

User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname) { realname_ = realname; nickname_ = nickname; } public User(String realname, String nickname, String password) { realname_ = realname; nickname_ = nickname; password_ = password; }

public boolean passwordcheck(string enteredpassword) { if (password_.equals(enteredpassword)) { return true; } return false; } } public void setnickname(string newnickname) { } nickname_ = newnickname;

Memória kép Az el bbi User osztály is elhelyezkedik valahol a memóriában. Rá úgy kell tekinteni mint egy mintára amib l lehet készíteni User objektumokat. Amikor létrehozunk (konstruálunk) egy User objektumot akkor használnunk kell az egyik konstruktorát. A java el ször lefoglalja a memóriában a helyet az objektumnak. Majd lefuttatja a konstruktort amivel a objektum adattagjai kezd értéket kapnak.

Memória kép Az el bbi User osztály is elhelyezkedik valahol a memóriában. Rá úgy kell tekinteni mint egy mintára amib l lehet készíteni User objektumokat. Amikor létrehozunk (konstruálunk) egy User objektumot akkor használnunk kell az egyik konstruktorát. A java el ször lefoglalja a memóriában a helyet az objektumnak. Majd lefuttatja a konstruktort amivel a objektum adattagjai kezd értéket kapnak. Amikor csak deklarálunk egy nem primitív változót ahhoz nem tartozik semmilyen tárolt objektum egészen addig amíg nem foglalunk le egyet és adjuk neki értékül. Minden változóra úgy kellene tekinteni, mintha pointerek lennének.

Példa Ez a memóriánk.

Példa User user1; Létrehoztuk a user1 változót

Példa User user1; new User("kutya", "morzsi"); Létrehoztunk egy User objektumot

Példa User user1; new User("kutya", "morzsi"); Ennek lefutott a konstruktora így az adattagjainak van értéke

Példa User user1; user1 = new User("kutya", "morzsi"); Hozzarendeltük a változóhoz az objektumot

Példa User user1; user1 = new User("kutya", "morzsi"); user1 = new User("macska", "ficur"); Létrehoztunk egy új objektumot és a user1-hez rendeltük

Példa User user1; user1 = new User("kutya", "morzsi"); user1 = new User("macska", "ficur"); Mi lesz most az eredeti objektumunkkal?

Példa User user1; user1 = new User("kutya", "morzsi"); user1 = new User("macska", "ficur"); Valamikor jön majd a garbage collector és felszabadítja

Példa User user1; User user2 = new User("kutya", "morzsi"); user1 = new User("macska", "ficur"); Két objektumot össze szeretnénk hasonlítani

Példa User user1; User user2 = new User("kutya", "morzsi"); user1 = new User("macska", "ficur"); user1 == user2; Így a user változók hasonlítódnak össze, azaz az derül ki, hogy ugyanarra az objektumra mutatnak-e.

Példa User user1; User user2 = new User("kutya", "morzsi"); user1 = new User("macska", "ficur"); user1.equals(user2); Így már valóban az objektumok hasonlítódnak össze.

Garbage collector Mint majdnem minden programnyelvben itt is igaz az, hogy egy blokkban létrehozott változó csak a blokkon belül létezik. Az objektumokra ez nem igaz, a memóriában maradnak azután is, hogy vége egy blokknak. Viszont, ha beindult a garbage collector és talál olyan objektumot amire nincs hivatkozás. Azaz sehonnan nem lehet elérni (mint az el z példában). Akkor felszabadítja.

Garbage collector Mint majdnem minden programnyelvben itt is igaz az, hogy egy blokkban létrehozott változó csak a blokkon belül létezik. Az objektumokra ez nem igaz, a memóriában maradnak azután is, hogy vége egy blokknak. Viszont, ha beindult a garbage collector és talál olyan objektumot amire nincs hivatkozás. Azaz sehonnan nem lehet elérni (mint az el z példában). Akkor felszabadítja. A garbage collector nem folyamatosan m ködik, hanem bizonyos id pillanatokban elindul. Rá lehet kényszeríteni a javat, hogy indítsa el a garbage collectort.

Statikus adattagok / metódusok A statikus adattagok az osztályhoz tartoznak és nem az objektumokhoz. Ez azt is jelenti, hogy ha valami statikus már akkor létezik, amikor még egy objektumot se hoztunk létre az adott osztályból.

Statikus adattagok / metódusok A statikus adattagok az osztályhoz tartoznak és nem az objektumokhoz. Ez azt is jelenti, hogy ha valami statikus már akkor létezik, amikor még egy objektumot se hoztunk létre az adott osztályból. Ezért kell a main függvényeknek mindig statikusnak lenniük, mert ket anélkül kell tudnunk meghívni, hogy létrehoztunk volna objektumot. Statikus adattagból nem jön létre több ha létrehozunk egy új objektumot, hisz az osztályhoz tartozik. Így egy bizonyos statikus adattagból mindig csak egy van.

Példa statikus adattagra public class Pelda { public static int szamlalo = 0; public Pelda() { } Pelda.szamlalo++; } public static void main(string[] args) { Pelda pelda1 = new Pelda(); Pelda pelda2 = new Pelda(); Pelda pelda3 = new Pelda(); Pelda pelda4 = new Pelda(); System.out.println(Pelda.szamlalo); // 4 }

Static Láthatjátok, hogy a statikus adattagokat nem az objektumon keresztül (this) érjük el, hanem az osztalyon keresztük. Statikus adattagok használat nem ajánlott nagyobb projectekben ahol esetleg megjelenik a párhuzamosítás.

Static Láthatjátok, hogy a statikus adattagokat nem az objektumon keresztül (this) érjük el, hanem az osztalyon keresztük. Statikus adattagok használat nem ajánlott nagyobb projectekben ahol esetleg megjelenik a párhuzamosítás. Amire viszont mindig hasznos, hogy konstansokat deniáljatok. public static nal oat pi = 3.14;

Konstansok A konstansok megváltoztathatatlanok, azonnal értéket kell nekik adni és ezután értekadás jobb oldalán szerepelhet csak. Bármilyen változót lehet konstansnak deniálni. Metódus is lehet konstans (nal). Ekkor az adott metódus módosíthatatlan. Ilyenr l jelenleg még nem tanultunk, de a kés bbiekben el fog jönni.

Összefoglalás Változó és objektum két külön életet él. Emiatt sokszor nem egyértelm egy m velet eredménye. Érdemes mindig pointerekkel gondolkodni, ekkor átláthatóbb lesz. Statikus dolgok az osztályhoz tartoznak és nem az objektumhoz. Statikus függvények meghívhatók objektum létrehozása nélkül. Ez azt is jelenti, hogy statikus objektumokban a this kulcsszónak nincs értelme. Konstansokat deniálhattok a nal kulcsszóval.