Java és web programozás

Hasonló dokumentumok
Java és web programozás

Java és web programozás

Osztályok. 4. gyakorlat

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

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

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.

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

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

Származtatási mechanizmus a C++ nyelvben

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

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

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

Java és web programozás

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

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

Objektumorientált programozás C# nyelven

Java és web programozás

C++ programozási nyelv Konstruktorok-destruktorok

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

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

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

BME MOGI Gépészeti informatika 8.

Objektumok inicializálása

Programozási nyelvek Java

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

Java és web programozás

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

Objektumorientált programozás C# nyelven

A C++ öröklés. (Előfeltétel: 12. tétel ismerete)

Osztály és objektum fogalma

JAVA PROGRAMOZÁS 2.ELŐADÁS

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

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

Programozási nyelvek Java

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

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

Szoftvertechnológia alapjai Java előadások

Programozás C++ -ban

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

C++ programozási nyelv

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ás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás

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

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

Programozás C++ -ban 2007/7

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

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

Web-technológia PHP-vel

Programozás I. Első ZH segédlet

és az instanceof operátor

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

Kalapácsvetés 2016 szöveges

Szoftvertechnolo gia gyakorlat

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

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

Programozási nyelvek Java

Objektumorientált programozás C# nyelven

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

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

Objektumorientált programozás C# nyelven III.

Programozás II. labor

Elemi Alkalmazások Fejlesztése II.

Programozás C++ -ban 2007/4

Pénzügyi algoritmusok

3. Osztályok II. Programozás II

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?

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

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++ programozási nyelv Konstruktorok Gyakorlat

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Programozás C++ -ban

Java IX. telkezelés a Java-ban

Programozási nyelvek Java

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

Alkatresz::Alkatresz(string n; int csz, int a) { nev = n; cikkszam = csz; ar = a; };

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

Objektumorientált programozás C# nyelven

Java IX. telkezelés a Java-ban

Öröklés és Polimorfizmus

Programozási nyelvek Java

4. Gy: JAVA osztályok

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

Programozási nyelvek Java

500. AA Megoldó Alfréd AA 500.

OOP #14 (referencia-elv)

Java programozási nyelv

Programozási alapismeretek 4.

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

Globális operátor overloading

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

Objektumorientált Programozás VI.

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

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

Java Programozás 11. Ea: MVC modell

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

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

OOP: Java 4.Gy: Java osztályok

Programozási nyelvek II.: JAVA

Pénzügyi algoritmusok

Átírás:

Budapesti M szaki Egyetem 2013. szeptember 18.

2. El adás

