Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 1
|
|
- Domokos Kocsis
- 5 évvel ezelőtt
- Látták:
Átírás
1 Angster Erzsébet: OO tervezés és programozás, Java II. kötet alapján Készítette: Andor Gergely Ellenőrizte: Dr. Szelezsán János Jóváhagyta: Lengyel Zsuzsánna Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 1
2 I. Objektumorientált technikák II. Grafikus felhasználói interfész III. Állománykezelés IV. Vegyes technológiák V. Adatszerkezetek, kollekciók Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 2
3 1. Csomagolás, projektkezelés 2. Öröklődés 3. Interfészek, belső osztályok 4. Kivételkezelés Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 3
4 1. Csomagolás, projektkezelés 1. Csomagolás 2. Projektkezelés a JBuilderben 3. JAR-állomány készítése 4. Java program futtattása Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 4
5 Csomagolás Csomag (package) Összetartozó osztályok és interfészek csoportja Logikai és fizikai szintű csoportosítás csomag1 csomag2 csomag11 Interfesz csomag12 csomag121 Osztaly5 Osztaly1 Osztaly3 Osztaly2 Osztaly4 Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 5
6 Könyvtárstruktúra Projektfájl Projektkönyvtár Forrásútvonal CsomagApp CsomagApp.jpx Célútvonal src classes csomag1 csomag2 csomag1 csomag2 csomag11 csomag12 Osztaly5.java csomag11 csomag12 Osztaly5.class Interfesz.java Osztaly2.java Osztaly4.java csomag121 Interfesz.class Osztaly1.class Osztaly2.class Osztaly4.class csomag121 Osztaly3.java Osztaly3.class Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 6
7 Csomag azonosítása UML: csomag1::csomag12::csomag121 Java: csomag1.csomag12.csomag121 Csomag megadása package csomag1.csomag12.csomag121; Más csomag importálása import csomag1.csomag12.csomag121.osztaly3; import csomag1.csomag12.csomag121.*; Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 7
8 Csomag elemeinek láthatósága Osztály vagy interfész láthatósága publikus (public) csomagszintű Osztálytagok (adatok, metódusok) láthatósága publikus (public, +) védett (protected, #) privát (private, -) csomagszintű Az öröklési ágon az osztálytagok láthatósága csak bővíthető! Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 8
9 Projekt (project) Projektkezelés a JBuilderben Egy adott szoftver fejlesztéséhez használt, logikailag összetartozó állományok és környezeti beállítások gyűjteménye Projektállomány projektelemek (állományok) listája projekt tulajdonságai Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 9
10 Projektkezelés JBuilderben Projekt (project) összetartozó osztályok és interfészek csoportja logikai és fizikai szintű csoportosítás Projektpanel Tartalompanel Struktúrapanel Üzenetpanel Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 10
11 Java fordítóprogram Alapútvonalak kimeneti útvonal output path osztályútvonal class path forrásútvonal source path Példák 02Oroklodes\HengerProgram\src\compile1.bat: javac -g -nowarn Henger.java 01Projekt\CsomagApp\make.bat javac -sourcepath src -d classes Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 11
12 JAR (Java ARchive) JAR-állomány készítése Egy Java projekt fájljait tömörítő állomány Manifest (aláírásfájl, manifest.mf) JAR fájl összeállítása parancssorból jar cfm CsomagApp.jar meta-inf\manifest.mf C classes. JAR fájl futtatása java jar CsomagApp.jar Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 12
13 2. Öröklődés 1. Az öröklődés fogalma 2. Mintafeladat Hengerprogram 3. Az objektumreferencia statikus és dinamikus típusa 4. Az utódosztály adatai és kapcsolatai 5. Metódusok felülírása, dinamikus és statikus kötés 6. this és super referenciák 7. this és super konstruktorok konstruktorok láncolása 8. Polimorfizmus 9. Absztrakt metódus, absztrakt osztály 10. Láthatóság 11. Összefoglalás metódusok nyomkövetése Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 13
14 Öröklődés Öröklődés(inheritance), kiterjesztés(extension) Egy meglévő osztály kiterjesztése, továbbfejlesztése Ősosztály, utódosztály Egyszeres / többszörös öröklés Az öröklés szabályai Egy osztályból több osztály is származtatható Az osztályhierarchia mélysége tetszőleges Az öröklés tranzitív A Javában minden osztály implicit őse az Object, és csak egyszeres öröklés van. Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 14
15 Mintafeladat Hengerprogram Feladat Hengerprogram Különböző hengereket szeretnénk nyilvántartani: vannak olyan hengerek, amelyek csupán mértani testek. Ezeknek van sugaruk és magasságuk; vannak rudak (tömör hengerek), melyeknek súlyuk is van; végül vannak csövek: valamekkora falvastagságú tömör, lyukas hengerek. Készítsük el a megadott hengerek osztályait! Inicializáláskor a hengereknek értelemszerűen megadhatók a következő adatok: sugár, magasság, fajsúly és falvastagság. A fajsúlyt nem kötelező megadni, az alapértelmezésben legyen 1! Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 15
16 Minden henger legyen képes visszaadni alapadatait, térfogatát és esetleges súlyát! A tostring() metódus adja meg az adott henger szöveges reprezentációját! A fent leírt osztályokból példányosítsunk néhányat, és tegyük bele őket egy konténerbe! Végezzük el a következő feladatokat: Írjuk ki a hengerek számát, és listázzuk ki a hengerek adatait! Számítsuk ki a konténerben található összes henger átlag térfogatát! Listázzuk ki a csövek adatait, adjuk meg a csövek számát és összsúlyukat! Számoljuk és a program végén írjuk ki a program futása közben született hengerek számát! Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 16
17 Osztálydiagram HengerProgram +HengerProgram() +atlagterfogat(): double +lista(vektor: Vector) +run() +main(...) * hengerek {Vector Henger -szuletesszamlalo: int -sugar, magassag: double +Henger(sugar,magassag: double) +getszuletesszamlalo: int +getsugar(): double +getmagassag(): double +terfogat(): double +tostring(): String Rud -falvastagsag: double Cso +Cso(sugar,magassag,fajsuly,falVastagsag: double) +Cso(sugar,magassag,falVastagsag: double) +getfalvastagsag(): double +terfogat(): double +tostring(): String -fajsuly: double +Rud(sugar,magassag,fajsuly: double) +Rud(sugar,magassag: double) +getfajsuly(): double +suly(): double +tostring(): String Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 17
18 class Henger { //... class Rud extends Henger { //... class Cso extends Rud { //... public class HengerProgram { //... Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 18
19 Az objektumreferencia statikus és dinamikus típusa Statikus típus: deklarált osztály Dinamikus típus: mutatott objektum valódi osztálya :Object Object Helytelen! :Henger Henger r : Rud :Rud Rud :Cso Cso Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 19
20 instanceof operátor Object obj = new String("Valami"); if (obj instanceof Object)... if (obj instanceof String)... if (obj instanceof Integer)... if ("Semmi" instanceof String)... // true // true // false // true Automatikus típuskonverzió felfelé (upcasting) String str = "Kakukk"; System.out.println(str.toLowerCase()); // OK Object obj = str; // String Object //System.out.println(obj.toLowerCase()); Fordítási hiba! Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 20
21 Típuskonverzió lefelé (downcasting) Object obj = "Szoveg"; // String Object String str = (String)obj; // Object String // String str = obj; Fordítási hiba! Object obj = "Kakas"; // String Object Integer iobj = (Integer)obj; // Object Integer (!) System.out.println(iObj.intValue()); // ClassCastException! Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 21
22 Az utódosztály adatai és kapcsolatai Példányadatok memóriafoglalása h : Henger r : Rud cso : Cso Henger -sugar: double -magassag: double sugar = 1 sugar = 0.5 sugar = 5 magassag = 4 magassag = 4 magassag = 5 Rud fajsuly = 2 fajsuly = 0.5 -fajsuly: double falvastagsag = 2 Cso -falvastagsag: double Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 22
23 Hivatkozás az adatokra Hivatkozás kívülről: publikus, nem takart példányadatokra, illetve osztályadatokra Hivatkozás osztályból: publikus vagy védett ősadatokra Adatok takarása Adatot nem lehet felülírni! Adat takarása = ugyanolyan nevű másik adat deklarálása Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 23
24 class C1 { static String s = "C1 "; int a = 1; int b = 10; class C2 extends C1 { int a = 2; class C3 extends C2 { static String s = "C3 "; int b = 30; public void kiir1() { System.out.println(C1.s+C2.s+s); //public void kiir2() { System.out.println(C1.a+C2.a+C3.a); public void kiir3() { System.out.println(super.a+a); public void kiir4() { System.out.println(super.b+b); Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 24
25 Metódus felülírása, dinamikus és statikus kötés Példánymetódus felülírása (overriding) Egy metódus az utódosztályban felülírható, ha az nem private nem final nem static (példánymetódus) Dinamikus kötés, futás alatti kötés, késői kötés Osztálymetódus Az osztály sajátja, nem írható felül Statikus kötés Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 25
26 A példánymetódus dinamikus kötése C1 m1() {m2() m2() obj1:c1 m1() m1() obj2:c2 m2() C2 Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 26
27 Az osztálymetódus statikus kötése C1 m1() {m2() m2() obj1:c1 m1() m1() obj2:c2 m2() C2 Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 27
28 this és super referenciák A megszólított objektum referenciái Példánydeklarációk takarása esetén használatosak Hivatkozás saját (eltakart) adatra this.adat Hivatkozás ős (eltakart) adatra / metódusra super.adat super.metódus() Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 28
29 Konstruktorok láncolása Minden osztálynak van saját konstruktora A konstruktor nem öröklődik, és nem lehet felülírni Konstruktorhívási lánc Konstruktorok láncolásának szabályai Osztályon belül másik konstruktor hívása: this(paraméterek) A közvetlen ős konstruktor hívása: super(paraméterek) Minden konstruktorban pontosan egy this() vagy super() hívás legelső utasításként Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 29
30 class C1 { C1(int a) { Példa class C2 extends C1 { C2(int a, int b) {super(a); C2(int a) {this(a,1); C2() {this(2); class C3 extends C2 { C3(int a, int b) { C3(int a) {this(a,3); Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 30
31 class C4 extends C3 { int a; //C4() {super(); // hiba: C3-ban nincs C3() //C4() { // hiba: C3-ban nincs C3() //C4() {a=1; super(a); // hiba: super nem első! //C4() {this(); super(5); // hiba: kettő nem lehet! public class KonstruktorProba { public static void main (String args[]) { new C3(1); Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 31
32 Polimorfizmus :Rud :Henger :Rud :Henger :Cso terfogat() tostring() terfogat() tostring() :HengerProgram terfogat() tostring() Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 32
33 Absztrakt metódus, absztrakt osztály Absztrakt metódus: üres metódus, mely csak örökítési célt szolgál Absztrakt osztály: absztrakt metódust tartalmazó, nem példányosítható osztály Jelölés UML: dőlt betűvel Java: abstract class <OsztályAzonosító> { abstract <metódusaz>(paraméterek); Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 33
34 Feladat FaIdomok Egy fajátékokat tartalmazó dobozban két féle idom van: gömb és hasáb, különböző méretekben. Készítsünk olyan programot, amellyel nyilvántarthatjuk különböző idomok adatait! Írjuk ki a következőket: az összes idom adatait a felvitel sorrendjében; az idomok összsúlyát; a gömbök összsúlyát; a legkisebb és a legnagyobb térfogatú idom típusát és adatait! Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 34
35 Osztálydiagram idomok java::lang::object java::lang::comparable FaIdomok +FaIdomok() +osszsuly(): double +osszgombsuly(): double +run() +main(...) * -idomok {Vector Idom { abstract -fajsuly: double = 0.8 +terfogat(): double +suly(): double +compareto(obj:object): int Gomb -sugar: double +Gomb(sugar:double) +terfogat(): double +tostring(): String Hasab -a,b,magassag: double +Hasab(a,b,magassag:double) +terfogat(): double +tostring(): String Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 35
36 3. Interfészek, belső osztályok 1. Interfész 2. Belső osztály 3. Névtelen osztály Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 36
37 Interfész Konstansokat és metódusfejeket definiál Implementáló osztály: a metódusokat implementálja Deklarációja: [public] interface <InterfészAzon> [extends <InterfészAzon,...>] { <konstansok, metódusfejek> Abstract, nem példányosítható Egyetlen lehetséges módosítója: public Konstansok módosítói: public, static, final Metódusfejek módosítói: public, abstract Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 37
38 Az interfész implementálása Implementáló osztály: speciális utódja az interfésznek Nem abstract osztály összes metódust meg kell írni Abstract osztály az utódban befejezhető az implementálás Egy osztály akárhány interfészt implementálhat! Az interfész egyes metódusait az implementáló osztály örökölheti is Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 38
39 Az interfész öröklése Az interfészek örökíthetők Az utód interfész örökli az ős interfész deklarációit Az utód interfész implementálásakor implementálnunk kell az ős interfész metódusait is Egy interfész akárhány interfészt örökölhet! Értékadási kompatibilitás Az objektum statikus referenciája lehet interfész típusú Az implementáló osztály objektuma értékül, illetve paraméterül adható az interfész típusú statikus referenciának Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 39
40 Feladat Sorok feldolgozása, QueueApp A sor szekvenciális, csak sorban feldolgozható konténer; csak a végére lehet új elemet tenni, s csak a legelsőnek betett elemet lehet kivenni belőle. Készítsünk két interfészt: Az IQueue olyan sor, amely képes a következőkre: Betesz egy új objektumot a sor végére; Kiveszi, és rendelkezésre bocsátja a sor legelső objektumát; Megmondja, hogy a sor üres-e. Az ICleverQueue okos sor (clever queue), s az előbbieken túl a következőket is tudja: Kiveszi és megszünteti a sor első n objektumát; Megadja a sorban álló objektumok számát. Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 40
41 Készítsünk mindkét interfészből egy-egy osztályt! Az ICleverQueue implementációja legyen leszármazottja az IQueue implementációjának. Az interfészeket és az osztályokat tegyük be az extra.util csomagba, hogy később is használhassuk őket! Végül készítsünk egy programot, amely menüvezérelten végzi a következő funkciókat: betesz a sorba egy szöveget; kivesz a sorból egy szöveget (ha van) és ki is írja; kitöröl a sorból három szöveget, ha van benne annyi! Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 41
42 extra::util «interfész» IQueue +put(object) +get(): Object +isempty(): boolean «interfész» ICleverQueue Osztálydiagram java::lang::object Queue +put(object) +get(): Object +isempty(): boolean CleverQueue Forráskódok Projekt: QueueApp Csomaghierarchia: QueueApp extra util IQueue ICleverQueue Queue CleverQueue QueueApp +remove(int) +size(): int +remove(int) +size(): int +main(...) +processqueue(icleverqueue) Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 42
43 IQueue.java package extra.util; public interface IQueue { void put(object o); Object get(); boolean isempty(); ICleverQueue.java package extra.util; public interface ICleverQueue extends IQueue { void remove(int n); int size(); Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 43
44 Queue.java... public class Queue implements IQueue { protected Vector v = new Vector(); public void put(object o) { v.add(o);... CleverQueue.java... public class CleverQueue extends Queue implements ICleverQueue {... Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 44
45 Konstans az interfészben Feladat Számla Kérjünk be egy forintösszeget, majd írjuk ki az értékét euróban!... interface Euro { int ARFOLYAM = 230; String NEV = "EURO"; public class Szamla implements Euro { public static void main (String args[]) { int ftosszeg = Console.readInt("Összeg (Ft): "); System.out.println((ftOsszeg/ARFOLYAM)+" "+NEV); Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 45
46 Belső osztály Osztályon belül deklarált másik osztály: class <KulsoOsztályAzon>... {... class <BelsoOsztályAzon>... {... Csak az őt deklaráló külső osztály ismeri Példányosítás: külső osztály példánymetódusából Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 46
47 Belső osztály (folyt.) Példánya ismeri az őt létrehozó külső objektumot implicit referencia hivatkozás takarásnál: KülsőOsztály.this Nem lehetnek statikus deklarációi Nem kötelező azonosítani (névtelen belső osztály) Fordítóprogram különálló külső osztállyá alakítja: KülsőOsztályAzon$BelsőOsztályAzon.class KülsőOsztályAzon$n.class (n=1,2, ) Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 47
48 Feladat UdvarApp Egy udvaron különböző négyzetes oszlopok vannak elhelyezve. Tartsuk nyilván az udvar és az oszlopok adatait, majd készítsünk róluk jelentést! Ne engedjünk olyan oszlopot létrehozni, amely az udvaron kívülre esik! Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 48
49 import java.util.*; class Udvar { // Udvar.class private int szel=100, hossz=50; private Vector oszlopok = new Vector(); public Udvar() { oszlopok.add(new Oszlop(25,30)); oszlopok.add(new Oszlop(40,5)); oszlopok.add(new Oszlop(97,10)); Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 49
50 class Oszlop { private int x, y; private int szel=5; // Udvar$Oszlop.class public Oszlop(int x, int y) { if (x>=0 && x<=udvar.this.szel-szel && y>=0 && y<=hossz-szel) { this.x = x; this.y = y; else { this.x = 0; this.y = 0; Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 50
51 public String tostring() { return x+"-"+y; // Oszlop public String tostring() { return Udvar:"+szel+"x"+hossz+ ",Oszlopok:"+oszlopok; // Udvar Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 51
52 public class UdvarApp { // UdvarApp.class public static void main(string[] args) { Udvar udvar = new Udvar(); System.out.println(udvar); Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 52
53 Feladat UdvarApp2 Oldjuk meg az előző feladatot belső osztály nélkül!... class Oszlop {... // Oszlop.class public Oszlop(Udvar udvar,int x, int y) { if (x>=0 && x<=udvar.szel-szel && y>=0 && y<=udvar.hossz-szel) { // Oszlop Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 53
54 class Udvar { public Udvar() { // Udvar.class oszlopok.add(new Oszlop(this,25,30)); oszlopok.add(new Oszlop(this,40,5)); oszlopok.add(new Oszlop(this,97,10)); // Udvar public class UdvarApp2 { // UdvarApp2.class Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 54
55 Névtelen osztály Nincs neve Máshol nem lehet rá hivatkozni Egyszer példányosítható Az objektum létrehozásával egyidőben deklaráljuk Névtelen osztályú objektum létrehozása Osztály kiterjesztésével Interfész implementálásával Nincs konstruktora Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 55
56 Névtelen osztály példányosítása class Ember { osztály kiterjesztésével // Ember.class public class NevtelenKiterjesztes { // NevtelenKiterjesztes.class public static void main(string[] args) { Vector emberek = new Vector(); emberek.add(new Ember("Zoli") { public String jellemzo() { return "Kövér"; ); // NevtelenKiterjesztes$1.class Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 56
57 Névtelen osztály példányosítása interfész implementálásával interface Jellemzett { // Jellemzett.class public String jellemzo(); public class NevtelenImplementacio { // NevtelenImplementacio.class public static void main(string[] args) { Jellemzett jel = new Jellemzett() { public String jellemzo() { return "Szép"; ); // NevtelenImplementacio$1.class Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 57
58 4. Kivételkezelés 1. Kivételek, hibák 2. Kivételek keletkezése és szándékos kiváltása throw 3. A kivétel továbbadása throws 4. A kivétel elkapása, kezelése 5. Saját kivételek használata Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 58
59 Rendszerhibák és kivételek Programot leállító események: objektumok, melyek osztályai a Throwable osztály leszármazottai A dobható események két csoportja: Rendszerhiba (Error): a programot leállítja Kivétel (Exception): hibakezelés után a program folytatódhat Nem ellenőrzött kivétel: nem kötelező kezelni (futási hibák, RuntimeException és annak leszármazottai) Ellenőrzött kivétel: kötelező kezelni (többi Exception) Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 59
60 Object java.lang Throwable java.lang Error java.lang LinkageError java.lang VirtualMachineError java.lang ThreadDeath java.lang AWTError java.lang Exception java.lang RuntimeException java.lang ArrayIndexOutOfBoundsException java.lang ArithmeticException java.lang ClassCastException java.lang IllegalArgumentException java.lang NumberFormatException java.lang... NegativeArraySizeException java.lang NoSuchElementException java.util... NullPointerException java.lang IOException java.io EOFException java.io FileNotFoundException java.io... AWTException java.awt... Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 60
61 java::lang::throwable -detailmessage: String +Throwable() +Throwable(message: String) +getmessage():string +getlocalizedmessage(): String +printstacktrace() +tostring(): String... A kivételosztályok deklarációi java.lang::exception +Exception() +Exception(m: String) java::lang::runtimeexception +RuntimeException() +RuntimeException(m: String) java::io::ioexception IOException() IOException(m: String)... Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 61
62 Kivételek keletkezése és szándékos előidézése throw Kivétel kiváltása: kivételobjektum létrehozása és bedobása (throw) a program vérkeringésébe Ki váltja ki? API metódus programozó Szintaktika: throw new <Kivételosztály>(<információs szöveg>); throw new ArithmeticException("Osztás nullával!"); throw new TulNagyException("Túl nagy szám!"); Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 62
63 Feladat Kivétel útja Keltsünk szándékosan futási hibát az ábrán látható módon! Kövessük a kivétel kiszállásának útját! KivetelUtja.main(...)... m1()... KivetelUtja.m1()... Masik.m2()... Masik.m2() A program futása: java.lang.runtimeexception: Rosszalkodas at Masik.m2(KivetelUtja.java:4) at KivetelUtja.m1(KivetelUtja.java:10) at KivetelUtja.main(KivetelUtja.java:13) Exception in thread "main" Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 63
64 class Masik { static void m2() { throw new RuntimeException("Rosszalkodas"); public class KivetelUtja { static void m1() { Masik.m2(); public static void main(string[] args) { m1(); Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 64
65 A kivétel továbbadása throws Ellenőrzött kivételekkel a metódushívási lánc minden metódusában foglalkoznunk kell Két lehetőségünk van: - a metódusban kezeljük a kivételt - a kivételt továbbadjuk a hívó metódusnak Kivétel továbbadásának jelzése a metódusfejben: throws <Kivételosztály1, Kivételosztály2,... > throws Exception A kivételosztályok továbbadáskor nem szűkíthetők! Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 65
66 Feladat Ellenőrzött kivétel továbbadása Idézzünk elő egy main által hívott metódusban egy ellenőrzött, IOException típusú kivételt. import java.io.*; public class EllenorzottDobas { static void metodusa() throws IOException { throw new IOException("Számot kérek!"); public static void main (String args[]) throws IOException { metodusa(); A program futása: java.io.ioexception: Számot kérek! at EllenorzottDobas.metodusA(EllenorzottDobas.java:5) at EllenorzottDobas.main(EllenorzottDobas.java:9) Exception in thread "main" Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 66
67 A kivétel elkapása, kezelése try-catch-finally szerkezet try { <utasítások> catch (<Kivételosztály1> <obj1>) { <utasítások> catch (<KivételosztályN> <objn>) { <utasítások> finally { <utasítások> // try blokk // catch blokk // catch blokk // finally blokk Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 67
68 try blokk Kivételek keletkezésének feltételezett helye catch blokk Kivétel kezelése az érkező kivételobjektum alapján Aktuális (érkező) kivételobjektum értékadási kompatibilitás: formális kivételobjektum = aktuális kivételobjektum manipulálható, a blokk végén elpusztul Működése legfeljebb egy catch blokk hajtódik végre sorrend: egyre általánosabb kivételek definiálandók nincs kezelve továbbadódik a hívó metódusnak finally blokk Minden körülmények között végrehajtódik Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 68
69 A kivétel elkapásának útja main() metodusa() Itt már nem kell throws, mert kezeljük a kivételt metodusb() throws IOException metodusc() throws IOException utasítások metodusa()... utasítások... utasítások try metodusb()... catch (IOException) utasítások metodusc()... utasítások utasítások IOException utasítások catch (Exception) finally Itt kezeljük Itt keletkezik Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 69
70 Saját kivételek Feladat Saját kivétel alkalmazása Írjunk egy readszam(tol,ig) függvényt, amely bekér egy egész számot valamilyen megadott zárt tartományból (tol lehet nagyobb is, mint ig)! Addig kérjünk számot, ameddig az végre a megadott tartományba esik. Ha a szám kívül esik rajta, akkor a metódus ejtsen egy saját (vagyis nem API-beli) OutOfRangeException kivételt és az abba foglalt információs szöveg közölje a megkövetelt határokat! Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 70
71 import extra.*; class OutOfRangeException extends RuntimeException { OutOfRangeException(String s) { super(s); public class SajatKivetel { static int readszam(int tol, int ig) { if (tol > ig) { int seged=tol; tol=ig; ig=seged; int szam; Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 71
72 while (true) { try { szam = Integer.parseInt(Console.readLine("Szám: ")); if (szam < tol szam > ig) throw new OutOfRangeException(tol+"-től "+ig+"-ig!"); return szam; // try catch (NumberFormatException ex) { System.out.println("Illegális karakter!"); catch (OutOfRangeException ex) { System.out.println(ex.getMessage()); // while Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 72
73 // readszam public static void main (String args[]) { int lottoszam = readszam(1,90); System.out.println("OK"); // main // SajatKivetel Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 73
JAVA PROGRAMOZÁS 3.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram
RészletesebbenAz osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java
Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:
Részletesebbenés az instanceof operátor
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
RészletesebbenJava VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
RészletesebbenJAVA PROGRAMOZÁS 2.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,
RészletesebbenKivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat
Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot
RészletesebbenObjektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN
Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.
RészletesebbenHelyes-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?
A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály
RészletesebbenOOP: Java 8.Gy: Abstract osztályok, interfészek
OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus
RészletesebbenJava programozási nyelv 5. rész Osztályok III.
Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék
RészletesebbenJava VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
RészletesebbenOBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek
OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető
RészletesebbenAbstract osztályok és interface-ek. 7-dik gyakorlat
Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,
RészletesebbenJava IX. telkezelés a Java-ban
Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes
RészletesebbenJava IX. telkezelés a Java-ban
Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked
RészletesebbenJava programozási nyelv 4. rész Osztályok II.
Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék
RészletesebbenSzéchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu
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:
Részletesebben7. K: JAVA alapok Konzultáció
Objektum Orientált Programozás 7. K: JAVA alapok Konzultáció 35/1B IT MAN B IT v: 2017.05.03 MAN Hiba, biztonságos program 01. Szintaktikai hiba imt i = 0; system.out.println( alma ); for (int i = 0, i
RészletesebbenProgramozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 5. gyakorlat 1 Objektumorientáltság Egységbezárás és információ elrejtése (absztrakt adattípus) Adatok és rajtuk végzett műveletek egységbezárása (osztályok írása, múlt hét) Öröklődés Polimorfizmus
RészletesebbenJava VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
RészletesebbenList<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error
Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,
RészletesebbenKivételkezelés, naplózás. Exception handling, logging
Kivételkezelés, naplózás Exception handling, logging Try-catch try { // Kódrészlet, amely kivételt eredményezhet catch (Exception1 object1 ) { // Az Exception1 kivétel kezelésének megfelelő kód catch (Exception2
RészletesebbenOsztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;
PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function
RészletesebbenInterfészek. PPT 2007/2008 tavasz.
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált
RészletesebbenKivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés
Kivételek kezelése (exception handling) Hibakezelés old style class Szamolo { void szamol( String s, int i ) { int d; if (i!= 0) d = (i+1)/i; else if (s!= null) d = s.length(); else if (i > 10) // applikációs
RészletesebbenJava programozási nyelv
Szoftvertechnológia sáv Java programozási nyelv Dirk Louis-Peter Müller: Java (Belépés az internet világába) Panem kiadó, Budapest, 2002. Webvilág sorozat Készítette: Gregorics Tibor Vázlatos áttekintés
RészletesebbenMár megismert fogalmak áttekintése
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak
RészletesebbenJava Programozás 5. Ea: OOP alapok. Abstract Javaságok
Java Programozás 5. Ea: OOP alapok Abstract Javaságok 89/1 B ITv: MAN 2018.03.13 89/2 OOP alapelvek Adatok és a hozzájuk kapcsolódó tevékenységek egységbe zárása (encapsulation) Alapegység: osztály, melynek
RészletesebbenS ha kettészelik is: balfelöl belőle Valamivel mindig - Valamivel mindiq több marad. (Nyugat )
S ha kettészelik is: balfelöl belőle Valamivel mindig - Valamivel mindiq több marad. (Nyugat 1919. 1049-1050. 1.) A hetvenéves Eötvös Loránd köszöntésekor Alexander Bernád filozófus így jellemezte:...
RészletesebbenOsztályok. 4. gyakorlat
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
RészletesebbenJAVA PROGRAMOZÁS 4.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 4.ELŐADÁS 2014-2015 tavasz Kivételkezelés, Grafikus felhasználói felület 2 Kivételkezelés Rendszerhibák és kivételek 3 Programot leállító események:
RészletesebbenKivételek. A program végrehajtása során ritkán bekövetkező események Nem a fő végrehajtási ág ; logikailag alacsonyabbrendű feladat jelzése
Kivételek A program végrehajtása során ritkán bekövetkező események Nem a fő végrehajtási ág ; logikailag alacsonyabbrendű feladat jelzése Hiba Felhasználó butaságot csinál Speciális/abnormális számítási
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 8. előadás Öröklődés - megnyitunk egy osztályt egy másik előtt zárt egységeket szeretünk készíteni (láthatósági kérdés:
RészletesebbenPelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;
Java 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. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely
RészletesebbenSzoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html 1 Kivételkezelés I. szokatlan, váratlan
RészletesebbenSzámítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén
RészletesebbenMagas szintű programozási nyelvek 2 Előadás jegyzet
Magas szintű programozási nyelvek 2 Előadás jegyzet 1. Rendszerfejlesztés 0. lépés: Elemzés (analízis) 1. lépés: Tervezés a, technológia független rész b, technológia függő rész 2. lépés: Megvalósítás
RészletesebbenBevezetés a Python programozási nyelvbe
Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban
RészletesebbenIII. OOP (objektumok, osztályok)
III. OOP (objektumok, osztályok) 1. Természetes emberi gondolkozás Az Objektumorientált paradigma alapelvei nagyon hasonlítanak az emberi gondolkozásra. Érdemes ezért elsőként az emberi gondolkozás elveit
RészletesebbenOOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN
OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás
RészletesebbenOOP és UML Áttekintés
OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés
RészletesebbenProgramozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.
Programozás III CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van a fejlesztő környezet és az osztálykönyvtárak is: rt.jar fájl
RészletesebbenOOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
RészletesebbenJava bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o
Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform
RészletesebbenProgramozási nyelvek II.: JAVA
Programozási nyelvek II.: JAVA 5. gyakorlat 2017. október 9-13. 5. gyakorlat Programozási nyelvek II.: JAVA 1 / 34 Az 5. gyakorlat tematikája Kivételkezelés alapjai Be és kimenet BufferedReader, Scanner
RészletesebbenBevezetés a Java programozási nyelvbe
Bevezetés a Java programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a Java programozási nyelvbe JAVABEV / 1 Egy kis történelem 1. 1990-es évek eleje: a SUN belső project-je
RészletesebbenProgramozási nyelvek II.: JAVA
Programozási nyelvek II.: JAVA 12. gyakorlat 2017. december 4-8. 12. gyakorlat Programozási nyelvek II.: JAVA 1 / 39 Az 12. gyakorlat tematikája equals és hashcode metódusok Comparable Set, Map Absztrakt
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelők Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát
RészletesebbenProgramozás I. Első ZH segédlet
Programozás I. Első ZH segédlet Ezen az oldalon: kiírás az alapértelmezett (hiba) kimenetre, sztring konkatenáció, primitív típusok, osztály létrehozás, példányosítás, adattagok, metódusok Kiíratás alapértelmezett
RészletesebbenWeb-technológia PHP-vel
Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request
RészletesebbenMi 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
Mi a legabsztraktabb típus a JAVA-ban? Object Mikor preferált interface-ek használata a konkrét típusok helyett? Ha egy osztály több interfacet is használhasson, vagy ha fvek implementálását a az osztályra
RészletesebbenSegédanyag: Java alkalmazások gyakorlat
Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 2. gyakorlat 1 Osztályok és objektumok default, public, protected, private láthatóság a metódusokra és adattagokra (első
RészletesebbenJava III. I I. Osztálydefiníció (Bevezetés)
Java III. I I. Osztálydefiníció (Bevezetés) Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 02. 27. Java III.: Osztály definíció JAVA3 / 1 Szintaktikai jelölések A továbbiakban
RészletesebbenBevezetés a Java programozási nyelvbe
Bevezetés a Java programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a Java programozási nyelvbe JAVABEV / 1 Egy kis történelem 1. 1990-es évek eleje: a SUN belső project-je
RészletesebbenProgramozás II. labor
Programozás II. labor 1. rész Programozási tételek Öröklődés Interfészek Eseménykezelés Kivételkezelés Visszalépéses keresés Programozás II. Programozási tételek OOP alapok ismétlése Öröklődés Öröklődés
RészletesebbenOOP: Java 8.Gy: Gyakorlás
OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét
RészletesebbenJava III. I I. Osztálydefiníció (Bevezetés)
Java III. I I. Osztálydefiníció (Bevezetés) Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 02. 27. Java III.: Osztály definíció JAVA3 / 1 Szintaktikai jelölések A továbbiakban
RészletesebbenJava programozási nyelv 9. rész Kivételkezelés
Java programozási nyelv 9. rész Kivételkezelés Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/24 Tartalomjegyzék
RészletesebbenSzoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?
RészletesebbenÖröklés és Polimorfizmus
Öröklés és Polimorfizmus Egy létező osztályból egy (vagy több) újat készítünk A létező osztályt ősnek, az újakat utódnak nevezzük Az utódok öröklik az ős minden tagját Az utódok az öröklött tagokat újakkal
RészletesebbenGlobális operátor overloading
Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal
RészletesebbenOsztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
RészletesebbenOsztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
RészletesebbenDr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:
Részletesebben2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése
Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,
RészletesebbenSegédanyag: Java alkalmazások gyakorlat
Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2010/2011-2 félév, 11. gyakorlat (az előző 2 gyak közül az egyiken ZH volt, a másik szünet miatt elmaradt) 1 JAR fájl készítés A JAR (Java
RészletesebbenJava programozási nyelv 6. rész Java a gyakorlatban
Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék
RészletesebbenJava II. I A Java programozási nyelv alapelemei
Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak
RészletesebbenSegédanyag: Java alkalmazások gyakorlat
Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 12. gyakorlat 1 Távoli metódushívás Java-ban (RMI) Java-ban a távoli metódushívás ( Remote Method Invocation, RMI) egy
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt
RészletesebbenProgramozási nyelvek II. JAVA EA+GY 1. gyakolat
Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről
RészletesebbenObjektumorientált programozás C# nyelven III.
Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és
RészletesebbenProgramozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
RészletesebbenBME MOGI Gépészeti informatika 4.
BME MOGI Gépészeti informatika 4. 1. feladat önálló feladatmegoldás Generáljon két 1 és 10 közötti véletlen egész számot, majd kiírja ezekre a számokra a tízes szorzótáblákat! Ha az első generált szám
RészletesebbenJava Programozás 3. Ea: Java osztályok. OOP alapalapok
Java Programozás 3. Ea: Java osztályok OOP alapalapok 62/1 B ITv: MAN 2018.02.05 Osztály fogalma A Java program osztályok halmaza Egy osztálydefiníció egyben egy teljes fordítási egység (de általában nem
RészletesebbenProgramozási alapismeretek 4.
Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)
RészletesebbenProgramozási technológia
Programozási technológia Osztályszintű elérés Kivételkezelés, Fájlkezelés Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Osztályszintű elérés (statikusság) Az osztályban definiált attribútumok és műveletek
RészletesebbenProgramozási nyelvek II.: JAVA
Programozási nyelvek II.: JAVA 13. gyakorlat 2017. december 11-15. 13. gyakorlat Programozási nyelvek II.: JAVA 1 / 32 Az 13. gyakorlat tematikája Generikus típusokés öröklődés Clone Comparator Névtelen
RészletesebbenProgramozási nyelvek II.: JAVA, 11. gyakorlat
Programozási nyelvek II.: JAVA, 11. gyakorlat 2017. november 27-december 1. Programozási nyelvek II.: JAVA, 11. gyakorlat 1 / 54 A 11. gyakorlat tematikája Örökl dés Osztályhierarchia Az Object osztály
RészletesebbenJava VII. Polimorfizmus a Java nyelvben
Java VII. Polimorfizmus a Java nyelvben Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 19. Java VII. Polimorfizmuss JAVA7 / 1 A kötés (binding( binding) ) fogalma Kötés (binding)
RészletesebbenOsztályszintű elérés, kivételkezelés, fájlkezelés
Programozási, kivételkezelés, fájlkezelés Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 3 4 2 (statikusság) Az osztályban definiált attribútumok és műveletek az osztályból példányosított
RészletesebbenCollections. Összetett adatstruktúrák
Collections Összetett adatstruktúrák Collections framework Előregyártott interface-ek és osztályok a leggyakoribb összetett adatszerkezetek megvalósítására Legtöbbször módosítás nélkül használhatók Időt,
RészletesebbenObjektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015
Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 9. ELİADÁS Kivételkezelés (Exception handling) 2 Mi a kivétel (exception)? A kivétel, olyan hibás állapot vagy esemény, amely
RészletesebbenJava Programozás 1. Gy: Java alapok. Ismétlés ++
Java Programozás 1. Gy: Java alapok Ismétlés ++ 24/1 B ITv: MAN 2018.02.18 Feladat Készítsünk egy komplett konzolos alkalmazást, mely generál egy számot 0 és 100 között (mindkét határt beleértve), feladatunk
RészletesebbenObjektumorientált programozás C# nyelven III.
Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelık Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát
RészletesebbenInformatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract
RészletesebbenJava osztálykönyvtár és használata
3. óra Java osztálykönyvtár és használata Csomagok Kivételkezelés Osztálykönyvtárak és használatuk legradi.gabor@nik.bmf.hu szenasi.sandor@nik.bmf.hu Java osztálykönyvtár és használata Témakörök Csomagok
RészletesebbenObjektumorientált programozás Java-ban
Objektumorientált programozás Java-ban Objektumorientált fejlesztés Klasszikus alapszakaszok: Elemzés (analízis) specifikáció, használati esetek (use case diagramok), domain analysis Tervezés (design)
Részletesebben1. 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?
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? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"
RészletesebbenProgramozás II. 3. gyakorlat Objektum Orientáltság C++-ban
Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus
RészletesebbenSikeres végrehajtás(pass): ez azt jelenti, hogy a teszt rendben lefutott, és az ellenőrzési feltételek mind teljesültek.
1 1. fejezet A JUnit tesztelési környezet A JUnit egy szabad forráskódú modultesztelő rendszer, amely Java programjaink automatikus teszteléséhez nyújt segítséget. A rendszer letölthető a http://junit.org
RészletesebbenGelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák
Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák Gelle Kitti 2017. 10. 25. Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák 2017. 10. 25. 1 / 20 Hasítótáblák T 0 h(k 2)
RészletesebbenJava és web programozás
Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:
RészletesebbenProgramozá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.
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. Programozás III Az egyszerűség kedvéért mindegyiket a nevük alapján regisztráljuk,
RészletesebbenBánsághi Anna anna.bansaghi@mamikon.net
ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64
Részletesebben