Java programozási nyelv

Hasonló dokumentumok
Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Java programozási nyelv 10. rész Input/output kezelé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?

Programozás I. Első ZH segédlet

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

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

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

Szoftvertechnológia alapjai Java előadások

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

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


Programozási nyelvek Java

Reader /Writer InputStreamReader, OutputStreamWriter

Segédanyag: Java alkalmazások gyakorlat

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

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

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

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

é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

Osztályok. 4. gyakorlat

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

Java II. I A Java programozási nyelv alapelemei

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

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

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

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

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

Java és web programozás

Java II. I A Java programozási nyelv alapelemei

JAVA PROGRAMOZÁS 2.ELŐADÁS


C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

A C# programozási nyelv alapjai

Informatika terméktervezőknek

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban

Programozási nyelvek Java

3. Gyakorlat Ismerkedés a Java nyelvvel

Java programozási nyelv 6. rész Java a gyakorlatban

JAVA PROGRAMOZÁS 3.ELŐADÁS

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

A Java nyelv. Java programozás alapjai. Hello world futtatása. Java adattípusok. Egyszerű adattípusok.

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

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

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

A Java nyelv. Bevezetés, alapok Elek Tibor

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

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

Java és web programozás

Java gyakorlat feladatai e s megolda sai ( )

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

Adatszerkezetek és algoritmusok

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

1. Egyszerű (primitív) típusok. 2. Referencia típusok

A C# PROGRAMOZÁSI NYELV

Programozási nyelvek II.: JAVA

A Java és a C++ összehasonlítása

Web-technológia PHP-vel

JAVA ALKALMAZÁSOK 5. ELŐADÁS 1/9/2017 1

Java programozási nyelv 7. rész Java osztálykönyvtár 1.

Programozási nyelvek Java

Objektumorientált programozás C# nyelven III.

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

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

Objektumorientált programozás C# nyelven

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

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

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

Programozási nyelvek Java

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

Java osztálykönyvtár és használata

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?

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

Programozási nyelvek Java

Java és web programozás

Programozási nyelv Java

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Az új be- és kimenet könyvtár

OOP és UML Áttekintés

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

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

Objektumorientált programozás C# nyelven

Bevezetés a Java programozási nyelvbe

Java Programozás 11. Ea: MVC modell

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben

OOP #14 (referencia-elv)

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++ 2D tömb: Java versus C++ 2D tömb: Java.

Programozási nyelvek Java

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

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

C++ programozási nyelv Konstruktorok-destruktorok

Programozási nyelvek II.: JAVA

Bevezetés a Python programozási nyelvbe

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

Programozási technológia I 1. gyakorlat. A Java nyelvi alapjai, a NetBeans környezet

Objektumorientált programozás C# nyelven

Átírás:

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 a Java nyelvi elemekr l 1. Elemi és felhasználói típusok, deklarációk 2. Vezérlési szerkezetek, elemi programok 3. Program szerkezet, láthatósági szabályok 4. Adatbevitel/kiírás 5. Könyvtári elemek 1. Nincsenek önálló függvények, csak az osztályok metódusai 2. Nincsenek pointerek. (rejtett dinamikus tárkezelés) 3. Nincs struktúra és union típuskonstrukció 4. Nincs típusdefiníció 5. Korlátozott többszörös örökl dés 6. Nincs operátor túldefiniálás. 7. Nincsenek sablonok? TÍPUSOK elemi típusok deklaráció, konstans, konverzió osztályok, objektumok metódusok, paraméterátadás osztályok származtatása el re definiált osztályok egész számok byte, short, int, long 83, -257, -60320, 12L, 077, 0xFF1F + - * / % ==!= < <= > >= ++ -- valós számok float, double 12.4f, 10e-2f, 47.11, 1e5 + - * / % ==!= < <= > >= ++ -- logikai értékek boolean false, true &&! ==!= karakterek char c Ü 3 \ \\ \n \u1234 ==!= 1

