Szabó Tamás Károly G6HT12 A Ruby programozási nyelv.

Slides:



Advertisements
Hasonló előadás
Osztály leszármaztatás
Advertisements

Krizsán Zoltán iit 1.1.  Aszinkron történésről értesítés egy vagy több objektum számára.  Delegátumok segítségével valósítja meg a C#.  event típus,
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
C++ programozási nyelv Gyakorlat hét
Objektum Orientált Programozás Visual Basicben. 2 Objektumok Object – egy dolog, tárgy, „valami” –Command button, text box, stb. Jellemzők –Properties.
Adatbányászati technikák (VISZM185)
Öröklődés 2..
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
© Kozsik Tamás Párhuzamosság A program egyszerre több mindent is csinálhat Lehetőségek: –Számítással egyidőben IO –Több processzor: számítások.
Programozás alapjai.
Öröklődés Polimorfizmus Csomagok Absztrakt osztályok, interfészek
Fájlkezelés, IO Kivételkezelés Belső osztályok
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
Abstract osztályok és interface-ek Beolvasás és kiíratás 7. gyakorlat.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 5. Gyakorlat Öröklődés, virtuális függvények,
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Ruby nyelv. Története Yukihiro Matsumoto (szül ápr. 4.) alkotta meg, az ideális script nyelv hosszú eredménytelen keresése után. A lehetséges jelöltek.
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
A Java programozási nyelvSoós Sándor 1/16 Java programozási nyelv 6. rész – Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
A C++ programozási nyelvSoós Sándor 1/15 C++ programozási nyelv Gyakorlat hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
A C++ programozási nyelvSoós Sándor 1/12 C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
Java programozási nyelv 5. rész – Osztályok III.
C# tagfüggvények.
C# tagfüggvények.
Krizsán Zoltán.  Ha az algoritmus sokáig dolgozik,  de el akarjuk kerülni a „fagyást”.  Kisebb a költsége, mint az új folyamatnak.  Programozás szempontjából.
Annotációk a Java 5 nyelvben Kozsik Tamás. Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz,
Ficsor Lajos Template-ek CPP8/ 1 Template-ek. Ficsor Lajos Template-ek CPP8/ 2 A template fogalma Kiindulási probléma: tetszőleges típusokon kellene ugyanolyan.
1 Operációs rendszerek Az NT folyamatok kezelése.
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
1 Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
A PHP 5 újdonságai Az OOP terén. Miről lesz szó? Osztályok kezelése – Új direktívák – Konstruktor – Destruktor Interfészek Kivételkezelés.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Készítette: Száraz Richárd. - Yukihiro Matsumoto tervezte meg 1995-ben - Célja egy emberközpontú OOP programozási nyelv megalkotása volt, amely egyszerű.
Java programozási nyelv Metódusok
Java programozási nyelv Adatbekérés konzolról
Bevezetés Amiről ma szó lesz… Miért D? Mert a fejlesztők úgy látták, hogy a C++-on van még mit javítani. Mert a programozók a nyelvnek általában elszigetelt.
Programozás III KOLLEKCIÓK.
1 Objektum orientált programozás Struktúrák és objektumok gyakorlat Nagy Szilvia.
1 Objektum orientált programozás Öröklődés: többszörös öröklődés, konstruktorok, destruktorok, overloading Nagy Szilvia.
Programozás III OOP ÖRÖKLŐDÉS.
A Visual Basic nyelvi elemei
Programozás III KOLLEKCIÓK.
Objektumorientált alapjai ISZAM III.évf. részére Bunkóczi László.
Ficsor Lajos A C++ programozási nyelv I. CPP1/ 1 Osztály és objektum fogalma.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 5. gyakorlat.
Objektum orientált programozás 4. Mutatók, típusok és struktúrák Nagy Szilvia.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
Opencms modul fejlesztés Krizsán Zoltán. Modulok fajtái Nincs előírás, csak tipikus tennivalók: –Content type: új típus(oka)t vezet be. –Template: új.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Krizsán Zoltán, iit C# osztályok 2 Adattagok  Osztály hatáskörben definiált változó.  Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][,
Párhuzamos programozás
A C++ programozási nyelv
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Python Vincellér Zoltán.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Thread és Task.
Konverziós operátorok
Előadás másolata:

Szabó Tamás Károly G6HT12 A Ruby programozási nyelv

Osztályok Minden objektum az Object leszármazottja Az osztályok objektumok Egyszeres örökl ő dés Neve csak konstans lehet Nincs sealed osztál

