predavanja (P) | - Jezik C♯: povijest, osnovne karakteristike jezika, proces standardizacije, usporedba s drugim najpopularnijim OO jezicima (Java, C++).
Uvod u .NET okruženje (.NET Framework): osnovne komponente, pogodnosti koje nudi, mehanizam kreiranja, distribucije i izvođenja aplikacija, biblioteka klasa (FCL), zajednički tipski sustav (CTS), zajednička jezična specifikacije (CLS)
- Osnovni tipovi podataka i operatori: osnovna struktura C♯ programa, metoda Main(), komentari, imenici (namespaces), identifikatori, ključne riječi, osnovna svojstva tipova podataka, podjela na vrijednosne i referentne tipove, ugrađeni brojčani tipovi, implicitne i eksplicitne pretvorbe ugrađenih tipova, pravila numeričke promocije, nulabilni tipovi, znakovni nizovi (string), pobrojenja (enumerations), operatori: aritmetički, usporedbe, logički, bitovni, operatori pridruživanja, pretvorba (cast), operatori typeof, sizeof, as is
- Naredbe za kontrolu toka: blokovi naredbi, doseg (scope) objekta, grananje if, uvjetno pridruživanje (?:), grananje switch, petlja while, petlja do-while, petlja for, petlja foreach, prekid petlje naredbama break i continue, naredba goto, naredba return.
Definiranje tipa: što je tip, osnovni tipovi (enum, class, struct), razlika između class i struct, sadržaj definicije tipa, prava pristupa tipu, prava pristupa članovima tipa, dodatni atributi u definiciji tipa (vritual, override, abstract, new, sealed, static, const, readonly), konstruktori instance, podrazumijevani konstruktor, konstruktori tipa, destructor, metoda Finalize(), eksplicitno oslobađanje resursa, sučelje IDisposable, blok using
- Razlika vrijednosni tip - referentni tip (value type - reference type): smještaj u memoriji, inicijalizacije i pridruživanje, zapakiravanje/otpakiravanje (boxing/unboxing).
Zajednička svojstva tipova: opis tipa System.Object, jednakost objekata - jednakost po identitetu ili po vrijednosti, implementacija metode Equals(), operatori == i !=, hashcode, kloniranje
- Metode: definicija metode, poziv metode, preopterećenje metode, podrazumijevane vrijednosti argumenata,imenovani argumenti, mehanizam prosljeđivanja argumenata, usporedba vrijednosnih i referentih tipova kao argumenata, prosljeđivanje argumenata po referenci, promjenjivi broj argumenata, virtualne metode, apstraktne metode, parcijalne metode
- Svojstva (properties): enkapsulacija podataka, korištenje i definiranje svojstava, svojstva s argumentima (indexers).
Preopterećenje operatora (operator overloading): primjena i definicija, alternativne oznake po CLS-u, operatori pretvorbe, konstruktori pretvorbe, metode ToXxx, operatori implicitne i eksplicitne pretvorbe.
- Delegati: definicija, primjer korištenja, pridruživanje statičkih metoda i metoda instance, pozadina delegata - opis razreda MulticastDelegate, ulančavanje metoda, GetInvocationList().
Događaji (events): problem uparenosti među objektima, objekti koji sudjeluju u razmjeni događaja, definicija sudionika, pozadina implementacije.
- Sučelja: razlika nasljeđivanje implementacije - nasljeđivanje sučelja, problem višestrukog nasljeđivanja, definiranje i implementacija sučelja u jeziku C♯, pravo pristupa sučelju, prvao pristupa članovima sučelja, pravo pristupa implementaciji sučelja, višestruko nasljeđivanje sučelja, primjeri nasljeđivanja u FCL-u, organizacija koda i značaj sučelja u velikim projektima, implementacija jednakih članova iz različitih sučelja, eksplicitna implementacija sučelja.
- Generički tipovi (generics): generičko programiranje, parametar tipa, instanciranje tipa, prednosti korištenja generičkih tipova, generički tipovi u FCL-u, generička sučelja, generički delegati, preopterećenje parametriziranih članova, ograničavanje parametara.
- Rad s tekstom: znakovi, struktura System.Char i njeni članovi, razred System.String, posebni znakovi (escape sequences), operacije sa znakovnim nizovima, dinamičko mijenjanje znakovnog niza, razred StingBuilder, znakovna prezentacija objekta, lokalizacijski specifični formati i kulture, formati brojeva, datuma, pobrojenja, IFormatProvider, formatiranje ispisa, pretvorba znakovnog niza u objekt, podržana kodiranja (UTF-32, UTF-16, UTF-8 i sl.), Base-64 kodiranje.
- Pobrojenja (enumerations) i polja bitova (bit-fields): definicija, eksplicitna dodjela vrijednosti, prednosti korištenja pobrojenja, dohvaćanje vrijednosti, dohvaćanje simbola, definicija polja bitova, razlike u odnosu na pobrojenja.
- Nizovi (Arrays): osnovna svojstva, razlika između nizova vrijednosnih i nizova referentnih tipova, System.Array, višedimenzionalni nizovi, nepravilni nizovi, pretvorbe nizova, prosljeđivanje nizova metodama i nizovi kao povratne vrijednosti, nizovi s početnim indeksom različitim od 0, brzina dohvaćanja nizova.
- Iznimke (Exceptions): povijesni pregled signalizacije pogrešaka, definicija try- catch -finally blokova i slijed izvođenja, filtar iznimki, bacanje iznimki, ponovno bacanje, iznimke u FCL-u, definiranje vlastitih iznimki, praćenje iznimki, obrada neuhvaćenih iznimki
- Korisnički definirani atributi (Custom Attributes): opis i primjer korištenja, navođenje cilja, definiranje atributa, mehanizam implementacije atributa, pseudo-atributi.
- Sustav za automatsko upravljanje memorijom (Garbage Collection): život objekta, curenje memorije u neupravljanim (unmanaged) programima, alokacija memorije, upravljana hrpa, skupljanje smeća, generacije, finalizacije, slabe reference.
|