<típusnév> <változónév>; <típusnév> <változónév> = <kifejezés>; char ch; int i = 3444; double a = 47.11; boolean l = i>=20 i==0; Automatikus típuskonverzió Tipus1 v1; Tipus2 v2; v2 = v1; Kényszerített típuskonverzió Tipus1 v1; Tipus2 v2; v2 = (Tipus2)v1; final <típusnév> <változónév> = <kifejezés>; double z = 3/4; double z = 3.0/4.0; double z = (double)3/4; class Osztaly // adattagok Tipus1 a1; Tipus2 a2; // típus class Osztaly int a; Osztaly(int i)a = i; Tipus Metodus(T1 v1,,tn vn) // metódusok Osztaly( ) // konstruktor Tipus Metodus ( ) // this private protected public nem min sített Osztaly obj = new Osztaly(12); Az objektum-változó tulajdonképpen egy pointer, amely az objektumot tartalmazó tárterületre mutat. int n = 12; Osztaly obj = new Osztaly(12); class Osztaly Osztaly obj = new Osztaly(); class Osztaly Konstruktor el tt hívódik meg class Osztaly Tipus Metodus(T1 v1,,tn vn) return Osztaly obj = new Osztaly( ); formális paraméterek Tipus v = obj.metodus(k1,,kn); protected void finalize() Számban és típusban illeszked aktuális paraméterek 2

elemi típusú adat érték szerint objektum hivatkozás szerint 1. Különböz osztályokban használhatunk azonos nev adattagot illetve azonos szignatúrájú metódust. 2. Névütközéseket min sített hivatkozással oldjuk fel objektum.adattag illetve objektum.metódus() osztály.adattag illetve osztály.metódus s class Osztaly static Tipus1 adattag; static Tipus2 Metodus( ) return static adattag = Osztaly.adattag Osztaly.Metodus( ) class Os class Leszarmazott extends Os Leszármazott A nem private min sítés elemek a származtatott osztályba örökl dnek. 1. Egy osztály minden metódusa virtuális (ezért ezt nem is jelöljük külön), dinamikusan köt dik az t aktiváló objektumhoz. 2. Származtatott osztály nem statikus metódusaiban az sosztály nem statikus metódusai super.metodus( ) min sítéssel hívhatók meg. 1. Származtatott osztály konstruktorának els utasítása lehet egy super( ) konstruktor-hívás, amely az sosztály megfelel konstruktorát hívja meg; ennek hiányában egy implicit super() hívás generálódik. 2. Származtatott osztály destruktora felszabadítja a származtatott osztály (nem statikus) adattagjait, majd meghívja az sosztály destruktorát. 3

Végleges osztály az, amelyb l nem származtatható más osztály. végleges metódus a származtatásnál felül nem írható metódus. (virtualitás letiltása) Absztrakt osztály az, amelynek nem állítjuk el az objektumait, csak sosztályként alkalmazzuk az örökl désben. El nye a gyorsaság és a biztonság. final class Osztaly class Osztaly final void Metodus( ); abstract class Osztaly class Osztaly abstract void Metodus( ); s Az absztrakt osztály speciális formája, amelyre többszörös örökl déskor van szükség. Minden metódusát kötelez interface Osztaly újradefiniálni. interface Os Leszármazott // konstans adattagok // metódus deklarációk class Leszarmazott implements Os // az interface minden metódusát definiálni kell class Os1 interface Os2 interface Os3 s1 s2 Leszármazott s3 Lokális változó: egy blokkban definiált elemi változó illetve objektum változó (this, super) Osztály adattag Osztály statikus adattag class Leszarmazott extends Os1 implements Os2, Os3 4

