PODSTAWOWE ZASADY PROGRAMOWANIA OBIEKTOWEGO NA BAZIE PAKIETU ROOT

Podobne dokumenty
Zaawansowane programowanie w języku C++ Klasy w C++

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Wykład 8: klasy cz. 4

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Podstawy Programowania Programowanie Obiektowe

DYNAMICZNE PRZYDZIELANIE PAMIECI

Programowanie obiektowe - 1.

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

C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm POLIMORFIZM

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Oracle PL/SQL. Paweł Rajba.

Programowanie obiektowe

ZASADY PROGRAMOWANIA KOMPUTERÓW

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Programowanie, część I

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

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

KARTA KURSU. Programowanie obiektowe

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Wykład 1: Wskaźniki i zmienne dynamiczne

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

Scenariusz Web Design DHTML na 10 sesji. - Strony statyczne I dynamiczne. - Dodawanie kodu VBScript do strony HTML. Rysunek nie jest potrzebny

Programowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt

Deklaracja struktury w C++

Podstawy programowania obiektowego

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Podstawy Programowania Obiektowego

Definicje klas i obiektów. Tomasz Borzyszkowski

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Wykład 9: Polimorfizm i klasy wirtualne

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Modelowanie obiektowe

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

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

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Kurs WWW. Paweł Rajba.

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

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

Listy powiązane zorientowane obiektowo

1 Atrybuty i metody klasowe

PARADYGMATY PROGRAMOWANIA Wykład 4

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Dziedziczenie. dr Jarosław Skaruz

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie I C6

Programowanie obiektowe

Technologie i usługi internetowe cz. 2

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Programowanie obiektowe

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Ada-95. Dariusz Wawrzyniak

Projektowanie logiki aplikacji

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

10. Programowanie obiektowe w PHP5

Wstęp do programowania 2

Język programowania. Andrzej Bobyk

Język Java część 2 (przykładowa aplikacja)

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie II C16

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

Podstawy programowania. Podstawy C# Tablice

Oczywiście plik musi mieć rozszerzenie *.php

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

Podstawowe części projektu w Javie

Programowanie Obiektowe i C++

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

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

KOTLIN. Język programowania dla Androida

Wykład 6: Dziedziczenie

Programowanie obiektowe

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

MATERIAŁY DO ZAJĘĆ II

Programowanie obiektowe

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO

Wykład 3 Składnia języka C# (cz. 2)

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

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

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Programowanie, część I

Język Java część 2 (przykładowa aplikacja)

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Wstęp do Programowania 2

Analiza i projektowanie aplikacji Java

Zaawansowane programowanie w C++ (PCP)

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg

Java Język programowania

Transkrypt:

PODSTAWOWE ZASADY PROGRAMOWANIA OBIEKTOWEGO NA BAZIE PAKIETU ROOT Grzegorz Stefanek Jan Kochanowski University 1

Programowanie proceduralne 2

Programowanie proceduralne Programowanie proceduralne, choć powszechnie używane i szeroko rozpowszechnione ma pewne wady: jest nieczytelne dla złożonych projektów jest trudne w zarządzaniu jest dalekie od świata realnego inaczej mówiąc jest mało wygodne zarówno z punku widzenia użytkownika jak i programisty 3

Programowanie obiektowe Modularność i informacja ukryta w modułach/obiektach 4

Obiekty histogram Abstrakcyjny model obiektu histogram : variables = dane methods = operacje (interfejs) 5

Obiekty histogram Abstrakcyjny model obiektu histogram #bins 6

Klasy Typ danych histogram Nazwa klasy = new Typ Danych Metody Publiczne Kreator Obiektu Destruktor Obiektu Interfejs/Metody/ Funkcje Zmienne ukryte/ Dane 7

Typy danych i oznaczenia Klasy: T Typy niebędące klasami: _t Dane: f Stałe: k Zmienne globalne: g TH1, TAxis, TBrowser Int_t, Double_t fncell, farray kinitialsize, kred genv, groot Zmienne maszynowo niezależne: Char_t Character 1 byte CHRACTER*1 Short_t Integer 2 bytes INTEGER*2 Int_t Integer 4 bytes INTEGER*4 Float_t Float 4 bytes REAL*4 Double_t Float 8 bytes REAL*8 Bool_t Boolean (0=false, 1=true) LOGICAL 8

Typ danych histogram Klasy 9

Klasy - dziedziczenie Dziedziczenie TH1 ogólna klasa Główna klasa histogram : opisuje ogólne zachowanie klasa rodzic Klasy dzieci Grzegorz Stefanek ROOT An Object-Oriented Data Analysis Framework 10

Klasy - dziedziczenie Dla programisty: pozwala na ponowne użycie tego samego kodu programu lepszy wgląd w kod programu Dla użytkownika: pozwala na łatwy przegląd oprogramowania dostarcza ogólnego standardu użycia różnych obiektów komfort użycia 11

Klasy - dziedziczenie Publiczne oraz ukryte funkcje i dane klasy TH1 stają się funkcjami i danymi klasy TH1F 12

Klasy - dziedziczenie Przykładowe drzewo hierarchii w ROOT 13

Obiekt Obiekt jest elementem danej klasy (danego typu) 14

Tworzenie obiektu 1) Metoda statyczna tworzy statyczny obiekt myhisto typu TH1F Statyczny: nie może być usunięty w locie, jedynie przez program 15

Tworzenie obiektu 2) Metoda dynamiczna Linia1: deklaruje myhistoptr jako wskaźnik (=adres pamięci) typu TH1F Linia2: deklaruje obiekt i zwraca jego adres w pamięci Dynamiczna: obiekt może być wykreowany i usunięty w locie, przez użytkownika delete myhistoptr 16

Pamięć + Wskaźniki Tworzy wskaźnik (null) do typu TH1F 17

Pamięć + Wskaźniki Przydziela pamięć dla obiektu typu TH1F i zwraca adres 18

Pamięć + Wskaźniki Pamięć zostaje zwolniona i wskaźnik myhistoptr staje się równy NULL 19

Deklaracja w jednej linii: Pamięć + Wskaźniki lub w dwóch liniach: & = operator adresu * = operator dostępu pośredniego 20

Argumenty tworzonych obiektów Konstruktor jest często zapisywany w kilku wersjach, można wybrać najbardziej odpowiednia wersję przeciążanie konstruktora 21

Operacje na obiektach wypełnianie histogramów Również funkcje mogą być przeciążane 1) Obiekt statyczny 22

Operacje na obiektach wypełnianie histogramów Również funkcje mogą być przeciążane 1) Obiekt wskazywany przez wskaźnik: 23

Wskaźnik do wskaźnika - przykład 24

Przykład 25