Osztály definiálása class Foo < Bar end Alaptípus módosítása class String def printit p "it„ end end "asd".printit => "it"

Tagfüggvények Minden függvény osztály tagfüggvénye Minden függvény virtuális Nincs túlterhelés 1 konstruktor ami az initialize Nincs destruktor a szemétgy ű jtés miatt super

class Bicycle @gears=gears end class Tandem < Bicycle def initialize(gears) end

class Foo def mtd p "First definition" end def mtd p "Second definition" end Foo.new.mtd => "Second definition"

prefix Akkor jönnek létre mikor el ő ször értéket kapnak Kívülr ő l nem láthatóak(privát) Nem örökl ő dnek Getter, setter: attr_reader attr_writer attr_accessor

class Point attr_accessor :x attr_reader :y attr_writer :z def initialize(x,y,z) end pt = Point.new(1,2,3) pt.x = 4 puts pt.x pt.y = 4 #hiba puts pt.y pt.z = 4 puts pt.z #hiba

Hozzáférhetőség Publikus Bárhonnan, bárki meghívhatja Függvények alapértelmezetten Védett Csak osztály és leszármazottai Privát Csak implicit hívója lehet Örökl ő dnek

class A private def method1 p "I am private" end class B < A def mainmethod self.method1 end def mainmethod2 method1 end b=B.new b.mainmethod1 #hiba b.mainmethod2 Ha method1 protected akkor mindkett ő lefut

Statikus tagok Függvényeknél klasszikus értelemben Változók teljes „családra” közösek Függvények self. Prefix Változók Változók definiálhatók függvényen kívül

class Polygon = 10 def self.sides end e end class Triangle<Polygon def setside end t=Triangle.new p Polygon.sides => 10 p Triangle.sides => 10 t.setside p Polygon.sides => 3 p Triangle.sides => 3

class Polygon class << self attr_accessor :sides = 10 end class end t=Triangle.new p Polygon.sides => 10 p Triangle.sides => 3

Duck typing When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck. A függvény meghívásra kerül ha egyezik: Név Paraméterszám

class Duck def quack p "quack" end class Something def quack p "quack2" end def quacker(duck) duck.quack end d1=Duck.new d2=Something.new quacker(d1) => "quack" quacker(d2) => "quack2"

Modulok Névtér Nincs ő s Nem példányosítható Lehetnek benne: Metódusok Osztályok Konstansok

Mixin Osztály vagy objektum b ő vítése Modulok segítségével Többszörös örökl ő dés Viselkedés megosztása

module Common def printit p "it" end def self.sprintit p "sit" end class A include Common end a=A.new a.printit => "it" Common.sprintit => "sit" A.sprintit #hiba

module Common def sprintit p "sit" end class A extend Common end A.sprintit => ‘sit’ s1 = "b" s2 = "c" s1.extend Common s1.sprintit => "sit" s2.sprintit #hiba

Párhuzamosság Operációs rendszer szint ű Thread osztály használata Több mag használata implementáció függ ő Kezeletlen kivétel esetén az adott szál futása befejez ő dik Prioritás

Thread Indítás Thread.new{ #blokk } A blokk hozzáfér a látható változókhoz A bent lév ő lokális változók a szálhoz tartoznak Thread változói Thread.current["c"] Thread.main["b"] Sleep, stop, pass,exit

Ütemezés Hívó blokkolása amíg a másik be nem fejez ő dik t.join t.value visszaadja a szál eredményét A kivétel tovább terjed a hívó szálra Vezérlés átadása pass sleep stop Szál leállítása kill exit Felébresztés run

Szinkronizáció Thread.critical igaz esetén csak az adott szálat futtatja A szál átadhatja a vezérlést(pl pass,sleep,kivétel) Mutex Egyszer ű szemafort implementál Deadlock megakadályozására condition variable

cv = ConditionVariable.new a = Thread.new { mutex.synchronize { puts "A: I have critical section, but will wait for cv„ cv.wait(mutex) puts "A: I have critical section again! I rule!" } } puts "(Later, back at the ranch...)„ b = Thread.new { mutex.synchronize { puts "B: Now I am critical, but am done with cv" cv.signal puts "B: I am still critical, finishing up" }} a.join b.join A: I have critical section, but will wait for cv (Later, back at the ranch...) B: Now I am critical, but am done with cv B: I am still critical, finishing up A: I have critical section again! I rule!

Kérdések Mivel lehet megvalósítani a töbszörös örökl ő dést? Hol hívhatunk privát metódust? Hogyan érhetjük el egy szál változóit?