Programozási nyelv Java

Hasonló dokumentumok
Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási technológia I.

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

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

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

Szoftvertechnológia alapjai Java előadások

Java. JIT (Just in Time) fordítók alkalmazása, optimalizálás AOT (Ahead of Time) fordítók alkalmazásának lehetősége

Programozás III A JAVA TECHNOLÓGIA LÉNYEGE. Többlépcsős fordítás JAVA PLATFORM. Platformfüggetlenség

A Java programozási nyelv

Java I. A Java programozási nyelv

Programozási nyelvek Java

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

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

Informatika terméktervezőknek

I. Bevezetés. 1. ábra A Java "logója"

JAVA ALKALMAZÁSOK 1. ELŐADÁS 2/22/2017 1

Adatszerkezetek és algoritmusok

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

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

Java I. A Java programozási nyelv

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

Adatbázis és szoftverfejlesztés elmélet

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

A C# programozási nyelv alapjai

Java II. I A Java programozási nyelv alapelemei

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

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

Programozás I. Első ZH segédlet

Programozási nyelvek Java

A C# PROGRAMOZÁSI NYELV

Pénzügyi algoritmusok

Mintavételes szabályozás mikrovezérlő segítségével

Imperatív és procedurális programozás a Javában

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

é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

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

Imperatív programozás

JAVA PROGRAMOZÁS 1.ELŐADÁS

Programozási nyelvek Java

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

C++ programozási nyelv Konstruktorok-destruktorok

A C programozási nyelv I. Bevezetés

Szoftvertervezés és -fejlesztés I.

A C programozási nyelv I. Bevezetés

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programzás I gyakorlat

Gyakorlati vizsgatevékenység A

A Java nyelv. Bevezetés, alapok Elek Tibor

Programozási nyelvek (ADA)

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

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

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

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

Globális operátor overloading

Java programozási nyelv

Osztályok. 4. gyakorlat

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

JAVA PROGRAMOZÁS 2.ELŐADÁS

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

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

Objektumorientált programozás C# nyelven

Szoftvertervezés és -fejlesztés I.

OOP #14 (referencia-elv)

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

Vezérlési szerkezetek

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

C programozás. 1 óra Bevezetés

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

Bevezetés a Java programozási nyelvbe

Operációs rendszerek gyak.

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

Kifejezések. Kozsik Tamás. December 11, 2016

Apple Swift kurzus 3. gyakorlat

OOP: Java 1.Gy: Java alapok

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

Webprogramozás szakkör

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

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

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

Szkriptnyelvek. 1. UNIX shell

3D-s technológiák a játékfejlesztésben UDK bevezetés

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 1. Dr. Iványi Péter

Bevezetés a programozásba I.

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Bevezetés a Java programozási nyelvbe

A programozás alapjai

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

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

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

Programozási nyelvek Java

Programozási nyelvek Java

Programozási nyelvek II.: JAVA

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

JAVA nyelvi alapok. Adatbányászati technikák (VISZM185) Dávid István

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

Átírás:

Programozási nyelv Java 1. gyakorlat Félév tematikája Bevezetés, alapok Vezérlési szerkezetek Eljárások, függvények Csomagok Tömbök, adatbevitelek Osztályok, objektumok, Interfészek Öröklődés, absztrakt osztály Fájlkezelés, Kivétekezelés Gyűjtemények Sablonok GUI, Adatbázis kezelés Követelmények 2 nagy beadandó 2 központi zh min. 8 kis beadandó: kis beadandók heti rendszerességgel az óra végén kerülnek kiadásra határidejük mindig a következő óra eleje Java bevezető Történet James Gosling kezdte fejleszteni a Sun Microsystemsnél a 90-es évek elején Első kiadás 1995-ös, azóta sok minden változott, bővült a nyelv A Java 2 Platform, Sandard Edition (SE) 5.02004-es

Jellemzők Objektumorientált nyelv (annyira, hogy a primitív típusokon kívül minden az Object osztály leszármazottja) C++ szerű szintaxis o a fordító bájtkódra fordít, a futtatásért a Java Virtual Machine (JVM) felel o a bájtkód hordozható platformok között (Windows, Unix, Linux, Macintosh), ami nagyon nagy előny o a programok relatíve lassúak: persze ez sokszor nem számít vagy nem érzékelhető o könnyebben elsajátítható nyelv, mint a C++ A nyelvről Garbage Collector (automatikus szemétgyűjtés) van o Így nehéz elrontani a memória felszabadítást o Néha azért felgyűlik a szemét Nincs memóriafelszabadító utasítás (mint a delete a C++ esetén) 8 primitív típus (boolean, char, byte, short, int, long, float, double) Az Object osztály (java.lang.object) minden további osztály őse Javadoc: viszonylag kényelmes dokumentációs kommentezést tesz lehetővé nagy hangsúly van a kivételkezelésen Java programok Egy java fájl tartalmaz egy azonos nevű osztályt (pl: a Program.java fájlban van egy Program osztály) A függvények osztálydefiníción belül fordulhatnak elő Más osztály függvényeinek használatához importálni kell a megfelelő osztályt Fordításkor a Program.java-ból készül egy Program.class fájl ('javac' paranccsal) Ha az osztálynak van 'main()' metódusa (belépési pontja), akkor végrehajtható (a 'java' paranccsal) Az osztályok úgynevezett 'package'-ekbe (csomagokba) szerveződnek (pl. program.gui, program.engine, stb.) o egy package-be tartozó osztályok látják egymást (nem kell importálni) o egy package-be tartozó osztályok alapértelmezésben látják egymás adattagjait Fordítás és futtatás (parancssorból) A.java forrásfájlokból a Java fordító.class kiterjesztésű fájlt állít elő. Ez a fájl tartalmazza a program bájtkódját. Egy forrásfájl neve a fájlban implementált osztály nevével egyezik meg. Ha a

