Programowanie obiektowe w Perlu

Podobne dokumenty
Technologie i usługi internetowe cz. 2

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Kompozycja i dziedziczenie klas

Polimorfizm, metody wirtualne i klasy abstrakcyjne

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

Wykład 8: klasy cz. 4

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

Enkapsulacja, dziedziczenie, polimorfizm

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Programowanie Obiektowe i C++

Programowanie Obiektowe i C++

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

Języki i metody programowania Java. Wykład 2 (część 2)

Programowanie obiektowe

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

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

Definiowanie własnych klas

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

PODSTAWOWE ZASADY PROGRAMOWANIA OBIEKTOWEGO NA BAZIE PAKIETU ROOT

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Języki i metody programowania Java Lab2 podejście obiektowe

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

Oracle PL/SQL. Paweł Rajba.

Dziedziczenie. dr Jarosław Skaruz

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

Programowanie obiektowe w C++ Wykªad 4

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

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

PARADYGMATY PROGRAMOWANIA Wykład 4

10. Programowanie obiektowe w PHP5

Zaawansowane programowanie w C++ (PCP)

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Podstawy Języka Java

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

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

Java Język programowania

Programowanie obiektowe w języku

TEMAT : KLASY DZIEDZICZENIE

Podstawy programowania w języku C++ Zadania - dziedziczenie i polimorfizm

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

Dziedziczenie jednobazowe, poliformizm

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

1 Atrybuty i metody klasowe

Wykład 5: Klasy cz. 3

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

Wyliczanie wyrażenia obiekty tymczasowe

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

Wykład 4: Klasy i Metody

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy WSKAŹNIKI KLASOWE

PARADYGMATY PROGRAMOWANIA Wykład 3

Zaawansowane programowanie w C++ (PCP)

Platformy Programistyczne Podstawy języka Java

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

Model obiektu w JavaScript

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

UML w Visual Studio. Michał Ciećwierz

Podstawy programowania III

Programowanie obiektowe

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

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

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

Wprowadzenie do programowanie obiektowego w języku C++

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

Paradygmaty programowania

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

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

DOSTĘP DO METOD I ZMIENNYCH. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla każdego, Helion 2001)

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

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )

Programowanie obiektowe

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

Materiały do zajęć VII

Programowanie obiektowe

Kompozycja i dziedziczenie klas

Programowanie Komputerów

Wstęp do Programowania 2

Kurs WWW. Paweł Rajba.

Klasy i obiekty cz II

Wzorce projektowe. dr inż. Marcin Pietroo

Mechanizm dziedziczenia

PHP 5 język obiektowy

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

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie obiektowe i zdarzeniowe

Podstawy Programowania semestr drugi. Wykład czternasty

Szablony klas, zastosowanie szablonów w programach

Programowanie, część I

Przeciążanie operatorów

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

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

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java:

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Wykład 9: Polimorfizm i klasy wirtualne

Programowanie w Internecie. Java

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

dr inż. Jarosław Forenc

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

Transkrypt:

Programowanie obiektowe w Perlu Piotr Wydrych http://www.kt.agh.edu.pl/~wydrych/ Wydziaª Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Telekomunikacji 30 kwietnia 2009 1/26

Obiekty, klasy, metody Obiekt to struktura danych wraz z zestawem metod wykonuj cych operacje na danej strukturze. Klasa deniuje zestaw metod wykonuj cych operacje na obiektach danej klasy i klas pochodnych (dziedzicz cych). W Perlu obiektem jest referencja przypisana do klasy. Klas jest pakiet. Metod jest funkcja, oczekuj ca jako pierwszego argumentu: nazwy pakietu, je»eli jest to funkcja statyczna; referencji przypisanej do danej klasy. 5/26

Obiekty W Perlu obiektem jest referencja przypisana do klasy. Przypisanie to tworzy funkcja bless. bless bless REF bless REF, CLASSNAME Wersja jednoargumentowa przypisuje referencj do bie» cego pakietu. Wersja dwuargumentowa: przypisuje referencj do pakietu podanego jako drugi argument; pozwala na tworzenie dziedziczonych konstruktorów. 6/26

