Programowanie obiektowe
|
|
- Martyna Jankowska
- 5 lat temu
- Przeglądów:
Transkrypt
1 Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykłady 5 i 6 Inicjalizacja, polimorfizm, dziedziczenie, interfejsy
2 Przygotował: Jacek Sroka 2 Przypomnienie Typy podstawowe, klasy Pakiety Modyfikatory dostępu Działają dla klas, a nie obiektów Inicjalizacja za pomocą konstruktorów Przeciążanie metod/konstruktorów Kapsułkowanie
3 Przygotował: Jacek Sroka 3 Zwalnianie zasobów W Javie nie ma żadnych jawnych bądź niejawnych destruktorów Zasoby inne niż pamięć przyjęło się zwalniać w metodzie close() (trzeba ją samemu definiować i wywoływać) plik.close(); gniazdo.close(); PołączenieZBazą.close(); Nie musimy/możemy się martwić o zwalnianie pamięci, w której przechowywane są Javowe obiekty (sterta) i zmienne (stos), bo sami jej nie przydzielamy O obiektach, których już nie będziemy potrzebować można zwyczajnie zapomnieć: { String s = "ala"; System.out.println(s);
4 Przygotował: Jacek Sroka 4 Odśmiecanie/Finalizacja Zwalnianiem pamięci po obiektach zajmuje się odśmiecacz Tylko obiekty niedostępne z żadnego aktywnego wątku programu Odśmiecaczem steruje JVM Programista może "podpowiedzieć : System.gc() Jeżeli pamięci jest dużo, odśmiecanie może nie być potrzebne Przed odśmieceniem danego obiektu wywoływana jest odziedziczona po Object metoda finalize() O finalize() wiadomo, że będzie wywołana co najwyżej raz, dlatego nie ma sensu zwalniać w niej jakichkolwiek zasobów Można natomiast sprawić, że obiekt stanie się ponownie dostępny Jako ćwiczenie proszę sprawdzić, czy przed odśmieceniem (po raz drugi) przywróconego obiektu finalize() będzie wywołana drugi raz
5 Przygotował: Jacek Sroka 5 Finalizacja przykład class Finalizacja { int n; String[] smieci; Finalizacja(int n) { this.n = n; smieci = new String[n]; smieci[0] = "Każda literka zaśmieca dwa bajty."; for (int i = 1; i < n; i++) smieci[i] = smieci[i - 1] + smieci[i - 1]; protected void finalize() throws Throwable { super.finalize(); System.out.println("finalize() dla n=" + n);
6 Przygotował: Jacek Sroka 6 Finalizacja przykład c.d. Wywołanie: for (int i = 1; i <= 13; i++) { Finalizacja f = new Finalizacja(i); Może dać następujący wynik: finalize() dla n=9 finalize() dla n=10 finalize() dla n=12
7 Przygotował: Jacek Sroka 7 Jak działa odśmiecacz Odnajdywanie niedostępnych obiektów: zliczanie referencji odwołujących się do obiektu (znajdywanie grup obiektów odwołujących się do siebie nawzajem jest kosztowne) przeglądanie sieci dostępnych (przez stos) obiektów i jakoś ich oznaczanie Porządkowanie sterty: stop-and-copy - odśmiecamy i porządkujemy (przesuwamy obiekty dbając o naprawianie referencji); strategia dobra jak dużo odśmiecania mark-and-sweep jedynie odśmiecamy; strategia dobra jak mało odśmiecania stop-and-copy można udoskonalić dzieląc stertę na bloki i umieszczając w każdym licznik jego wykorzystania Maszyna wirtualna może przełączać strategie w zależności od własności działającego programu
8 Przygotował: Jacek Sroka 8 Kolejność inicjalizacji class Pom1 { Pom1() {System.out.println("Pom1()"); class TestInicjalizacji { int x = 777; Pom1 p = new Pom1(); int y = f(); int f() { System.out.println("f()"); return 1; //deklaracje metod mogą się przeplatać z deklaracjami atrybutów int yy; TestInicjalizacji() { System.out.println("TestInicjalizacji()");... Kolejność: Pom1(), f(), TestInicjalizacji()
9 Przygotował: Jacek Sroka 9 Kolejność inicjalizacji c.d.... //kolejność deklaracji zmiennych ma znaczenie przy inicjalizacji int v = x; //int a = b; int b; //kolejność jest też istotna przy przekazywaniu parametrów //int a = b(u); int b(int u) { return u; int u; //można jednak oszukiwać (wynik: h(); v=0) int z = h(); int h() { System.out.println("h(); v="+v); return v; int v = 1313;...
10 Przygotował: Jacek Sroka 10 Inicjalizacja statyczna Inicjalizacja składowych statycznych odbywa się jeden raz, w momencie pierwszego użycia klasy (odwołanie do składowej statycznej lub utworzenie obiektu) class InicjalizacjaStatyczna { static Pom1 p = new Pom1(); static void test() {System.out.println("test()"); InicjalizacjaStatyczna.test(); InicjalizacjaStatyczna is = new InicjalizacjaStatyczna(); Class c = InicjalizacjaStatyczna.class;
11 Przygotował: Jacek Sroka 11 Grupowanie inicjalizacji class BlokInicjalizacji { int x; //o wyjątkach jeszcze opowiemy { try { System.out.println("ustawiam x"); x = 7; catch (Exception e) { System.out.println("Wpadłeś jak śliwka w studzienkę kanalizacyjną"); static int y; static { int pom; pom = 1; System.out.println("ustawiam y"); y = pom; Kolejność znowu od góry na dół.
12 Przygotował: Jacek Sroka 12 Wielokrotne użycie kodu Agregacja całkowita (ang. composition) związek całość część Czas życia część ograniczony przez czas życia całości Część należy tylko do jednej całości Klasa tworzy i używa obiekty innych klas Okienko Ramka Uogólnienie (ang. generalization) związek między nadklasą i podklasą Podklasa jest szczególnym przypadkiem nadklasy Podklasy można używać wszędzie tam gdzie nadklasy Okienko Dialog Nie zależy od implementacji klas (to że w tej chwili są podobnie zaimplementowane nie ma znaczenia) Dziedziczenie i przedefiniowywanie metod Przykłady: Owoc-Gruszka, Ptak-Wrona, Figura-Kwadrat
13 Przygotował: Jacek Sroka 13 Przykład składanie kawałków tortu class A { int ia = 1; void infoa() { System.out.println("A.infoA() na obiekcie klasy " + this.getclass().getsimplename() + "\n ia="+ia); class B extends A { int ib = 2; void infob() { infoa(); System.out.println("B.infoB() na obiekcie klasy " + this.getclass().getsimplename() + "\n ia="+ia+", ib="+ib); class C extends B { int ic = 3; void infoc() { InfoA(); infob(); System.out.println("C.infoC() na obiekcie klasy "...
14 Przygotował: Jacek Sroka 14 Wynik B składa się ze swoich składowych plus składowe A C składa się ze swoich składowych plus składowe B, czyli również składowe A C c = new C(); c.infoc(); // A.infoA() na obiekcie klasy C // IA=1 // // A.infoA() na obiekcie klasy C // ia=1 // B.infoB() na obiekcie klasy C // ia=1, ib=2 // // C.infoC() na obiekcie klasy C // ia=1, ib=2, ic=3 A a = c; System.out.println("a.iA=" + a.ia + ", c.ia=" + c.ia); //a.ia=1, c.ia=1 A co jak zmienimy nazwy atrybutów w hierarchii na takie same? W praktyce tego unikamy lub chronimy dostęp do atrybutów przy pomocy modyfikatorów dostępu
15 Przygotował: Jacek Sroka 15 Dostęp do atrybutów class A { int i = 1; void infoa() { System.out.println("A.infoA() na obi...\n ia=" + i); class B extends A { int i = 2; void infob() { infoa(); System.out.println("B.infoB()...\n ia=" + ((A) this).i + ", ib="+i); //albo super.i class C extends B { int i = 3; void infoc() { infoa(); infob(); System.out.println("C.infoC()...");//nie można super.super.i
16 Przygotował: Jacek Sroka 16 Wynik C c = new C(); c.infoc(); // A.infoA() na obiekcie C // ia=1 // // A.infoA() na obiekcie C // ia=1 // B.infoB() na obiekcie C // ia=1, ib=2 //... // C.infoC() na obiekcie C // ia=1, ib=2, ic=3 A a = c; System.out.println("a.i=" + a.i + ", c.i=" + c.i); // a.i=1, c.i=3 Nadal podklasa ma wszystkie kawałki Rzutowanie może być niebezpieczne (wyjątek vs błąd kompilacji) chociaż akurat nie tutaj super to tak jak this referencja do bieżącego obiektu tylko że przestają być widoczne deklaracje wprowadzone przez podklasę (tylko jeden poziom wyżej) Przy odwoływaniu się do atrybutów istotny jest typ statyczny!
17 Przygotował: Jacek Sroka 17 Dostęp do metod class A { int i = 1; void info() { System.out.println("A.info() z ia=" + i); class B extends A { int i = 2; void info() { super.info(); System.out.println("B.info() z ia=" + ((A) this).i + ", ib=" + i); class C extends B { int i = 3; void info() { super.info();//jak wywołać info() z A? System.out.println("C.info() z ia=" + ((A) this).i +...);
18 Przygotował: Jacek Sroka 18 Wynik (polimorfizm) C c = new C(); c.info(); //A.info() z ia=1 //B.info() z ia=1, ib=2 //C.info() z ia=1, ib=2, ic=3 A a = c; a.info(); //A.info() z ia=1 //B.info() z ia=1, ib=2 //C.info() z ia=1, ib=2, ic=3 Przy odwoływaniu się do metod istotny jest typ dynamiczny!
19 Przygotował: Jacek Sroka 19 Wzorce projektowe Pewne wypróbowane i poprawne rozwiązania problemów projektowych mogą być (i były) wyrażane jako dobre praktyki, heurystyki lub wzorce nazwane przepisy zadanie-rozwiązanie. (na podstawie "Applying UML And Patterns" Craiga Larmana). Sam termin wzorzec ma sugerować coś powtarzalnego. To nie są nowe pomysły! Dwa istotne zbiory wzorców to wzorce GoF i GRASP. GRASP to metodyczne podejście do uczenia się podstaw projektowania obiektowego. GRASP: Wysoka spójność, Luźne sprzężenie, Polimorfizm, Rzeczoznawca, Twórca, Zarządca, Pośrednictwo, Czysty wymysł, Kapsułkowanie zmienności GoF (23 ogólnie uznane wzorce): Fabryka, Singleton, Adapter, Strategia, Kompozyt, Fasada, Obserwator (Delegowanie, Wydawca-Prenumerator)
20 Przygotował: Jacek Sroka 20 Adapter Kontekst/Problem: Jak poradzić sobie z niekompatybilnymi interfejsami lub dostarczyć stabilny interfejs dla podobnych komponentów posiadających różniące się interfejsy? Rozwiązanie: Używając pośredniego obiektu adaptera przekształć oryginalny interfejs komponentu na inny. Dodajemy poziom pośredni składający się z obiektów, które przystosowują różnorodne zewnętrzne interfejsy do spójnego interfejsu używanego w aplikacji! Konwencja nazewnicza: nazwę wzorca wbudowujemy w nazwę typu Adaptery są Fasadami (opakowują dostęp do podsystemu lub systemu w pojedynczym obiekcie).
21 Przygotował: Jacek Sroka 21 Fabryka Kto powinien tworzyć obiekty, np. obiekty (adaptery) reprezentujące zewnętrzne usługi (mogące mieć różne interfejsy, np. AdapterKartyVisa). Chcemy utrzymać rozdzielenie zagadnień obiekty dziedzinowe odpowiadają jedynie za logikę aplikacji (chcemy zachować wysoką spójność). (Nie zawsze jest to możliwe programowanie aspektowe). public NaszaFabryka {... public AdapterKarty getadapterkarty() { //odczytaj z pliku konfiguracyjnego jakiego adaptera użyć //utwórz odpowiedni i zwróć go
22 Przygotował: Jacek Sroka 22 Singleton Jak uzyskać dostęp do fabryki z poprzedniego przykładu? Kto ją tworzy? Zazwyczaj potrzeba tylko jednej fabryki? Możemy przekazywać fabrykę jako parametr, ale możemy użyć wzorca Singleton egzamplarz jest atrybutem statycznym, a konstruktor fabryki jest prywatny public static synchronized NaszaFabryka getegzemplarz() { // sekcja krytyczna, jeżeli aplikacja jest wielowątkowa if ( egzemplarz == null ) { egzemplarz = new FabrykaUsług(); return egzemplarz; //czyli fabryka staje się dostępna globalnie!
23 Przygotował: Jacek Sroka 23 Ćwiczenie class A { void starametoda() { System.out.println("A.staraMetoda()"); void pisz() { System.out.println("A.pisz()"); class B extends A { void pisz() { System.out.println("B.pisz()"); void nowametoda() { System.out.println("B.nowaMetoda()"); pisz(); super.pisz(); Jaki będzie wynik lub czy się nieskompiluje? B b = new B(); b.starametoda(); //A.staraMetoda() b.pisz(); //B.pisz() b.nowametoda(); //B.nowaMetoda() //B.pisz() //A.pisz() A a = new B(); a.pisz(); //B.pisz() a.starametoda(); //A.staraMetoda()
24 Przygotował: Jacek Sroka 24 Ćwiczenie class A { void pisz() { System.out.println("A.pisz()"); void jakiewiązanie() { pisz(); B b = new B(); b.jakiewiązanie(); //B.pisz() A a = new B(); a.jakiewiązanie(); //B.pisz() class B extends A { void pisz() { System.out.println("B.pisz()");
25 Przygotował: Jacek Sroka 25 Ćwiczenie class A { int x = 1; B b = new B(); A a = new B(); void testzmiennej() { System.out.println(x); b.testzmiennej(); //2 //1 //1 class B extends A { int x = 2; int y = 2; void testzmiennej() { System.out.println(x); System.out.println(super.x); super.testzmiennej(); a.testzmiennej(); //2 //1 //1
26 Przygotował: Jacek Sroka 26 Wielodziedziczenie Co ze składowymi odziedziczonymi z wielu nadklas? W Javie tylko jedna nadklasa W zamian za to interfejsy Zawierają jedynie sygnatury metod, bez implementacji Wszystkie składowe są publiczne (czy to wskażemy czy nie) Wszystkie atrybuty są dodatkowo statyczne i final ( Nie ma problemu jak w klasie jest atrybut o tej samej nazwie Wygodniej się do nich odwoływać przez nazwę klasy, a nie referencję do obiektu trzeba je zainicjować w miejscu deklaracji Nie mogą zawierać bloków inicjalizacji class Pracownik extends Osoba // dziedziczenie po klasie class Samochód implements Pojazd, Towar // dziedziczenie po kilku interfesjach class Chomik extends Ssak implements Puchate, DoGłaskania // dziedziczenie po klasie i kilku interfejsach
27 Przygotował: Jacek Sroka 27 Przykład interfejsy interface IntA { public void metodaa(); public void metodac(); interface IntB { public void metodab(); public void metodac(); class NadKl { public void metodac() {... class PodKl extends NadKl implements IntA, IntB { public void metodaa() {... public void metodab() {... //metodac() jest w nadklasie
28 Przygotował: Jacek Sroka 28 Uogólnianie interfejsów Tu wielodziedziczenie jest pełne! interface IntA {... interface IntB {... interface IntC extends IntA, IntB { public void metodad(); class KlC implements IntC { public void metodaa() { public void metodab() { public void metodac() { public void metodad() { KlC cc = new KlC(); IntC ic = cc; IntA ia = cc; IntB ib = ic;
29 Przygotował: Jacek Sroka 29 Wielodziedziczenie a przeciążanie Nie zawsze jest możliwe zdecydowanie, którą z przeciążony metod wybrać void przeciążona(inta a) { void przeciążona(intb b) { PodKl p = new PodKl(); //implementowała IntA i IntB przeciążona(p); //błąd Natomiast przy uogólnianiu wybierana jest klasa najbardziej szczegółowa class NadA { class NadB extends NadA { class NadC extends NadB { static void przeciążona(nada a) {System.out.println("a"); static void przeciążona(nadb b) {System.out.println("b"); NadC c = new NadC(); przeciążona(c); //wypisze się b
30 Przygotował: Jacek Sroka 30 Zagadka Wymyśl dwa interfejsy, które nie mogą być naraz zaimplementowane przez jedną klasę
31 Przygotował: Jacek Sroka 31 Odpowiedź interface WykluczającyA { public void metoda(); interface WykluczającyB { public int metoda(); //Tak się nie da! class Wykluczanie implements WykluczającyA, WykluczającyB { public void metoda() { public int metoda() {return 0;
32 Przygotował: Jacek Sroka 32 Klasy abstrakcyjne Klasy z niekompletną implementacją Nie można tworzyć ich egzemplarzy Przydają się jak chcemy wprowadzić wspólny kod do hierarchii abstract class SłużbySpecjalne { void podsłuchuj() { //... String generujprzeciek(); class CentralneBiuroDoWalkiZUkładami extends SłużbySpecjalne { String generujprzeciek() { //...
33 Przygotował: Jacek Sroka 33 Kolejność inicjalizacji Statyczne składowe nadklasy Statyczne składowe podklasy (Pełna inicjalizacja nadklasy) Zwykłe składowe nadklasy Konstruktor nadklasy (określony w pierwszej instrukcji konstruktora podklasy) Uwaga nad dynamiczne wiązanie (Pełna inicjalizacja podklasy) Zwykłe składowe podklasy Konstruktor podklasy (trzeba zacząć od wywołania konstruktora nadklasy, domyślne konstruktory może wywołać kompilator)
34 Przygotował: Jacek Sroka 34 Przykład klasa pomocnicza class Echo { static int getvalue(string s) { System.out.println("getValue(" + s + ")"); return 1;
35 Przygotował: Jacek Sroka 35 Przykład c.d. class A { int x = Echo.getValue("A.x"); void pisz() { System.out.println("A.pisz()"); A() { System.out.println("A()"); pisz(); class B extends A { int x = Echo.getValue("B.x"); int y = Echo.getValue("B.y"); B b = new B(); //getvalue(a.x) //A() //B.pisz() //getvalue(b.x) //getvalue(b.y) //B() //B.pisz() void pisz() { System.out.println("B.pisz()"); B() { super(); System.out.println("B()"); pisz();
36 Przygotował: Jacek Sroka 36 Przykład interfejsy interface MójInterfejs { int X = Log.dajInt(); public static final int Y = 2; int Z = Log.dajInt();//nieużywana stała //też zostanie //zainicjalizowana void róbxxx(); public void róbyyy(); class MojaKlasa implements MójInterfejs { public void róbxxx() { System.out.println("róbXXX("+X+")"); public void róbyyy() { System.out.println("róbYYY("+Y+")"); MojaKlasa mk; MójInterfejs mi; mk = new MojaKlasa(); mi = mk; mi.róbyyy(); System.out.println("leniwośc"); mk.róbxxx(); //róbyyy(2) //leniwość //Log.dajInt() //Log.dajInt() //róbxxx(1) //prawdopodobnie 2 została //zinlinowana
37 Przygotował: Jacek Sroka 37 final Atrybuty Stałe kompilacji będą wplatane w wyrażenia Wartość typu podstawowego lub referencji nie może ulec zmianie Można użyć z argumentami metod Metody Nie mogą być przesłaniane Nie ma dynamicznego wiązania, czasami kompilator może wstawiać kod metody w miejsce jej wywołania (ang. inline) Klasy nie można rozszerzać
38 Przygotował: Jacek Sroka 38 Atrybuty final trzeba zainicjalizować class TestFinal { final int x; TestFinal() { x = 1; //inicjalizacja musi nastąpić //najpóźniej w konstruktorze
39 Przygotował: Jacek Sroka 39 final a private Metody private i tak nie można przesłonić, ale można zdefiniować metodę o takiej samej sygnaturze class Zagadka { // final tu nic nie zmieni private void pisz() { System.out.println("Zagadka.pisz()"); Zagadka() { pisz(); class PseudoPrzesloniecie extends Zagadka { private void pisz() { System.out.println("PseudoPrzesloniecie.pisz()"); PseudoPrzesloniecie() { pisz(); PseudoPrzesloniecie p = new PseudoPrzesloniecie(); //Zagadka.pisz() //PseudoPrzesloniecie.pisz()
Programowanie obiektowe
Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykłady 5 Dziedziczenie, inicjalizacja, przeciążanie metod Przygotował: Jacek Sroka 2 Przypomnienie Typy podstawowe, klasy Pakiety Modyfikatory dostępu
Java niezbędnik programisty spotkanie nr 3. Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja...
Java niezbędnik programisty spotkanie nr 3 Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja... 1 Definicja klasy [modyfikator] class nazwa_klasy { [modyfikator] nazwa_typu
Programowanie obiektowe
Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 4 Java podstawy c.d. (w tym pakiety, polimorfizm, modyfikatory, klasy abstrakcyjne, interfejsy) Przygotował: Jacek Sroka 2 Kolokwium planujemy
Dziedziczenie w Javie
12 kwietnia 2011 Wprowadzenie Klasy modelują pojęcia z dziedziny obliczeń. Pojęcia bywają ze sobą powiązane - chcemy to wyrażać w programach. Można to robić nieskutecznie lub dobrze: Komentarze, Dziedziczenie.
Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016
Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac
Dziedziczenie. dr Jarosław Skaruz
Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
Klasy abstrakcyjne, interfejsy i polimorfizm
Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z
Zaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 4 - wzorce projektowe. dr inż. Robert Nowak - p. 1/18 Powtórzenie klasy autonomiczne tworzenie nowych typów: dziedziczenie i agregacja dziedziczenie: przedefiniowywanie
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje
Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Java - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Wykład 6: Dziedziczenie
Wykład 6: Dziedziczenie Dziedziczenie Jeden z filarów obiektowości. Budowa jednej klasy na bazie drugiej, przez dodawanie/przesłanianie jej składowych: nad-klasa klasa bazowa pod-klasa klasa pochodna od
Wykład 7: Pakiety i Interfejsy
Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,
Enkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Wirtualne destruktory class A int* a; A(int _a) a = new int(_a);} virtual ~A() delete a;} class B: public A double* b;
Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Dokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
Programowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/
Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i
Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.
Java podstawy jęyka Wykład 2 Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Wyjątki: obsługa błędów Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 12.03.2015
public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:
Klasy Metody [ModyfikatorMetody] TypZwrotny Nazwa (Typ arg1, ) { // implementacja metody ModyfikatorMetody może być kombinacją wyrażeń: modyfikator widzialności public dostępna dla metod spoza klasy protected
Materiały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja
Platformy Programistyczne Wykład z Javy dla zaawansowanych
Platformy Programistyczne Wykład z Javy dla zaawansowanych Agata Migalska 20 maja 2014 Plan wykładu 1 Polimorfizm i dziedziczenie 2 Życie i śmierć obiektu 3 Poziomy oraz modyfikatory dostępu 4 Obsługa
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Polimorfizm. dr Jarosław Skaruz
Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody
Podstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
Związek między pojęciami Zasada podstawialności Podklasy muszą realizować kontrakt zawarty przez nadklasy
Janusz Jabłonowski Związek między pojęciami Zasada podstawialności Podklasy muszą realizować kontrakt zawarty przez nadklasy Przedefiniowywanie lub podmienianie (ang. overriding, czasami błędnie tłumaczone
Dziedziczenie. Tomasz Borzyszkowski
Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Programowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
1 Atrybuty i metody klasowe
1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich
Definicje klas i obiektów. Tomasz Borzyszkowski
Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy
Programowanie obiektowe
Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce
Język C++ Programowanie obiektowe
Język C++ Programowanie obiektowe Cechy programowania obiektowego abstrakcyjne typy danych hermetyczność obiektów (kapsułkowanie) dziedziczenie polimorfizm Programowanie proceduralne vs. programowanie
Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13
Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ
Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu
Polimorfizm, metody wirtualne i klasy abstrakcyjne
Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,
Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski
Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół
Zaawansowane programowanie w języku C++ Klasy w C++
Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń
Programowanie obiektowe
Wykład 12 Marcin Młotkowski 16 maja 2018 Plan wykładu 1 Analiza obiektowa Dziedziczenie Dziedziczenie a składanie 2 Marcin Młotkowski 482 / 537 Dziedziczenie Dziedziczenie a składanie Plan wykładu 1 Analiza
Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:
Typy klasowe (klasy) 1. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą obiektów
10. Programowanie obiektowe w PHP5
Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE
Programowanie obiektowe w języku
Programowanie obiektowe w języku C++ Stanisław Gepner sgepner@meil.pw.edu.pl Dziedziczenie Wstęp Zacznijmy od przykładu Przykład rolniczy Każde zwierzątko wydaje dźwięk Każde się tak samo porusza Musimy
Programowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki
Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas
Zaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 3 - polimorfizm. dr inż. Robert Nowak - p. 1/14 Powtórzenie Powtórzenie: klasy autonomiczne: konstruktor, konstruktor kopiujacy, operator przypisania, destruktor
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
KLASY, INTERFEJSY, ITP
KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/
UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.
UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami
Podstawy programowania III
Podstawy programowania III Jan Kazimirski 1 Opis zajęć Zastosowanie funkcji i obiektów w PHP powtórzenie zagadnień. Dostęp do bazy danych PostgreSQL z poziomu skryptu PHP. Wprowadzenie do języka SQL. Przykłady
Programowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
MAS dr. Inż. Mariusz Trzaska. Realizacja różnych modeli dziedziczenia w obiektowych językach programowania
MAS dr. Inż. Mariusz Trzaska Wykład 10 Realizacja różnych modeli dziedziczenia w obiektowych językach programowania Zagadnienia o o o o o o Omówienie różnych rodzajów dziedziczenia, klas abstrakcyjnych
Programowanie obiektowe
Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami
Programowanie obiektowe
Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Programowanie obiektowe i zdarzeniowe
Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie
Języki i techniki programowania Ćwiczenia 3 Dziedziczenie
Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Klasa abstrakcyjna Autor: Marcin Orchel Klasa abstrakcyjna to taka, że nie możemy tworzyć obiektów tej klasy, możemy jednak dziedziczyć po tej
Programowanie obiektowe
Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc
Technologia Programowania 2016/2017 Wykład 4
Technologia Programowania 2016/2017 Wykład 4 Wzorce projektowe GoF Jakub Lemiesz Wzorce GRASP a wzorce GoF Znamy 9 wzorców GRASP ogólne zasady Na GRASP opierają się klasyczne wzorce GoF Na wzorcach GoF
C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU
Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale
C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm POLIMORFIZM
POLIMORFIZM Podstawowe pytanie, które nieustannie ma towarzyszyć autorowi programowi: czy gdyby nagle okazało się, że jest więcej... (danych na wejściu, typów danych, czynności, które program ma wykonać,
PARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Programowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Programowanie obiektowe
Programowanie obiektowe Wykład 3: Tworzenie i usuwanie obiektów 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 1 Deklaracje pól klasy class Klasa1 { int i; Klasa2 k = new Klasa2(); char c= x ; byte
Programowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Szablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Współbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);
1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); a) b) c) d) 2. Jaki będzie wynik kompilacji i wykonania
Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com
Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.
C++ - DZIEDZICZENIE Do najważniejszych cech języka C++ należy możliwość wielokrotnego wykorzystywania kodu Prymitywnym, ale skutecznym sposobem jest kompozycja: deklarowanie obiektów wewnątrz innych klas,
.NET Klasy, obiekty. ciąg dalszy
.NET Klasy, obiekty ciąg dalszy Przeciążanie operatorów 1 W języku C# istnieje możliwość zdefiniowania funkcjonalności dużej części operatorów dla typów stworzonych przez użytkownika. Dzięki takiemu zabiegowi,
Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this
Wstęp do programowania obiektowego WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this 1 Nazwa typu Rozmiar Zakres Uwagi bool 1 bit wartości true albo false stdbool.h TYPY ZNAKOWE
Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java
Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment
Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.
1/8 Singleton Cel: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej. Przykład: Niekiedy ważne jest, aby tworzyć tylko jedną instancję jakiejś klasy. Globalne zmienne
Java: interfejsy i klasy wewnętrzne
Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania
Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np
Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami
Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017
Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania
Składnia C++ Programowanie Obiektowe Mateusz Cicheński
Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Konstruktory i destruktory
Wzorce projektowe. dr inż. Marcin Pietroo
Wzorce projektowe dr inż. Marcin Pietroo Wzorce projektowe Wzorzec projektowy (ang. design pattern) w inżynierii oprogramowania, rozwiązanie często pojawiających się, powtarzalnych problemów projektowych.
Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26
Programowanie w C++ Wykład 13 Katarzyna Grzelak 4 czerwca 2018 K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Klasy abstrakcyjne i interfejsy
Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
PHP 5 język obiektowy
PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje
Pola i metody statyczne. Klasy zawierające pola i metody statyczne
Instrukcja laboratoryjna nr 1 Programowanie w języku C 2 (C++ poziom zaawansowany) Pola i metody statyczne. Klasy zawierające pola i metody statyczne dr inż. Kaczmarek Tomasz mgr inż. Lasota Maciej dr
Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Przydzielanie pamięci Poniżej przedstawiono w C++ dwie klasy obrazujące sposób rezerwacji pamięci. class Osoba char imie[30];
Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
Programowanie w Internecie. Java
Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java
Programowanie obiektowe
Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje
Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład V - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Programowanie obiektowe Dziedziczenie (inheritance) - mechanizm
Dawid Gierszewski Adam Hanasko
Dawid Gierszewski Adam Hanasko Chcemy stworzyć klasę w której możemy przechowywać dwie zmienne dowolnych typów Tworzymy tyle różnych klas ile potrzeba: Class ParaInt{ int pierwszy; Int drugi; Class ParaButow{