megvalósított osztály valamilyen package-be (névtérbe) tartozik, akkor a forrásfájlt a package nevével azonos alkönyvtárba kell elhelyezni. Környezet beállítása Konzolban: Ha nem ismeri fel a konzolban a javac parancsot, akkor fel kell venni környezeti változóba a Java JDK bin könyvtárának útvonalát. Fordítás set PATH=%PATH%;c:\Program Files\Java\jdk1.6.0_20\bin\ javac paranccsal történik -d argumentummal megadható, hogy milyen könyvtárba kerüljenek a class fájlok -encoding argumentummal beállítható a karakterkódolás Példa: javac HelloWorld.java (abszolút elérési út v relatív az adott helytől) JavaDoc készítése javadoc paranccsal történik -d argumentummal megadható, hogy milyen könyvtárba kerüljön a dokumenáció -encoding argumentummal beállítható a karakterkódolás Példa: javadoc -d doc -encoding utf-8 alakzat/* Futtatás java parancs -cp argumentummal beállítható, hogy honnan vegye a class fájlokat Példa: java HelloWorld Ha nem találja az operációs rendszer a fenti parancsokat, akkor előfordulhat, hogy telepíteni kell a Javat vagy a Java bin könyvtárát fel kell venni a PATH környezeti változóba. Ingyenes fejlesztő környezetek Mi gyakorlaton nem fogunk IDE-t használni. Eclipse: o http://eclipse.org/ o rengeteg plugin tölthető le hozzá NetBeans: o http://netbeans.org/ o használható beépített GUI szerkesztője van (de mi nem fogjuk használni)

Kódolási konvenciók Fontos betartani valami kódolási konvenciót. Fő szempontok: olvashatóság, egyértelműség, értelmezhetőség Oracle által javasolt kódolási konvenciók a Java nyelvre: http://www.oracle.com/technetwork/java/codeconv-138413.html Dokumentáció Az előadás honlapja: http://people.inf.elte.hu/sike/pt1c/pt1c.html Java tutorial: http://docs.oracle.com/javase/tutorial/ Javadoc: o http://docs.oracle.com/javase/6/docs/ o http://docs.oracle.com/javase/6/docs/api/ o http://docs.oracle.com/javase/7/docs/ o http://docs.oracle.com/javase/7/docs/api/ Hello World program A class kulcsszóval definiáltunk egy HelloWorld nevű osztályt, aminek 1 darab metódusa a main. Ez a program belépési pontja. A System.out.println paranccsal tudunk a konzolra kiíratni szöveget. A kimenet a következő lesz (parancssoros fordítással + futtatással):

Típusok Primitív típusok http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html byte, short, int, long, float, double, char, boolean default értékekkel rendelkeznek (0, false, etc.) oktális (int octval = 01), hexa érték (byte hexval = 0xff), scientific notation (double d = 1.23e4) wrapper osztályok (Byte, Short, Integer,...) o automatikus boxing, unboxing Ezen kívül vannak további típusok, mint például tömbök, String típus, amikkel majd a későbbi gyakorlatokon fogtok megismerkedni. Konverziók általában bővítés automatikus szűkítés típuskényszerítéssel pl: byte b = (byte)10 Szövegkonverzió Stringgé: String s = "" + 1; (precedenciára figyelni!) vagy a tostring() függvény Stringből: Integer.parseInt("1"), Double.parseDouble("2"),... Operátorok ==,!=, &&,, %, ++,... Részletes táblázat: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html Összehasonlító operátor bal oldalára lehetőleg konstanst írjunk a kellemetlen helyzetek elkerülése érdekében:

Vezérlési szerkezetek Elágazások Switch: byte, short, char, int típusokra (ill. ezek wrapper osztályaira is: Character, Byte, Short, Integer) használható (long-ra nem). Példa: Ciklusok Az előltesztelős while ciklus: A hátul tesztelős while ciklus:

A for ciklus: A foreach ciklus: A végtelen ciklusok: Branching kifejezések break: kugrik a vezérlés a ciklusból continue: továbblép a következő iterácóra return: visszatérés egy függvényből vagy eljárásból

Feladatok 1. Írd át a mintaprogramot (HelloWorld-t) úgy, hogy a saját nevedet írja ki. Pl: Hello Dorian! 2. Adott egy int típusú változóban egy egész szám. Írjatok egy programot, ami kiírja magát a számot és azt, hogy az páros vagy páratlan. Például: A(z) 2 páros! 3. Készítsünk egy hőmérséklet-konvertáló programot! Vegyünk fel egy logikai és egy valós értéket! Ha a logikai érték Igaz, akkor konvertáljuk a valós értéket Celsiusról Fahrenheit fokra a lenti képlet alapján, egyébként Fahrenheitről Celsiusra. 4. Készítsünk egy minimális konzolos számológépet! Adjunk meg három szám paramétert! Ha az első szám: 1, akkor adjuk össze 2, akkor vonjuk ki 3, akkor szorozzuk össze 4, akkor osszuk el a másik két paramétert egymással Minden egyéb esetben írjuk ki, hogy nem értelmezett művelet A megoldáshoz használjunk switch-case szerkezetet! 5. Írj egy programot, amely kiírja a számokat 1-től N-ig (N<100, ezt ellenőrizzük is)! Azon számokhoz, amelyek hárommal oszthatók, a szám helyett "Fizz"-t írjon ki, és azok helyett, amelyek öttel oszthatók, "Buzz"-t. Azon számok helyett, amelyek mind hárommal, mind öttel oszthatók, "FizzBuzz"-t írjon ki a program!