1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.

Slides:



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

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.
Adatbányászati technikák (VISZM185)
Hibakezelés és Tesztelés a Visual Studio.NET-ben
© 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.
Bevezetés a Java programozásba
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.
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.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Java programozási nyelv 3. rész – Osztályok I.
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.
C# Alapok Krizsán Zoltán.
C# tagfüggvények.
C# tagfüggvények.
Krizsán Zoltán iit 1.2.  Nem kell vizuális felületnek lennie.  Delegátumok segítségével valósíthatja meg a.NET. Krizsán Zoltán iit Delegátumok C#-ban2.
Entity framework Krizsán Zoltán
Csomagok.
© Kozsik Tamás Csomagok. © Kozsik Tamás A program tagolása Típusdefiníciók (osztályok, interfészek) Metódusok Blokk utasítások Csomagok.
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
Programozás alapismeretek
ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.
J.Zs.Cs.: Vizuális programozás (c) 2010 Vizuális programozás Fájl- és állományrendszer kezelés Névtér: System.IO.
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.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Hernyák Zoltán Programozási Nyelvek II.
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.
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.
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 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.
Hernyák Zoltán Programozási Nyelvek II.
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.
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.
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.
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 Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Java programozási nyelv Filekezelés
Java programozási nyelv Adatbekérés konzolról
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 4. Gyakorlat Függvény paraméterek, dinamikus.
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Objektum orientált programozás 3. Függvények Nagy Szilvia.
Objektum orientált programozás
V 1.0 OE-NIK HP 1 Haladó Programozás A párhuzamos végrehajtás alapjai Folyamatok Szálkezelés alapok.
Haladó Programozás Reflexió OE-NIK HP.
DLL használata és készítése Feladat
V 1.0 OE-NIK HP 1 Haladó Programozás Szálkezelés + szinkronizáció.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
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.
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Programozási Nyelvek II.
Thread és Task.
Előadás másolata:

1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz

2 Probléma: A példány deklarálásakor meg kell adni a típusnevet. A típusnévnek egyedinek kell lennie. A típusnév lényegében osztálynév. Egy nagyobb objektum-osztály gyűjteményben több ezer osztály is előfordulhat. Ráadásul ha kiegészítő library-ket is használunk más-más külső (3rd party) programozók, fejlesztő cégek munkájakánt, akkor már könnyedén előfordulhat, hogy az osztálynév nem egyedi. Megoldás: Struktúrált (több szintű, összetett) osztálynév használata.

3 namespace Networking { class WebBrowser {... } namespace Networking { class WebBrowser {... } Az osztály neve itt ‘WebBrowser’, de a teljes (minősített neve) ‘NetWorking.WebBrowser’. Networking.WebBrowser ie = new Networking.WebBrowser();

4 A Base Class Library is több ezer objektumosztályt tartalmaz. Ezek között eligazodni is nehéz. A namespace-k segítenek, csoportosítják témakör szerint az osztályokat: System.Collections : összetett adatszerkezetek (tömbök, listák, verem, sor, …) System.Drawing : rajzoláshoz szükséges osztályok (ecset, toll, képformátumok, festővászon, …) System.IO : alkönyvtárak, állományok kezelése System.Reflection : futás közbeni típusinformációk kezelése, attribútumok, dll-ek (assembly) kezelése System.Runtime.Remoting : távoli metódushívások kezelése System.Threading : többszálú programok írása, kritikus szakaszok kezelése, lock-olás System.Web : web alapú kommunikációk kezelése … System.Collections : összetett adatszerkezetek (tömbök, listák, verem, sor, …) System.Drawing : rajzoláshoz szükséges osztályok (ecset, toll, képformátumok, festővászon, …) System.IO : alkönyvtárak, állományok kezelése System.Reflection : futás közbeni típusinformációk kezelése, attribútumok, dll-ek (assembly) kezelése System.Runtime.Remoting : távoli metódushívások kezelése System.Threading : többszálú programok írása, kritikus szakaszok kezelése, lock-olás System.Web : web alapú kommunikációk kezelése …

5 namespace System { namespace Threading { class Thread {... } namespace System { namespace Threading { class Thread {... } System.Threading.Thread t = …; Névtér neve Osztály neve

6 namespace System.Threading { class Thread {... } namespace System.Threading { class Thread {... } using System.Threading; … Thread t = new Thread( … ); using System.Threading; … Thread t = new Thread( … ); Névtér neve Osztály neve

7 Az osztályok nevét elvileg mindig minősített névvel (teljes névvel) kellene használni. De hogy ne kelljen annyit gépelni, a C#-ban lehetőség van a program elején a leggyakrabban használt namespace-k deklarálására a ‘using’ kulcsszóval. A ‘using’ után névterek nevét kell megadni. A program elején több ‘using’-ot is megadhatunk.

8 using System; using System.Threading; using System.Collection; using System.IO; using System.Environment; … FileStream f = new FileStream(”C:/hello.txt”); using System; using System.Threading; using System.Collection; using System.IO; using System.Environment; … FileStream f = new FileStream(”C:/hello.txt”); System.FileStream ?NEM System.Threading.FileStream ?NEM System.Collection.FileStream ?NEM System.IO.FileStream ? IGEN

9 using System; using System.Timers; using System.Threading; using System.Windows.Forms; … Timer t = new Timer(); using System; using System.Timers; using System.Threading; using System.Windows.Forms; … Timer t = new Timer(); System.Timer?NEM System.Timers.Timer?IGEN System.Threading.Timer ?IGEN System.Windows.Forms.Timer ?IGEN Nem szabad, hogy egy osztálynév ne legyen egyértelmű! System.Timers.Timer t = new System.Timers.Timer();

10 using alap = System.Windows.Forms; … alap.Timer t = new alap.Timer(); using alap = System.Windows.Forms; … alap.Timer t = new alap.Timer(); ‘alias’, álnév létrehozása

11 using System; namespace sajat { class FoProgram { public static void Main() { Console.WriteLine(”Helló világ!”); } using System; namespace sajat { class FoProgram { public static void Main() { Console.WriteLine(”Helló világ!”); } Elvileg minden osztályt illik névtérbe helyezni. Ha nem helyezzük névtérbe, akkor az üres névtérbe (más néven globális névtér) helyezzük!

12 using System; class FoProgram { public static void Main() { Console.WriteLine(”Helló világ!”); } using System; class FoProgram { public static void Main() { Console.WriteLine(”Helló világ!”); } Ez itt a globális névtér. Tartózkodjuk az ilyen megoldástól, mert elveszítjük annak lehetőségét, hogy ha osztálynév-ütközés van, akkor a minősített név használatával fel tudjuk azt oldani!

13 namespace sajat { class SegedOsztaly {... } }... namespace sajat { class Masik:sajat.SegedOsztaly {... } class Harmadik:SegedOsztaly {... } } namespace sajat { class SegedOsztaly {... } }... namespace sajat { class Masik:sajat.SegedOsztaly {... } class Harmadik:SegedOsztaly {... } } A namespace bármikor folytatható. A ‘namespace’ belsejében ugyanarra a névtérre nem kell minősített nevet használni.