Komplex szám public class Complex { private float repart_; private float impart_; public Complex() { repart_ = 0; impart_ = 0; public Complex(float repart) { repart_ = repart; impart_ = 0;

public Complex(float repart, float impart) { repart_ = repart; impart_ = impart; public Complex add(complex other) { float repart = this.repart_ + other.repart_; float impart = this.impart_ + other.impart_; Complex retval = new Complex(rePart, impart); return retval;

Objektum Objektum a konkrét adat és a rajta végezhet m veletek Osztály egy típus, melyb l létrehozhatunk konkrét példányokat, objektumokat. Az objektumoknak jogköre van Képesek kommunikálni más objektumokkal A bels adatszerkezete és a m ködését megvalósító algoritmus rejtve marad Könnyen módosítható, újrafelhasználható, általánosítható

Adattakarás javaban private float repart_; private float impart_; Ami private csak az osztályon belülr l érhet el, kívülr l nem. public dolgok mindenhonnan elérhet ek. Lesz még egy protected jelz is, ez majd ha már örökléssel foglalkozunk.

Adattakarás javaban private float repart_; private float impart_; Ami private csak az osztályon belülr l érhet el, kívülr l nem. public dolgok mindenhonnan elérhet ek. Lesz még egy protected jelz is, ez majd ha már örökléssel foglalkozunk. public class Main { public static void main(string[] args) { Complex comp = new Complex(5, 6); System.out.println(comp.rePart_); // Hiba System.out.println(comp); // Nem hiba Maga a comp objektum elérhet, így kiírható Viszont az adott private adattagja nem, mert rejtett

Mindez vonatkozik változókra és függvényekre is Létre lehet hozni egy private függvényt, és public változót is Ezek viszont ritkább esetek A cél mindig az legyen, hogy bárki tudja használni az általatok írt osztályokat, anélkül hogy a forráskódba kellene néznie

Mindez vonatkozik változókra és függvényekre is Létre lehet hozni egy private függvényt, és public változót is Ezek viszont ritkább esetek A cél mindig az legyen, hogy bárki tudja használni az általatok írt osztályokat, anélkül hogy a forráskódba kellene néznie Ezeket nyelvi szinten nem kötelez betartani, lehet minden adattagja egy osztálynak public, de ezzel maga alatt ássa az ember a fát (másrészt mi se fogunk neki örülni) Egy hasznos praktika, ha alsóvonással jelölitek a private adattagokat

Dinamikus memória foglalás javaban public class Main { public static void main(string[] args) { Complex comp = new Complex(5, 6); System.out.println(comp.rePart_); // Hiba System.out.println(comp); // Nem hiba new kulcsszóval Egyszer bb mint C-ben (malloc, realloc, calloc) Cserébe mindennek dinamikusan kell memóriát foglalni Kivételek ez alól a primitív adatszerkezetek, mint az int, oat Általában a primitívek kis bet vel kezd dnek, tehát pl a String nem az VáltozoTípusa változónév = new ObjektumTípusa(konstruktor bemenetei)

Konstruktor javaban public Complex() { repart_ = 0; impart_ = 0; public Complex(float repart) { repart_ = repart; impart_ = 0; Konstruktor a deníció és inicializálás egybevonása Nincs visszatérési értéke A paraméter nélküli konstruktor a default konstruktor Amikor new-val létrehozunk egy objektumot a megfelel konstruktora hívódik meg Lehet private egy konstruktor, de ritkán van értelme

Javaban nincs destruktor Furcsa lehet ez azoknak akik tudnak C++-ban programozni, de javaban nincs destruktor De akkor mi van helyette?

Javaban nincs destruktor Furcsa lehet ez azoknak akik tudnak C++-ban programozni, de javaban nincs destruktor De akkor mi van helyette? Garbage collector Ez annyit tesz, hogy nem akkor sz nik meg egy objektum amikor bezárul a blokk ahol létre lett hozva, hanem amikor ezt a java jónak látja Természetesen olyan objektumokat nem szabadít fel amik használatban lehetnek még

Most egyben public class Complex { private float repart_; private float impart_; public Complex() { repart_ = 0; impart_ = 0; public Complex(float repart) { repart_ = repart; impart_ = 0;

public Complex(float repart, float impart) { repart_ = repart; impart_ = impart; public Complex add(complex other) { float repart = this.repart_ + other.repart_; float impart = this.impart_ + other.impart_; Complex retval = new Complex(rePart, impart); return retval; // Itt új osztály és ezzel új fájl kezd dik public class Main { public static void main(string[] args) { Complex comp = new Complex(5, 6); System.out.println(comp.rePart_); // Hiba System.out.println(comp); // Nem hiba

Bonyolultabb példa public class ComplexVector { private Complex[] coords_; private int dimension_; public ComplexVector(int dimension) { dimension_ = dimension; coords_ = new Complex[dimension]; public ComplexVector(ComplexVector other) { this.coords_ = other.coords_.clone(); this.dimension_ = other.dimension_;

public ComplexVector add(complexvector other) { ComplexVector retval = new ComplexVector(this.dimension_); for (int i = 0; i < retval.coords_.length; i++) { retval.coords_[i] = this.coords_[i].add(other.coords_[i]); return retval; Itt egy Complex tömb az egyik adattag Ez nagyon gyakori lesz, az általatok írt osztályok nagy részében szintén általatok írt osztályok lesznek az adattagok Ezért is nagyon fontos, hogy rejtett maradjon minden osztály m ködése Ebben az esetben, ha meg is változik az adatszerkezete vagy a számítási algoritmusa az egyiknek attól még a többivel való kapocs nem romlik el

Amiket kiemelnék az el bbi példából private Complex[] coords_; Így lehet tömböt deklarálni coords_ = new Complex[dimension]; Tömb létrehozása, ilyenkor a default konstruktor hívódik meg sokszor retval.coords_.length; A tömböknek van egy length (hossz) adattagja, így nem is kellene a dimenzióját tárolni

Amiket kiemelnék az el bbi példából private Complex[] coords_; Így lehet tömböt deklarálni coords_ = new Complex[dimension]; Tömb létrehozása, ilyenkor a default konstruktor hívódik meg sokszor retval.coords_.length; A tömböknek van egy length (hossz) adattagja, így nem is kellene a dimenzióját tárolni Ha precíz lettem volna, az összeadásnál vizsgálom, hogy egyáltalán össze lehet-e ket adni Ezt majd hibakezeléssel oldjuk meg, ami a következ heten lesz csak