GEANT4. Leszek Adamczyk. Geometria detektora

Wielkość: px
Rozpocząć pokaz od strony:

Download "GEANT4. Leszek Adamczyk. Geometria detektora"

Transkrypt

1 GEANT4 Leszek Adamczyk Geometria detektora

2 Geometria detektora Trzy poziomy definicji geometrii: G4VSolid kształt, rozmiar G4LogicalVolume materiał, wizualizacja, G4VPhysicalVolume położenie, orientacja G4VSolid G4LogicalVolume G4VPhysicalVolume G4Box G4Material G4VisAttributes G4PVPlacement G4Tubs G4VSensitiveDetector G4PVParameterised

3 Typowa strategia G4VSolid * solidworld = new G4Box( "World", //its name WorldSizeX/2,WorldSizeYZ/2,WorldSizeYZ/2); //its size G4LogicalVolume * logicworld = new G4LogicalVolume( solidworld, //its solid defaultmaterial, //its material "World"); //its name G4VPhysicalVolume * physiworld = new G4PVPlacement( 0, //no rotation G4ThreeVector(), //at (0,0,0) logicworld, //its logical volume "World", //its name 0, //its mother volume false, //no boolean operation 0); //copy number Każdy obszar jest umieszczany wewnątrz obszaru matki. Pozycja i orientacja obszaru określana jest względem lokalnego układu współrzędnych obszaru matki. Początek układu jest środkiem obszaru matki. Obszar nie może wystawać poza obszar matki

4 Hierarchia geometrii detektora

5 Hierarchia geometrii detektora Jeden obszar logiczny może być umieszczony więcej niż jeden raz Kilka obszarów może być umieszczonych w jednym obszarze logicznym Jeśli obszar matka jest umieszczony kilka razy to z definicji wszystkie obszary córki pojawią się w każdej kopii obszaru matki. Obszar world musi być jeden i zawierać całkowicie wszystkie pozostałe. Obszar world definiuje globalny układ współrzędnych Pozycje cząstek, depozytów energii podawane są względem globalnego układu współrzędnych

6 G4VUserDetectorConstruction Definicja:, materiałów, geometrii,... Należy wyprowadzić z abstrakcyjnej klasy G4VUserDetectorConstruction klasę pochodną Zaimplementować funkcję Construct() Opis klasy G4VUserDetectorConstruction (Software Reference Manual) Class Description: This is the abstract base class of the user's mandatory initialization class for detector setup. It has only one pure virtual method Construct() which is invoked by G4RunManager when it's Initialize() method is invoked. The Construct() method must return the G4VPhysicalVolume pointer which represents the world volume.

7 examplen03.: GNUmakefile examplen03.cc include src./include: ExN03DetectorConstruction.hh ExN03EventAction.hh ExN03PhysicsList.hh ExN03PrimaryGeneratorMessenger.hh ExN03SteppingAction.hh deklaracja klasy pochodnej ExN03DetectorMessenger.hh ExN03EventActionMessenger.hh ExN03PrimaryGeneratorAction.hh ExN03RunAction.hh ExN03SteppingVerbose.hh definicja klasy pochodnej./src: ExN03DetectorConstruction.cc ExN03EventAction.cc ExN03PhysicsList.cc ExN03PrimaryGeneratorMessenger.cc ExN03SteppingAction.cc ExN03DetectorMessenger.cc ExN03EventActionMessenger.cc ExN03PrimaryGeneratorAction.cc ExN03RunAction.cc ExN03SteppingVerbose.cc

8 examplen03.cc // Set mandatory initialization classes // ExN03DetectorConstruction* detector = new ExN03DetectorConstruction; runmanager->setuserinitialization(detector); // // Initialize G4 kernel // runmanager->initialize(); Wywołanie konstruktora klasy ExN03DetectorConstruction ExN03DetectorConstruction::ExN03DetectorConstruction {...} Wywołanie funkcji ExN03DetectorConstruction::Construct {...} Materiały, geometria mogą być zdefiniowane w dowolnej z powyższych funkcji (lub innej funkcji wywoływanej przez powyższe dwie). Musimy jednak zapewnić aby funkcja Construct wzracała wskaźnik do obszaru fizycznego world. Ten obiekt reprezentuje cały nasz detektor

9 ExN03DetectorConstruction.hh #ifndef ExN03DetectorConstruction_h #define ExN03DetectorConstruction_h 1 #include "G4VUserDetectorConstruction.hh class ExN03DetectorConstruction : public G4VUserDetectorConstruction { public: ExN03DetectorConstruction(); //konstruktor ~ExN03DetectorConstruction(); //destruktor G4VPhysicalVolume * Construct(); //funkcja Construct public: inne funkcje lub dane publiczne (jeśli potrzebne) private: inne funkcje lub dane prywatne (jeśli potrzebne) void DefineMaterials(); }; #endif G4VPhysicalVolume* ConstructCalorimeter(); // meteriały // geometria

10 ExN03DetectorConstruction.cc #include "ExN03DetectorConstruction.hh"... ExN03DetectorConstruction::ExN03DetectorConstruction():Lista inicjalizacji {... DefineMaterials();... } ExN03DetectorConstruction::~ExN03DetectorConstruction() {...} G4VPhysicalVolume* ExN03DetectorConstruction::Construct() {return ConstructCalorimeter();}... void ExN03DetectorConstruction::DefineMaterials() {... // definicje materiałów } G4VPhysicalVolume* ExN03DetectorConstruction::ConstructCalorimeter() {...// definicja geometrii detektora }......

11 Bryły Wszystkie bryły w GEANT4 są wyprowadzone z abstrakcyjnej klasy bazowej G4VSolid. Klasa ta deklaruje (ale nie implementuje) wszystkie funkcje potrzebne do: Obliczenia odległości bryły od dowolnego punktu Obliczenie wektora normalnego do powierzchni bryły w dowolnym punkcie Sprawdzenia czy dany punkt znajduje się wewnątrz bryły Obliczenia objętości, pola powierzchni,... Użytkownik może zdefiniować swoją własną klasę

12 Bryły elementarne Prostopadłościan G4Box(const G4String& pname, // name G4double px, // half length in X G4double py, // half length in Y G4double pz) // half length in Z Wycinek powłoki cylindrycznej G4Tubs(const G4String& pname, // name G4double prmin, // inner radius G4double prmax, // outer radius G4double pdz, // half length in Z G4double psphi, // the starting phi angle G4double pdphi) // the angle of the segment

13 Inne bryły elementarne G4Cons powłoka stożkowa G4Orb pełna sfera G4Para graniastosłup G4Sphere powłoka sferyczna Opis wszystkich brył Rozdział Przewodnika dla twórców aplikacji G4Torus torus G4Trap ostrosłup G4Trd ostrosłup foremny

14 Bryły specjalne Wielostożek G4Polycone(const G4String& pname, // name G4double phistart, // starting phi angle G4double phitotal, // total phi angle G4int numrz, // number of corners in R-Z space const G4double r[], // r coordinate of corners const G4double z[]) // z coordinate of corners

15 Inne bryły specjalne G4Polyhedra G4Ellipsoid G4TwistedTrap G4EllipticalTube Opis wszystkich brył Rozdział Przewodnika dla twórców aplikacji G4Paraboloid G4Hype G4TwistedBox

16 Bryły reprezentowane przez ich granice Można zdefiniować bryłę podając wszystkie płaszczyzny które ją ograniczają Płaszczyzny mogą być płaskie, zakrzywione, płaty Beziera

17 Bryły powstałe z operacji logicznych Dwie bryły mogą być łączone za pomocą operacji logicznych: G4UnionSolid, G4SubtractionSolid, G4IntersectionSolid - druga bryła pozycjonowana jest względem lokalnego układu współrzędnych pierwszej Union Subtraction Intersection

18 Bryły powstałe z operacji logicznych przykład G4Box* box = new G4Box("Box",20*mm,30*mm,40*mm); G4Tubs* cyl = new G4Tubs("Cylinder",0,50*mm,50*mm,0,twopi); // r: G4UnionSolid* union = new G4UnionSolid("Box+Cylinder", box, cyl); G4IntersectionSolid* intersection = new G4IntersectionSolid("Box*Cylinder", box, cyl); G4SubtractionSolid* subtraction = new G4SubtractionSolid("Box-Cylinder", box, cyl); 0 mm -> 50 mm // z: -50 mm -> 50 mm // phi: 0 -> 2 pi Lokalny układ współrzędnych powstałej bryły jest taki sam jak pierwszej bryły

19 Obszar logiczny G4LogicalVolume( G4VSolid* psolid, G4Material* pmaterial, const G4String& Name, G4FieldManager* pfieldmgr=0, G4VSensitiveDetector* psdetector=0, G4UserLimits* pulimits=0) Obszar logiczny posiada pełną informację o obszarze oprócz jego położenia i orientacji: kształt, rozmiar, materiał, pole magnetyczne, atrybut obszaru czułego detektora, atrybuty wizualizacji, warunki produkcji cząstek, pozycje i orientacje obszarów córek.

20 Objętość i ciężar obszaru logicznego Objętość bryły można obliczyć za pomocą funkcji składowej G4VSolid::GetCubicVolume() Dla większości elementarnych brył objętość jest obliczana analitycznie dla pozostałych metodą Monte Carlo Ciężar obszaru logicznego można obliczyć przy użyciu funkcji składowej: G4LogicalVolume::GetMass()

21 Obszar fizyczny Obszary fizyczne dzielimy na: - jednokrotny : obszar umieszczony jednokrotnie jeden fizyczny obszar = jeden obszar rzeczywisty - wielokrotny : obszar umieszczany wielokrotnie jeden fizyczny obszar = wiele obszarów rzeczywistych Obszary wielokrotne ze względu na sposób repetycji dzielimy na: - parametryzowane w funkcji numeru kopii - powielane wzdłuż jednej osi Obszar matka może zawierać: - albo wiele obszarów jednokrotnych - albo jeden obszar wielokrotny

22 Obszar fizyczny (przegląd) G4PVPlacement reprezentuje obszar jednokrotny G4PVParameterised reprezentuje obszar wielokrotny parametryzowany numerem kopii - kształt, rozmiar, materiał,... mogą być parametryzowane numerem kopii - powielane obszary mogą zawierać w sobie obszary wnuczki o ile wnuczki mają identyczne rozmiary i kształty - wymaga implementacji klasy G4PVParameterisation

23 Obszar fizyczny (przegląd) G4PVReplica (obszar wielokrotny) obszary córki mające ten sam kształt ustawiane są wzdłuż jednej osi i wypełniają cały obszar matki bez żadnych przerw G4PVDivision (obszar wielokrotny) tak jak G4PVReplica ale dopuszcza istnienie przerwy między brzegiem obszaru matki a najbardziej zewnętrznymi córkami, brak przerw między córkami G4ReflectionFactory (para obszarów) umożliwia umieszczenie obszaru i jego odbicia G4AssemblyVolume (wiele obszarów) umożliwia umieszczenie jednokrotnych obszarów połączonych w grupę

24 G4PVPlacement G4PVPlacement( G4RotationMatrix* prot, // obrót układu matki const G4ThreeVector& tlate, // pozycja w obróconym układzie G4LogicalVolume* pcurrentlogical, const G4String& pname, G4LogicalVolume* pmotherlogical, G4bool pmany, // false G4int pcopyno, // dowolna unikalna liczba całk. G4bool psurfchk=false ) Mother volume rotation translation in rotated frame

25 G4PVPlacement - II Tra = G4Transform3D ( G4RotationMatrix &prot //obrót układu córki const G4ThreeVector &tlate) // pozycja w układzie matki G4PVPlacement( G4Transform3D Tra, // transformacja córki G4LogicalVolume* pcurrentlogical,... Mother Mother volume volume rotatio n translation in mother frame

26 G4PVPlacement przykład examplen03 physicalor = new G4PVPlacement( 0, //no rotation G4ThreeVector(0,0,0),//at (0,0,0) logiccalor, //its logical volume "Calorimeter", //its name logicworld, //its mother volume false, //no boolean operation 0); //copy number

27 G4PVParameterised G4PVParameterised( const G4String& pname, G4LogicalVolume* pdlogical, G4LogicalVolume* pmlogical, const EAxis paxis, const G4int n, G4VPVParameterisation* pparam, G4bool psurfchk=false ) Umieszcza obszar (pdlogical), n razy używając parametryzacji (pparam) wewnątrz obszaru matki (pmlogical) paxis sugeruje wzdłuż której osi będą powielane obszary (kxaxis, kyaxis, kzaxis, kundefined)

28 G4PVParameterised Użytkownik musi zaimplementować klasę wyprowadzoną z klasy G4VPVParameterisation oraz zdefiniować następujące wielkości w funkcji numeru kopii: - położenie i orientacje ComputeTransformation - opcjonalnie rozmiar ComputeDimensions kształt ComputeSolid materiał ComputeMaterial Wszystkie kopie muszą zawierać się w obszarze matki i nie nachodzić na siebie

29 G4PVParameterised: przykład examplen02 Tarcza + układ 5 komór śladowych o rosnących rozmiarach poprzecznych

30 ExN02DetectorConstruction.cc solidchamber = new G4Box("chamber", 100*cm, 100*cm, 10*cm); logicchamber = new G4LogicalVolume(solidChamber,ChamberMater,"Chamber",0,0,0); chamberparam = new ExN02ChamberParameterisation( NbOfChambers, // NoChambers firstposition, // Z of center of first ChamberSpacing, // Z spacing of centers ChamberWidth, // Width Chamber firstlength, // lengthinitial lastlength); // lengthfinal physichamber = new G4PVParameterised( "Chamber", // their name logicchamber, // their logical volume LogicTracker, // Mother logical volume kzaxis, // Are placed along this axis NbOfChambers, // Number of chambers chamberparam); // The parametrisation

31 ExN02ChamberParameterisation.hh... class ExN02ChamberParameterisation : public G4VPVParameterisation { public: ExN02ChamberParameterisation(G4int NoChambers, G4double startz, G4double spacing, G4double widthchamber, G4double lengthinitial, G4double lengthfinal ); virtual ~ExN02ChamberParameterisation(); void ComputeTransformation (const G4int copyno, G4VPhysicalVolume* physvol) const; void ComputeDimensions (G4Box & trackerlayer, const G4int copyno, const G4VPhysicalVolume* physvol) const;...};

32 ExN02ChamberParameterisation.cc... ExN02ChamberParameterisation::ExN02ChamberParameterisation( G4int NoChambers, G4double startz, // Z of center of first G4double spacingz, // Z spacing of centers G4double widthchamber, G4double lengthinitial, G4double lengthfinal ) { fnochambers = NoChambers; fstartz = startz; fhalfwidth = widthchamber*0.5; fspacing = spacingz; fhalflengthfirst = 0.5 * lengthinitial;... }

33 ExN02ChamberParameterisation.cc void ExN02ChamberParameterisation::ComputeTransformation (const G4int copyno, G4VPhysicalVolume* physvol) const { G4double Zposition= fstartz + (copyno+1) * fspacing; G4ThreeVector origin(0,0,zposition); physvol->settranslation(origin); physvol->setrotation(0); } void ExN02ChamberParameterisation::ComputeDimensions (G4Box& trackerchamber, const G4int copyno, const G4VPhysicalVolume*) const { G4double halflength= fhalflengthfirst + copyno * fhalflengthincr; trackerchamber.setxhalflength(halflength); trackerchamber.setyhalflength(halflength); trackerchamber.setzhalflength(fhalfwidth); }

34 G4PVReplica Obszar matki musi być całkowicie wypełniony kopiami o takich samych rozmiarach (szerokościach) i kształtach Powielanie może się odbywać wzdłuż: - osi układu kartezjańskiego (X,Y,Z), powielane plastry są prostopadłe do tej osi a lokalny układ współrzędnych związany jest ze środkiem plastra - osi radialnej (R), powielane wycinki stożka/cylindra są współosiowe i nieobrócone a układy współrzędnych kopii są takie same jak obszaru matki - osi kąta azymutalnego (Phi), powielane wycinki stożka /cylindra są współosiowe i obracane o stały kąt a lokalny układ współrzędnych kopii jest obrócony względem układu matki w taki sposób, że oś X dzieli na pół każdy klin

35 G4PVReplica G4PVReplica( const G4String& pname, G4LogicalVolume* pcurrentlogical, G4LogicalVolume* pmotherlogical, const EAxis paxis, const G4int nreplicas, const G4double width, const G4double offset=0 ) - Obszar matka może sam być klasy G4PVReplica - Obszar klasy G4Placement może znajdować się w powielanym obszarze o ile powielanie nie następuje wzdłuż osi radialnej -Obszar klasy G4Parameterised nie może znajdować się w powielanym obszarze

36 G4PVReplica paxis, width, offset Osie kartezjańskie paxis=kxaxis (YZ) offset musi mieć wartość 0 Oś radialna paxis=kraxis offset musi być równy wewnętrznemu promieniowi obszaru matki Oś kąta azymutalnego paxis=kphi offset musi być równy początkowemu kątowi obszaru matki width width offset width offset

37 G4PVReplica przykład ExN03DetectorConstruction.cc solidlayer = new G4Box("Layer", //its name LayerThickness/2,CalorSizeYZ/2,CalorSizeYZ/2); //size logiclayer = new G4LogicalVolume(solidLayer, //its solid defaultmaterial, //its material "Layer"); //its name width physilayer = new G4PVReplica("Layer", //its name logiclayer, //its logical volume logiccalor, //its mother kxaxis, //axis of replication NbOfLayers, //number of replica LayerThickness); //witdth of replica physiabsorber = new G4PVPlacement(0, //no rotation G4ThreeVector(-GapThickness/2,0.,0.), //its position logicabsorber, //its logical volume AbsorberMaterial->GetName(), //its name logiclayer, //its mother offset false, //no boulean operat 0); //copy number

Środowisko programistyczne GEANT4

Środowisko programistyczne GEANT4 Środowisko programistyczne GEANT4 Leszek Adamczyk Wydział Fizyki i Informatyki Stosowanej Akademia Górniczo-Hutnicza Wykłady w semestrze zimowym 2013/2014 Geometria: G4VUserDetectorConstruction Definicje

Bardziej szczegółowo

GEANT4. Leszek Adamczyk. Interfejs użytkownika -2 Geometria -2

GEANT4. Leszek Adamczyk. Interfejs użytkownika -2 Geometria -2 GEANT4 Leszek Adamczyk Interfejs użytkownika -2 Geometria -2 Polecenia interfejsu użytkownika UI kurier (G4UIMessenger) Obiekt Polecenia (target class) G4UIManager polecenie (G4UICommand) parametr (G4UIparameter)

Bardziej szczegółowo

Środowisko programistyczne GEANT4

Środowisko programistyczne GEANT4 Środowisko programistyczne GEANT4 Leszek Adamczyk Wydział Fizyki i Informatyki Stosowanej Akademia Górniczo-Hutnicza Wykłady w semestrze zimowym 2013/2014 G4VHit - przykład Przykład z warsztatów implementacji

Bardziej szczegółowo

GEANT4. Leszek Adamczyk. Przykład budowy aplikacji Interfejs użytkownika Wizualizacje

GEANT4. Leszek Adamczyk. Przykład budowy aplikacji Interfejs użytkownika Wizualizacje GEANT4 Leszek Adamczyk Przykład budowy aplikacji Interfejs użytkownika Wizualizacje Ćwiczenie 1 Proszę zalogować się na serwer fatcat ssh @fatcat.ftj.agh.edu.pl Ustawić zmienne środowiskowe cd

Bardziej szczegółowo

Środowisko programistyczne GEANT4

Środowisko programistyczne GEANT4 Środowisko programistyczne GEANT4 Leszek Adamczyk Wydział Fizyki i Informatyki Stosowanej Akademia Górniczo-Hutnicza Wykłady w semestrze zimowym 2015/2016 Wyniki symulacji Majac zdefiniowaną: geometrię;

Bardziej szczegółowo

Środowisko programistyczne GEANT4

Środowisko programistyczne GEANT4 Środowisko programistyczne GEANT4 Leszek Adamczyk Wydział Fizyki i Informatyki Stosowanej Akademia Górniczo-Hutnicza Wykłady w semestrze zimowym 2015/2016 Analiza danych GEANT 4 nie ma rozbudowanego systemu

Bardziej szczegółowo

Środowisko programistyczne GEANT4

Środowisko programistyczne GEANT4 Środowisko programistyczne GEANT4 Leszek Adamczyk Wydział Fizyki i Informatyki Stosowanej Akademia Górniczo-Hutnicza Wykłady w semestrze zimowym 2013/2014 GEANT4: Symulacje przejścia czastek przez materię

Bardziej szczegółowo

Środowisko programistyczne GEANT4

Środowisko programistyczne GEANT4 Środowisko programistyczne GEANT4 Leszek Adamczyk Wydział Fizyki i Informatyki Stosowanej Akademia Górniczo-Hutnicza Wykłady w semestrze zimowym 2013/2014 Generacja czastek pierwotnych Użytkownik musi

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

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

Bardziej szczegółowo

BRYŁY PODSTAWOWE I OBIEKTY ELEMENTARNE

BRYŁY PODSTAWOWE I OBIEKTY ELEMENTARNE Przemysław KLOC, Krzysztof KUBISTA BRYŁY PODSTAWOWE I OBIEKTY ELEMENTARNE Streszczenie: Niniejszy rozdział dotyczy wykorzystania brył podstawowych i obiektów elementarnych podczas modelowania 3D. Napisany

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Zaawansowane programowanie w C++ (PCP) Wykład 6 - szablony. dr inż. Robert Nowak - p. 1/15 Kolekcje i algorytmy» Deklaracja szablonu y Pojęcia niezależne od typu: kolekcje (np. listy) algorytmy (np. znajdowania

Bardziej szczegółowo

Mechanizm dziedziczenia

Mechanizm dziedziczenia Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia

Bardziej szczegółowo

PHP 5 język obiektowy

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

Bardziej szczegółowo

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

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

Bardziej szczegółowo

Wykład 4: Klasy i Metody

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

Bardziej szczegółowo

Wykład 2 Układ współrzędnych, system i układ odniesienia

Wykład 2 Układ współrzędnych, system i układ odniesienia Wykład 2 Układ współrzędnych, system i układ odniesienia Prof. dr hab. Adam Łyszkowicz Katedra Geodezji Szczegółowej UWM w Olsztynie adaml@uwm.edu.pl Heweliusza 12, pokój 04 Spis treści Układ współrzędnych

Bardziej szczegółowo

Dokumentacja do API Javy.

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

Bardziej szczegółowo

Język C++ zajęcia nr 2

Język C++ zajęcia nr 2 Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 7

Programowanie komputerowe. Zajęcia 7 Programowanie komputerowe Zajęcia 7 Klasy Klasy to typy danych, które pozwalają na zgromadzenie w jednej zmiennej (obiekcie) zarówno danych jak i operacji związanych z tymi danymi. Obiekt danej klasy może

Bardziej szczegółowo

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? 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

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

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

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 4. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Przeciążanie operatorów Funkcje zaprzyjaźnione Na

Bardziej szczegółowo

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Programowanie w C++ Wykład 12 Katarzyna Grzelak 28 maja 2018 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Klasy cd K.Grzelak (Wykład 12) Programowanie w C++ 2 / 27 Klasy - powtórzenie Klasy typy definiowane

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 2

PARADYGMATY PROGRAMOWANIA Wykład 2 PARADYGMATY PROGRAMOWANIA Wykład 2 Definiowanie klas w C++ - ciąg dalszy Lista inicjalizująca konstruktora Przeznaczenie - do inicjalizacji pól klasy z kwalifikatorem const i inicjalizacji obiektów składowych

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja

Bardziej szczegółowo

Klasy abstrakcyjne, interfejsy i polimorfizm

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

Bardziej szczegółowo

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Programowanie w C++ Wykład 11 Katarzyna Grzelak 13 maja 2019 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Klasy cd K.Grzelak (Wykład 11) Programowanie w C++ 2 / 30 Klasy - powtórzenie Klasy typy definiowane

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Układy współrzędnych

Układy współrzędnych Układy współrzędnych Układ współrzędnych matematycznie - funkcja przypisująca każdemu punktowi danej przestrzeni skończony ciąg (krotkę) liczb rzeczywistych zwanych współrzędnymi punktu. Układ współrzędnych

Bardziej szczegółowo

Materiały do zajęć VII

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

Bardziej szczegółowo

Wykład 5: Więcej o Klasach i Metodach

Wykład 5: Więcej o Klasach i Metodach Wykład 5: Więcej o Klasach i Metodach Przeciążanie Metod Klasa posiada dwie lub więcej metod o tej samej nazwie ale różnych deklaracjach parametrów. Java używa liczby i typów argumentów by ustalić którą

Bardziej szczegółowo

Wstęp do Programowania 2

Wstęp do Programowania 2 Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 5 W programowaniu obiektowym programista koncentruje się na obiektach. Zadaje sobie pytania typu:

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

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

Bardziej szczegółowo

Programowanie 2. Język C++. Wykład 9.

Programowanie 2. Język C++. Wykład 9. 9.1 Ukrywanie metod, metody nadpisane... 1 9.2 Metody wirtualne, wirtualny destruktor... 2 9.3 Metody czysto wirtualne... 6 9.4 Klasy abstrakcyjne... 7 9.5 Wielodziedziczenie... 9 9.1 Ukrywanie metod,

Bardziej szczegółowo

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

Operator przypisania. Jest czym innym niż konstruktor kopiujący! Operator przypisania Jest czym innym niż konstruktor kopiujący! Domyślnie jest zdefiniowany jako przypisanie składowa po składowej (zatem niekoniecznie bajt po bajcie). Dla klasy X definiuje się jako X&

Bardziej szczegółowo

WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY CZWARTEJ H. zakres rozszerzony. Wiadomości i umiejętności

WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY CZWARTEJ H. zakres rozszerzony. Wiadomości i umiejętności WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY CZWARTEJ H. zakres rozszerzony Funkcja wykładnicza i funkcja logarytmiczna. Stopień Wiadomości i umiejętności -definiować potęgę

Bardziej szczegółowo

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis. Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,

Bardziej szczegółowo

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

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

Bardziej szczegółowo

METODY MATEMATYCZNE I STATYSTYCZNE W INŻYNIERII CHEMICZNEJ

METODY MATEMATYCZNE I STATYSTYCZNE W INŻYNIERII CHEMICZNEJ METODY MATEMATYCZNE I STATYSTYCZNE W INŻYNIERII CHEMICZNEJ Wykład 3 Elementy analizy pól skalarnych, wektorowych i tensorowych Prof. Antoni Kozioł, Wydział Chemiczny Politechniki Wrocławskiej 1 Analiza

Bardziej szczegółowo

PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.

PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. PROGRAMOWANIE OBIEKTOWE W C++ cz. 2 Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. Dziedziczenie Dziedziczenie jest to technika pozwalaj c na definiowanie nowej klasy przy wykorzystaniu

Bardziej szczegółowo

Mechanizm dziedziczenia

Mechanizm dziedziczenia Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

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

Bardziej szczegółowo

POLITECHNIKA SZCZECIŃSKA KATEDRA MECHANIKI I PODSTAW KONSTRUKCJI MASZYN

POLITECHNIKA SZCZECIŃSKA KATEDRA MECHANIKI I PODSTAW KONSTRUKCJI MASZYN POLITECHNIKA SZCZECIŃSKA KATEDRA MECHANIKI I PODSTAW KONSTRUKCJI MASZYN Ćwiczenie nr 9 Instrukcja do ćwiczeń laboratoryjnych Numeryczne metody analizy konstrukcji Wykorzystanie operacji boolowskich przy

Bardziej szczegółowo

Mobilne Aplikacje Multimedialne

Mobilne Aplikacje Multimedialne Mobilne Aplikacje Multimedialne Rozszerzona rzeczywistość (AR, Augmented Reality) w Systemie Android Cz.1 Krzysztof Bruniecki Podstawy Algebra liniowa, operacje na wektorach, macierzach, iloczyn skalarny

Bardziej szczegółowo

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

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

Bardziej szczegółowo

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14

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;

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 3

PARADYGMATY PROGRAMOWANIA Wykład 3 PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na

Bardziej szczegółowo

Wzorce logiki dziedziny

Wzorce logiki dziedziny Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class). Wprowadzenie w dziedziczenie Klasa D dziedziczy klasę B: B klasa bazowa D klasa pochodna Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class). Najpierw jest tworzona klasa bazowa,

Bardziej szczegółowo

Template method (metoda szablonowa)

Template method (metoda szablonowa) 1/11 Template method (metoda szablonowa) Cel: Definiuje szkielet algorytmu przy pomocy operacji podstawowych. Konkretyzacja poszczególnych kroków składowych pozostawiona klasom potomnym mogą być one zmieniane

Bardziej szczegółowo

Plik klasy. h deklaracje klas

Plik klasy. h deklaracje klas Plik klasy. h deklaracje klas KLASY DLA PRZYKŁADÓW Z POLIMORFIZMEM enum dim r1 = 1, r2, r3; class figura public: static int const maxliczbafigur; = 100; static int liczbafigur; dim rn; rodzaj przestrzeni

Bardziej szczegółowo

Dziedziczenie. Ogólna postać dziedziczenia klas:

Dziedziczenie. Ogólna postać dziedziczenia klas: Dziedziczenie Ogólna postać dziedziczenia klas: class nazwa_clasy_pochodnej : specyfikator_dostępu nazwa_clasy_bazowej specyfikator_dostępu : public private protected Specyfikator dostępu definiuje, w

Bardziej szczegółowo

Do czego służą klasy?

Do czego służą klasy? KLASY Dorota Pylak 2 Do czego służą klasy? W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można wykonywać

Bardziej szczegółowo

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 5 Okna MDI i SDI, dziedziczenie Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie

Bardziej szczegółowo

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Zaawansowane programowanie w języku C++ Programowanie obiektowe Zaawansowane programowanie w języku C++ Programowanie obiektowe Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka

Bardziej szczegółowo

KLASY cz.1. Dorota Pylak

KLASY cz.1. Dorota Pylak KLASY cz.1 Dorota Pylak Do czego służą klasy? 2 W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można

Bardziej szczegółowo

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

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 Przeciążanie operatorów Słowo

Bardziej szczegółowo

Wykład 8: klasy cz. 4

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

Bardziej szczegółowo

Podstawy programowania III

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

Bardziej szczegółowo

Programowanie 2. Język C++. Wykład 3.

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

Bardziej szczegółowo

Ćwiczenie nr 8 - Modyfikacje części, tworzenie brył złożonych

Ćwiczenie nr 8 - Modyfikacje części, tworzenie brył złożonych Ćwiczenie nr 8 - Modyfikacje części, tworzenie brył złożonych Wprowadzenie Utworzone elementy bryłowe należy traktować jako wstępnie wykonane elementy, które dopiero po dalszej obróbce będą gotowymi częściami

Bardziej szczegółowo

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium: Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Wprowadzenie do programowanie obiektowego w języku C++

Wprowadzenie do programowanie obiektowego w języku C++ Wprowadzenie do programowanie obiektowego w języku C++ Część czwarta Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

Kryteria oceniania z matematyki Klasa III poziom rozszerzony

Kryteria oceniania z matematyki Klasa III poziom rozszerzony Kryteria oceniania z matematyki Klasa III poziom rozszerzony Zakres Dopuszczający Dostateczny Dobry Bardzo dobry Funkcja potęgowa - zna i stosuje tw. o potęgach - zna wykresy funkcji potęgowej o dowolnym

Bardziej szczegółowo

Operatory na rzecz typu TString

Operatory na rzecz typu TString Operatory na rzecz typu TString Dopiszmy w definicji klasy operator[], dzięki któremu potraktujemy obiekt jak tablicę class TString { public: char& operator[]( size_t n ); const char& operator[]( size_t

Bardziej szczegółowo

Projektowanie klas c.d. Projektowanie klas przykład

Projektowanie klas c.d. Projektowanie klas przykład Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe

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

Bardziej szczegółowo

Programowanie Obiektowe i C++

Programowanie Obiektowe i C++ Programowanie Obiektowe i C++ Marcin Benke Instytut Informatyki UW 6.11.2006 Marcin Benke (IIUW) Programowanie Obiektowe i C++ 6.11.2006 1 / 138 Operator przypisania Jest czym innym niż konstruktor kopiujacy!

Bardziej szczegółowo

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Programowanie obiektowe, wykład nr 6. Klasy i obiekty Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto

Bardziej szczegółowo

Podstawy Programowania Obiektowego

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

Bardziej szczegółowo

Programowanie obiektowe Wykład 7. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20

Programowanie obiektowe Wykład 7. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Relacja ma Przykłady relacji typu ma : Student ma nazwisko Wielokąt ma wierzchołki (punkty) Stos ma elementy Dla obiektów

Bardziej szczegółowo

Do czego służą klasy?

Do czego służą klasy? KLASY Dorota Pylak 2 Do czego służą klasy? W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można wykonywać

Bardziej szczegółowo

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 współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

Bardziej szczegółowo

Układy współrzędnych GUW, LUW Polecenie LUW

Układy współrzędnych GUW, LUW Polecenie LUW Układy współrzędnych GUW, LUW Polecenie LUW 1 Układy współrzędnych w AutoCAD Rysowanie i opis (2D) współrzędnych kartezjańskich: x, y współrzędnych biegunowych: r

Bardziej szczegółowo

Układ współrzędnych dwu trój Wykład 2 "Układ współrzędnych, system i układ odniesienia"

Układ współrzędnych dwu trój Wykład 2 Układ współrzędnych, system i układ odniesienia Układ współrzędnych Układ współrzędnych ustanawia uporządkowaną zależność (relację) między fizycznymi punktami w przestrzeni a liczbami rzeczywistymi, czyli współrzędnymi, Układy współrzędnych stosowane

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

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

Bardziej szczegółowo

Projektowanie 3D Tworzenie modeli przez wyciągnięcie profilu po krzywej SIEMENS NX Sweep Along Guide

Projektowanie 3D Tworzenie modeli przez wyciągnięcie profilu po krzywej SIEMENS NX Sweep Along Guide Projektowanie 3D Narzędzie do tworzenia modeli bryłowych lub powierzchniowych o stałym przekroju opartych na krzywoliniowym profilu otwartym. Okno dialogowe zawiera następujące funkcje: Section wybór profilu

Bardziej szczegółowo

Definiowanie własnych klas

Definiowanie własnych klas Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:

Bardziej szczegółowo

.NET Klasy, obiekty. ciąg dalszy

.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,

Bardziej szczegółowo

Wykład 6: Dziedziczenie

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

Bardziej szczegółowo

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Konstruktory Konstruktory w językach obiektowych są to specjalne metody wywoływane podczas tworzenia nowego obiektu i służące do

Bardziej szczegółowo

Współbieżność w środowisku Java

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

Bardziej szczegółowo

Programowanie obiektowe

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;

Bardziej szczegółowo

ZADANIE 1 (5 PKT) ZADANIE 2 (5 PKT) Oblicz objętość czworościanu foremnego o krawędzi a.

ZADANIE 1 (5 PKT) ZADANIE 2 (5 PKT) Oblicz objętość czworościanu foremnego o krawędzi a. ZADANIE 1 (5 PKT) Czworościan foremny o krawędzi a rozcięto płaszczyzna prostopadła do jednej z krawędzi, przechodzac a w odległości 0, 25a od jednego końca tej krawędzi. Oblicz objętość otrzymanych brył.

Bardziej szczegółowo

1. Potęgi. Logarytmy. Funkcja wykładnicza

1. Potęgi. Logarytmy. Funkcja wykładnicza 1. Potęgi. Logarytmy. Funkcja wykładnicza Tematyka zajęć: WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY KL. 3 POZIOM PODSTAWOWY Potęga o wykładniku rzeczywistym powtórzenie Funkcja wykładnicza i jej własności

Bardziej szczegółowo

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu. .NET Klasy, obiekty Klasa i obiekt Każdy obiektowy język programowania daje programiście możliwość tworzenia nowych typów danych. Nowy typ danych definiuje się poprzez zdefiniowanie klasy. Co to jest klasa?

Bardziej szczegółowo

Programowanie 2. Język C++. Wykład Relacje między klasami, klasy zagnieŝdŝone, klasy lokalne

Programowanie 2. Język C++. Wykład Relacje między klasami, klasy zagnieŝdŝone, klasy lokalne 3.1 Relacje między klasami, klasy zagnieŝdŝone, klasy lokalne... 1 3.2 Zaprzyjaźnione klasy, specyfikator friend... 3 3.3 Zaprzyjaźnione funkcje, metody z klasą... 4 3.4 Relacje dziedziczenia... 6 3.5

Bardziej szczegółowo

Java: interfejsy i klasy wewnętrzne

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

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dziedziczenie Przestrzenie nazw Na podstawie: A.

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Polimorfizm. dr Jarosław Skaruz

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

Bardziej szczegółowo

Podstawy POV-Ray a. Diana Domańska. Uniwersytet Śląski

Podstawy POV-Ray a. Diana Domańska. Uniwersytet Śląski Podstawy POV-Ray a Diana Domańska Uniwersytet Śląski CSG (Constructive Solid Geometry) Większość kształtów takich jak sfera, prostopadłościan itp. dzielą świat na dwa regiony: region leżący wewnątrz i

Bardziej szczegółowo