Programowanie obiektowe

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

Podstawy i języki programowania

Kurs WWW. Paweł Rajba.

Enkapsulacja, dziedziczenie, polimorfizm

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Dokumentacja do API Javy.

Aplikacje w środowisku Java

Technologie i usługi internetowe cz. 2

Podstawy i języki programowania

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

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

Rozdział 4 KLASY, OBIEKTY, METODY

Programowanie obiektowe

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

Materiały do zajęć VII

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

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

Programowanie obiektowe

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

Klasy abstrakcyjne, interfejsy i polimorfizm

PHP 5 język obiektowy

Definiowanie własnych klas

Informatyka II Laboratorium 3 : Programowania obiektowe C++ - dziedziczenie

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Aplikacje w środowisku Java

Dziedziczenie. dr Jarosław Skaruz

Programowanie obiektowe

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Podstawy Języka Java

Polimorfizm. dr Jarosław Skaruz

Java Język programowania

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

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

.NET Klasy, obiekty. ciąg dalszy

Programowanie obiektowe

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Programowanie obiektowe

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

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

Klasy i obiekty cz II

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Programowanie w Internecie. Java

OBIEKTY PHP. G. Panuś

Dziedziczenie jednobazowe, poliformizm

Podstawy programowania III

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

TEMAT : KLASY DZIEDZICZENIE

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Programowanie obiektowe

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

Programowanie obiektowe

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

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

Podstawy i języki programowania

Programowanie urządzeń mobilnych

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

Dziedziczenie. Tomasz Borzyszkowski

Podstawy Programowania Obiektowego

Definiowanie własnych klas

Laboratorium 1 - Programowanie proceduralne i obiektowe

Do czego służą klasy?

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

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

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

Wykład 4: Klasy i Metody

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

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

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

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

Definicje klas i obiektów. Tomasz Borzyszkowski

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

KLASY cz.1. Dorota Pylak

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h

Java: interfejsy i klasy wewnętrzne

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Wstęp do programowania obiektowego. Wykład 2

Multimedia JAVA. Historia

PARADYGMATY PROGRAMOWANIA Wykład 2

Wykład 6: Dziedziczenie

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Do czego służą klasy?

Przypomnienie o klasach i obiektach

Java SE Laboratorium nr 2. Temat: Obiektowość

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.

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

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Programowanie obiektowe

Programowanie obiektowe - zadania

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

Dziedziczenie. Ogólna postać dziedziczenia klas:

Kompozycja i dziedziczenie klas

Mechanizm dziedziczenia

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

Programowanie komputerowe. Zajęcia 7

Programowanie obiektowe i zdarzeniowe

Transkrypt:

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