Lokális változó abban a blokkban látható, ahol definiáltuk. Osztály (objektumhoz rendelt) adattag abban az osztályban látható, ahol definiáltuk, és ha nem privát, akkor ott is, ahol az osztály objektumai láthatók. Osztály statikus adattag, ha nem privát, mindenhol látható (ahol az osztály látható), különben csak a saját osztályában. Minden osztály se az Object osztály. Byte, Short, Integer, Long, Float, Double, Character, Boolean, Void Integer wi = new Integer(4); String s = wi.tostring(); int ii = Integer.parseInt( 100 ); tipus[] vektor = new tipus[hossz]; tipus[][] matrix = new tipus[sor][oszl] tipus[] matrix = new tipus[sor]; tipus[] matrix[0] = new tipus[oszl]; tipus[] matrix[1] = new tipus[oszl]; // A tömbök az Array osztály objektumai int sor = matrix.length; int oszl = matrix[0].length; // A tömbök mint paraméterek int[] Metodus(double[][] t); String ( Ez egy sztring,, \ ) + int length() boolean equals() int compareto() int indexof(string) int indexof(char) String substring(int kezdet, int veg) char charat(int pozicio) String valueof(int szam) String valueof(double szam) int szam = Integer.valueOf(str).intValue(); double szam= Double.valueOf(str).doubleValue(); int szam = Integer.parseInt(str); double szam= Double.parseDouble(str); class CHelloVilag public static void main(string args[]) VEZÉRLÉSI SZERKEZETEK System.out.println( Hello Világ! ); értékadás,üres program szekvencia, utasítás-blokk elágazás, ciklus kivételkezelés 5

<változónév> = <kifejezés>; <utasítás>; <utasítás> d = d-c; d = n; c = m; double a = -24.7; int i = 3; boolean l = true; feltétel ág_2 if(feltétel) else ág_2 feltétel SKIP if(feltétel) if(feltétel) else ut_1; ut_2; if(feltétel_1) else if(feltétel_2) ág_2 else if(feltétel_n) ág_n else ág_n+1 feltétel_1 feltétel_2 ág_2 feltétel_1 feltétel_2 feltétel_n ág_n switch (kifejezés) case konstans1 : utasítássorozat1 ; break; case konstans2 : utasítássorozat2 ; break; case konstans3 : case konstans4 : utasítássorozat3_4; break; default : utasítássorozat5 ; összevont esetek A break hatására az elágazás végére, annak hiányában a következ ágra (esetre) kerül a vezérlés. 6

feltétel mag while(feltétel) mag program_1 feltétel mag program_2 for(program_1;feltétel;program_2) mag for(int i=0;i<n;i++) ciklusváltozó mag for(int i=0;i<n;i++) utasítás; class Kivetel extends Throwable try Kivetel catch( ) obj = new Kivetel(); try catch( ) throw obj; catch(kivetel e) class Kivetel extends Throwable void metodus() throws Kivetel throw new Kivetel(); try Metodus(); catch(kivetel e) PROGRAMSZERKEZET modulok (osztályok, csomagok) forrásállományok láthatóság class FoOsztaly public static void main(string args[]) class Osztaly1 class Osztaly2 objektumok létrehozása és használata (az objektumok metódusainak hívása) statikus adattagok használata statikus metódusok hívása 7

Fo.java class FoOsztaly class Osztaly1 Workspace classes Fo.class Mindenki mindenkit lát, azaz minden elem (adattag, metódus) mindenhol használható, kivéve, ha privát (private), mert az csak a saját osztályában látható. Fo.java class FoOsztaly Resz2.java class Osztaly1 Package Default Workspace Resz3.java classes Fo.class Resz2.class Resz3.class class Osztaly2 class Osztaly3 A csomag az a legküls blokk, amelyben osztályokat helyezhetünk el. (Több állományra vágható szét.). Mindenki mindenkit lát, azaz minden elem (adattag, metódus) mindenhol használható, kivéve, ha privát (private), mert az csak a saját osztályában látható. Ugyanaz a szabály, mint egyetlen forrásállomány esetén Fo.java import Csoport.Osztaly2 * class FoOsztaly Osztaly2.java class Osztaly1 Package Default Workspace classes csoport Fo.class Osztaly2.class Osztaly3.class package Osztaly3.javaCsoport; package Csoport; public class Osztaly2 public class Osztaly3 Package Csoport 1. Egy csomagon belül mindenki mindenkit lát, azaz minden elem (adattag, metódus) mindenhol használható a csomagban, kivéve, ha privát (private), mert az csak a saját osztályában látható. 2. Egy állományban akkor látható egy másik csomag egy osztálya, ha az osztály publikus (osztálynév = fájlnév) és az osztályt importáljuk 3. Egy állományban akkor látható egy másik csomag osztályának egy tagja, ha a tag és az osztálya publikus és az osztályt importáljuk 8

