Programozás I. Első ZH segédlet



Hasonló dokumentumok
Osztályok. 4. gyakorlat

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

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

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

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

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

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

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

Java II. I A Java programozási nyelv alapelemei

JAVA PROGRAMOZÁS 2.ELŐADÁS

Szoftvertechnológia alapjai Java előadások

3. Gyakorlat Ismerkedés a Java nyelvvel

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

A C# PROGRAMOZÁSI NYELV

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

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

A C# programozási nyelv alapjai

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

Java és web programozás

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

Informatika terméktervezőknek

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

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamá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?

OOP: Java 4.Gy: Java osztályok

Java II. I A Java programozási nyelv alapelemei

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

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

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

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

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

Java programozási nyelv

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

Programozási nyelvek JAVA EA+GY 1. gyakolat

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

és az instanceof operátor

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

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

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



Programozási nyelvek Java

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

Web-technológia PHP-vel

Globális operátor overloading

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

Apple Swift kurzus 3. gyakorlat

OOP: Java 8.Gy: Gyakorlás

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

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

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

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

Programozási nyelvek Java

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

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

OOP: Java 1.Gy: Java alapok

Java és web programozás

A Java programozási nyelv

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

Objektumorientált Programozás VI.

Segédanyag: Java alkalmazások gyakorlat

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

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

C# gyorstalpaló. Készítette: Major Péter

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

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

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Java és web programozás

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

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

OOP #14 (referencia-elv)

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

Programozási nyelvek Java

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

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

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

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

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

Programozási nyelv Java

Programozási nyelvek II.: JAVA

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

BME MOGI Gépészeti informatika 8.

Programozási nyelvek Java

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

Programozási nyelvek Java

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

Adatszerkezetek és algoritmusok

Programozási nyelvek Java

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

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

Programozás I. Második ZH segédlet

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

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

GYAKORLATIAS JAVA MINTA

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

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

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

A Java nyelv. Bevezetés, alapok Elek Tibor

Öröklés és Polimorfizmus

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