Informacje wstępne Konwencja nazewnictwa Nazwy klas zapisywane są w notacji PascalCase (NazwaKlasy). Nazwy metod i zmiennych zapisywane są w notacji camelcase (jakaszmienna). Nazwy stałych zapisywane są w notacji SCREAMING SNAKE CASE (TO STALA). 2 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Klasy Struktura klasy Klasa składa się z pól (zmiennych) oraz metod (funkcji). Ogólna struktura klasy: modyfikatordostepu class NazwaKlasy modyfikatordostepu typpola nazwapola ; modyfikatordostepu zwracanytyp nazwametody ( parametry ) return zmiennaozwracanymtypie ; Klasa może nie zawierać metod lub pól. Do pól odwołujemy się tak jak do zmiennych lub korzystając ze słowa this w następujący sposób: this.nazwapola; 3 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Klasy Modyfikator dostępu W Javie wyróżniamy cztery modyfikatory dostępu: 1 public - dostęp do niego ma każdy obiekt. 2 private - dostęp do niego ma wyłącznie właściciel. 3 protected - dostęp do niego ma właściciel, klasy dziedziczące po nim oraz klasy w tym samym pakiecie. 4 default - ustawiany jeżeli nie zadeklarujemy modyfikatora dostępu. Widoczność ograniczona jest do klas znajdujących się w tym samym pakiecie. 4 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Klasy Struktura klasy Każda klasa zawiera konstruktor - specyficzną metodę wywoływaną w momencie tworzenia obiektu. Sposób definiowania konstruktora: class NazwaKlasy NazwaKlasy () NazwaKlasy ( String zmienna ) Konstruktor, tak jak inne metody można przeciężać (ta sama nazwa metody przyjmująca różne parametry). 5 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Klasy Opis Hermetyzacja (enkapsulacja) polega na odizolowaniu pól i metod od innych klas udostępniając tylko niezbędne elementy. W praktyce polega na stosowaniu modyfikatorów typu private lub protected dla pól i niektórych metod (które nie muszą być używane z zewnątrz). Dostęp do prywatnych pól powinien odbywać się za pomocą metod zwracających i przypisujących odpowiednie wartości (tzw. gettery i settery). 6 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Przykład - hermetyzacja public class Pracownik private String imie ; public void ustawimie ( String imie ) this. imie = imie ; public String zwrocimie () return this. imie ; // return imie ; 7 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Przykład - konstruktor p u b l i c c l a s s Pracownik p r i v a t e S t r i n g i m i e ; Pracownik ( S t r i n g i m i e ) t h i s. i m i e=i m i e ; p u b l i c v o i d ustawimie ( S t r i n g i m i e ) t h i s. i m i e=i m i e ; p u b l i c S t r i n g zwrocimie ( ) r e t u r n t h i s. i m i e ; 8 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Przykład - użycie klasy p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) Pracownik naszpracownik = new Pracownik ( Jan ) ; System. out. p r i n t l n ( naszpracownik. zwrocimie ( ) ) ; // Jan naszpracownik. ustawimie ( A n d r z e j ) ; System. out. p r i n t l n ( naszpracownik. zwrocimie ( ) ) ; // A n d r z e j 9 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Klasy Modyfikator static Modyfikator static wykorzystywany jest do stworzenia pola lub metody dostępnej dla każdej instancji klasy (obiektu). Takie pole/metoda istnieje zawsze (nawet jeżeli nie został utworzony obiekt danej klasy; analogicznie do klasy Math). Pole statyczne może być wykorzystywane jako licznik utworzonych instacji klasy. 10 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Dziedziczenie Dziedziczenie Dziedziczenie polega na przekazaniu wybranych cech danej klasy nadrzędnej (pól/metod) innym klasom. Klasy potomne mogą posiadać swoje pola oraz metody. Aby zastosować mechanizm dziedziczenia należy dopisać po nazwie klasy słowo extends i dopisać nazwę klasy, po której ma ona dziedziczyć. W Javie jedna klasa nie może dziedziczyć z kilku klas. 11 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Przykład public class Pracownik extends Czlowiek 12 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Konstrukcja super Konstrukcja super Aby jawnie wywołać konstruktor klasy bazowej możemy użyć konstrukcji super() (super jest referencją do rodzica - za jej pomocą możemy też wywołać np. przesłoniętą metodę klasy bazowej). Przyjmuje ona jako parametry odpowiednie wartości wymagane przez dany konstruktor klasy bazowej. 13 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Przykład public class Pracownik extends Czlowiek Pracownik ( String imie, String nazwisko, char plec ) super (imie, nazwisko, plec ); 14 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Zadania 1 Napisz klasę Czlowiek zawierającą pola reprezentujące imię oraz nazwisko. Pamiętaj o hermetyzacji i stwórz konstruktor przyjmujący obie wartości oraz konstruktor bezparametrowy ustawiający domyślne wartości pól oraz wypisujący informację Stworzono obiekt klasy Czlowiek. 2 Napisz klasę Pracownik dziedziczącą po klasie Czlowiek, zawierającą dodatkowo pole pensja. Pamiętaj o hermetyzacji. Niech zawiera ona konstruktor przyjmujący wartość reprezentującą pensję. Utwórz obiekt klasy Pracownik. 15 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Przesłanianie metod Przesłonięcie metody polega na ponownym zaimplementowaniu odziedziczonej metody. Aby przesłonić metodę wystarczy ją zapisać tradycyjnie w klasie potomnej, jednakże zaleca się dodanie wyrażenia @Override. Niezależnie od sposobu zapisu musi zawierać ona taką samą nazwę, liczbę oraz typ argumentów, zwracać taki sam typ (lub podtyp) oraz nie może zawierać zawężonego specyfikatora dostępu. Przy wywołaniu metody klasy potomnej wykona się przesłoniony kod. 16 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Przykład public class Pracownik extends Czlowiek @Override public String zwrocimie () return this. imie ; 17 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Zadania 1 Napisz publiczną metodę przedstawsie w klasie Czlowiek, która wypisze na ekran jego imię oraz nazwisko. Niech konstruktor domyślny wywołuje ją. 2 Przeciąż metodę przedstawsie w klasie Pracownik. Niech wypisuje ona na ekran informację Wywołał Pracownik. 18 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Część praktyczna 1 Wykonaj zadania ze strony 116 i 117 ze skryptu: http://w.s.w.w.interia.pl/skrypt.pdf 19 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Dziękuję za uwagę 20 / 20 mgr inż. Krzysztof Szwarc Programowanie obiektowe