0. Lokális változók abban a blokkban láthatók, ahol deklarálták ket. 1. Publikus (public) tag a saját csomagján kívül ott látható, ahol a tagot tartalmazó osztályt importáljuk. 2. Védett (protected) tag a saját csomagján belül, valamint a saját osztályából származtatott osztályokban látható. 3. Min sítés nélküli tag a saját csomagján belül látható. 4. Privát (private) tag csak a saját osztályában látható. 5. Bels (osztályban definiált) osztály és annak elemei még ha publikusak is csak abban az osztályban láthatók, amelyben a bels osztályt definiáltuk. Különböz csomagokban lev azonos osztályok csomagnévvel min síthet ek. java.lang (String, Array, Wrapper osztályok, System.out) INPUT/OUTPUT Billenty zeten és képerny n keresztül adatfolyamokkal (stream) grafikus felhasználói felülettel (GUI) Háttértároló állományokon keresztül Interneten keresztül (weboldalak) System.out PrintStream típusú statikus konstans System.out.print( ez egy minta +23); System.out.println( ez is minta +(float)23); import java.io.*; PrintWriter out = new PrintWriter(System.out); import java.io.*; FileWriter PrintWriterstream out = = new FileWriter PrintWriter( ( adatok.txt ); PrintWriter new FileWriter( adatok.txt )); out = new PrintWriter(stream); out.print( ez egy minta +23); out.println ( ez is minta +(float)23); out.close(); out.print( ez egy minta +23); out.println ( ez is minta +(float)23); out.close(); 9

System.in InputStream típusú statikus konstans import java.io.*; import java.util.*; BufferedReader inp = new BufferedReader( new InputStreamReader(System.in)); String sor = inp.readline(); StringTokenizer tagok = new StringTokenizer(sor,"\t\n"); string s = tagok.nexttoken(); int szam = Integer.parseInt(s); import java.io.*; import java.util.*; FileReader be = new FileReader("adatok.txt"); BufferedReader inp = new BufferedReader(be); String sor = inp.readline(); StringTokenizer tagok = new StringTokenizer(sor,"\t\n"); int szam = Integer.parseInt(tagok.nextToken()); try catch(filenotfoundexception e) System.out.println("A fájl nem elérhet!"); catch(ioexception e) System.out.println("Hibás adatformátum!"); catch(nosuchelementexception e) System.out.println("Túl kevés adat!"); void Metodus() try // fájl input-output catch(ioexception e) void Metodus() throws IOException // fájl input-output InputStream OutputStream Adatátvitel iránya (be vagy ki) alapján Alaptípus (byte vagy char) alapján Feladat (forrás/nyel vagy sz r ) alapján BufferedInputStream FileInputStream BufferedOutputStream FileOutputStream PrintStream 10

Reader BufferedReader InputStreamReader Writer BufferedWriter OutputStreamWriter Könyvtárak FileReader FileWriter PrintWriter java.lang (Array, String, System.out, Wrapper osztályok, System.currentTimeMillis()) java.io (Writer, Reader, File ) java.util (StringTokenizer, Random, Date, Collections, LinkedList, Arrays, Arrays.sort(), Stack, HashSet, HashMap, HashTable) java.text (DateFormat) java.awt javax.swing 11