Klasy W Perlu klas jest pakiet. W ka»dym pakiecie tablica @ISA odpowiedzialna jest za dziedziczenie. Przykªad package Prostokat; use Czworobok; our @ISA = qw(czworobok); 1; Je»eli wywoªywana funkcja nie istnieje w pakiecie, szukana jest w pakietach wymienionych pakietach. Perl pozwala na dziedziczenie wielokrotne. 7/26

Metody W Perlu metod jest funkcja, oczekuj ca jako pierwszego argumentu: nazwy pakietu, je»eli jest to funkcja statyczna; referencji przypisanej do danej klasy. Przykªad sub liczbakatow() { my $class = shift;... sub pole() { my $self = shift;... 8/26

Metody wykonywanie Istniej dwa sposoby zapisu wykonania metody. Prostszy, cz stszy i czytelniejszy za pomoc operatora ->. Kompilator Perla zadba o dodanie na pierwszym miejscu listy argumentów odpowiednio nazwy klasy lub referencji. Przykªad print Czworobok->liczbaKatow; print $mojkwadrat->pole; 9/26

Konstruktory Poj cie konstruktora jest w Perlu umowne. Konstruktor jest metod statyczn tworz c now referencj i zwracaj c j po uprzednim przypisaniu do klasy. Przykªad sub new { my $class = shift; my $self = {; $self->{parametr = shift; bless $self, $class; return $self; 11/26

Destruktory Kiedy nie zostanie ju»»adna referencja wskazuj ca na obiekt, jest on niszczony. Przed zniszczeniem wykonywana jest funkcja DESTROY. Przykªad sub DESTROY { my $self = shift; close $self->{filehandle; 12/26

Przykªad Klasa Czworobok posiada metody opisz, parametry (opisuj c sªownie warto±ci parametrów) i pole. opisz korzysta z parametry. Klasa Rownoleglobok dziedziczy po klasie Czworobok. Posiada metody new, parametry i pole. Konstruktor przyjmuje trzy argumenty podstaw, wysoko± i k t. Je»eli trzeci argument nie jest podany, konstruktor zakªada warto± 90 dla k ta. 15/26

Przykªad c.d. Klasa Prostokąt korzysta z dziedziczonego konstruktora klasy Rownoleglobok. Posiada metod parametry, która korzysta z metody parametry klasy nadrz dnej. Klasa Kwadrat posiada wªasny konstruktor korzystaj cy z konstruktora klasy Prostokąt. Posiada tak»e metod parametry. 16/26

Przykªad Czworobok.pm package Czworobok; use strict; use warnings; sub opisz { my $self = shift; return sprintf Jestem %s o parametrach: %s, ref($self), $self->parametry; sub parametry { my $self = shift; return n/n ; sub pole { my $self = shift; return undef; 1; 18/26

Przykªad Rownoleglobok.pm package Rownoleglobok; use strict; use warnings; use Czworobok; our @ISA = qw(czworobok); sub new { my $class = shift; my $self = {; $self->{podstawa = shift; $self->{wysokosc = shift; $self->{kat = shift; $self->{kat = 90 if not defined $self->{kat; bless $self, $class; return $self; 19/26

Przykªad Rownoleglobok.pm c.d. sub parametry { my $self = shift; return sprintf podstawa: %0.2f, wysokosc: %0.2f, kat: %d, $self->{podstawa, $self->{wysokosc, $self->{kat; sub pole { my $self = shift; return $self->{podstawa * $self->{wysokosc; 1; 20/26

Przykªad Prostokat.pm package Prostokat; use strict; use warnings; use Rownoleglobok; our @ISA = qw(rownoleglobok); sub parametry { my $self = shift; return $self->super::parametry. (oczywiscie) ; 1; 21/26

Przykªad Kwadrat.pm package Kwadrat; use strict; use warnings; use Prostokat; our @ISA = qw(prostokat); sub new { my $class = shift; my $bok = shift; my $self = Prostokat->new($bok, $bok); bless $self, $class; return $self; sub parametry { my $self = shift; return sprintf bok: %0.2f, $self->{ podstawa; 1; 22/26

Bibliograa Autor nieznany perlobj - Perl objects. http://perldoc.perl.org/perlobj.html. 23/26