Átírás:

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 kimenetre: System.out.println("Hello Világ"); Kiíratás alapértelmezett hibakimenetre: System.err.println("Error világ :("); Stringek összefűzése: String szoveg1 = "Hello"; String szoveg2 = "World!"; System.out.println("Szövegkonstans " + szoveg1 + szoveg2); Eredménye: Szövegkonstans HelloWorld! Primitív típusok boolean bo = true; logikai tipus char c1 = 'a'; karakter tipus char c2 = '\u0054'; ket bajtos, unicode karaktereket tarol! byte b1 = 127; 8 bites egesz tipus byte b2 = -128; minden egesz tipus elojeles! short s = 1024; 16 bites egesz int i = 0x7fffffff; 32 bites egesz long l = 0x7fffffffffffffffL; 64 bites egesz float f = 123.123f; 32 bites lebegopontos tipus double d = 5.0; 64 bites lebegopontos Osztály létrehozása public class OsztalyNeve { Példányosítás OsztalyNeve objektumneve = new OsztalyNeve(); Adattagok (általában private láthatóságúak) private int elsoattributum; private String masodikattr; private boolean harmadikattr; Metódusok (operációk, függvények) public boolean firstmethod(string param1, Object param2) { return true;

Ezen az oldalon: main függvény, parameters/default konstruktor, getter/setter metódusok, láthatóság, this/super kulcsszó Main függvény a program belépési pontja public static void main(string[] args) { Konstruktor Objektum inicializálása, az objektum létrejöttekor fut le Default konstruktor public OsztalyNeve() { Paraméteres konstruktor public OsztalyNeve(String param1, int param2) { Getter int number; public int getnumber() { return number; Setter int number; public void setnumber(int anothernumber){ number = anothernumber; Láthatóság public: minden külső osztály számára látható, szabadon használható protected: az adott osztály és a gyerekosztályai használhatják nincs: package-private- csomagon belül public, csomagon kívül private private: az osztályon kívül nem érhető el, csak az adott osztályon belül, ahol létrehozták This kulcsszó Hivatkozás az aktuális objektumra. ( this.attributum ) Super kulcsszó Hivatkozás az ősobjektumre. super.method(); Ősosztály konstruktorának hívása: super(); super(10,"szoveg"); Ősosztálybeli metódus hívása Default konstruktor Paraméteres konstruktor

Ezen az oldalon: Vezérlési szerkezetek (for, if, while, switch), Összehasonlítás, Szöveg konvertálása számmá Vezérlési szerkezetek While ciklus while( szam < 10 ) { For ciklus for(int i = 0; i < 20; i++) { Egyszerű if-else int szam = 10; if( szam == 5 ) { else if ( szam == 6 ) { else { switch int a = 8; String szoveg; switch(a) { case 5 : szoveg="ot"; break; case 6 : szoveg="hat"; break; default : szoveg="nincs"; break; Összehasonlítás int elso=4; int masodik=100; Primitív típusoknál lehet használni az ==,!=, <, >, stb.. if(elso == masodik) { String str = "Szoveg"; Objektumoknal.equals() metodust kell hasznalni if(str.equals("szoveg")){ String konvertálása: String str = "20"; int iszam = Integer.parseInt(str); double dszam = Double.parseDouble(str);

Ezen az oldalon: overloading, overriding, öröklődés, static, final kulcsszó, konstans létrehozás Overloading void osszead(int a, int b) { void osszead(int a, int b, int c){ void osszead(int a, double b){ Overriding Már meglévő metódus felülírása egy gyerekosztályban Azonos név és paraméterlista Öröklődés: extends kulcsszóval class OsOsztaly { public void foo() { mukodes class GyerekOsztaly extends OsOsztaly { public void foo() { valami mas mukodes Static Adattag esetén: ugyanazon a helyen tárolódik az összes példány. Emiatt ugyanaz lesz az értéke bármely objektumpéldány esetén Metódus esetén: A metódus példányosítás nélkül is meghívható Final Adattag esetén: az adattag kezdeti értékét nem változtathatjuk meg (adni kell kezdőértéket!) Metódus esetén: a gyerekosztályban nem lehet felüldefiniálni (minden private metódus impiciten final) Osztály esetén: nem lehet gyerekosztálya Konstans létrehozás Konstans változó a final kulcsszóval. Valódi konstans létrehozása a static és final kulcsszavakkal.

Ezen az oldalon: tostring() felüldefiniálása, tömb létrehozás, tömb elemszáma, csomagba helyezés,csomag importálás, teljes példa, parancssori argumentumok tostring() metódus felüldefiniálása public String tostring() { return "Szoveg"; Parancssori argumentumok kezelése public class MainOsztaly { public static void main(string args[]){ int[] szamtomb = new int[args.length]; double[] doubletomb = new double[args.length]; for(int i = 0; i < args.length; i++) { szamtomb[i] = Integer.parseInt(args[i]); doubletomb[i] = Double.parseDouble(args[i]); for(int i = 0; i < szamtomb.length; i++) { Itt már bármit tehetünk a tömb elemeivel, hiszen számok. Tömb létrehozása n elemű tömb létrehozása Primitív adattípus int[] tomb = new int[n]; Saját típus OszalyNeve[] sajattomb = new OsztalyNeve[n]; Tömb elemszáma: int[] tomb = new int[n]; int tombhossza = tomb.length; Csomag elnevezés: fordított domain prog1.inf.u-szeged.hu hu.u_szeged.inf.prog1 Melynek mappaszerkezete: hu/u_szeged/inf/prog1 Csomagba helyezés (Legelső nem komment sor) package csomagnév; Csomag importálása (ha használni szeretnénk valamit egy másik csomagból) import csomagnév.osztálynév; import csomagnév.*;

Ezen az oldalon: teljes példa Teljes példa (Zh előtti órai Bor + Aszu osztályok) Bor.java package ital; public class Bor { private String fajta; private int evjarat; public Bor(String fajta, int evjarat) { this.fajta = fajta; this.evjarat = evjarat; public String getfajta() { return fajta; public void setfajta(string fajta) { this.fajta = fajta; public int getevjarat() { return evjarat; public void setevjarat(int evjarat) { this.evjarat = evjarat; @Override public String tostring() { return "Bor [fajta=" + fajta + ", evjarat=" + evjarat + "]"; Aszu.java package ital; public class Aszu extends Bor{ private int puttony; public Aszu(int evjarat, int puttony) { super("aszu", evjarat); this.puttony = puttony; public int getputtony() { return puttony;

public void setputtony(int puttony) { this.puttony = puttony; public String tostring() { return "Aszu [evjarat=" + getevjarat() + ", puttyon=" + this.puttony + "]"; A segédanyagot készítette: Antal Gábor. A segédanyagban előfordulhatnak esetlegesen hibák, elírások, ha valaki talál, akkor kérem jelezze felém az antal@inf.u-szeged.hu címen. Mindenkinek sok sikert kívánok a zh-hoz.