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

Podobne dokumenty
Technologie i usługi internetowe cz. 2

Podstawy Języka Java

Podstawy Programowania Obiektowego

Programowanie obiektowe - 1.

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

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

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

Enkapsulacja, dziedziczenie, polimorfizm

Programowanie obiektowe

Język programowania. Andrzej Bobyk

Programowanie obiektowe

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Definiowanie własnych klas

Klasy abstrakcyjne, interfejsy i polimorfizm

Programowanie obiektowe

Dziedziczenie. dr Jarosław Skaruz

Materiały do zajęć VII

Podstawy i języki programowania

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

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

Polimorfizm. dr Jarosław Skaruz

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

Mechanizm dziedziczenia

Modelowanie i Programowanie Obiektowe

hierarchie klas i wielodziedziczenie

Programowanie obiektowe

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

Programowanie obiektowe

Java Język programowania

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Zaawansowane programowanie w języku C++ Programowanie obiektowe

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

Aplikacje w środowisku Java

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

Programowanie obiektowe i zdarzeniowe

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Programowanie obiektowe W1 Wprowadzenie. Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki

Mechanizm dziedziczenia

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Do czego służą klasy?

WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy

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

Java SE Laboratorium nr 2. Temat: Obiektowość

Definiowanie własnych klas

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

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

Programowanie obiektowe w języku

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

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

TEMAT : KLASY DZIEDZICZENIE

.NET Klasy, obiekty. ciąg dalszy

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

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

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Dziedziczenie. Zadanie 1

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

Dokumentacja do API Javy.

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

Klasy i obiekty cz II

PHP 5 język obiektowy

Klasy abstrakcyjne i interfejsy

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

Oracle PL/SQL. Paweł Rajba.

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

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

Programowanie obiektowe

KLASY, INTERFEJSY, ITP

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

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Technologie obiektowe

Wykład 7: Pakiety i Interfejsy

Modelowanie obiektowe

Programowanie, część I

Programowanie i projektowanie obiektowe

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

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Wykład 9: Polimorfizm i klasy wirtualne

KLASY cz.1. Dorota Pylak

Klasy cd. Struktury Interfejsy Wyjątki

Wykład 6: Dziedziczenie

Dziedziczenie. Tomasz Borzyszkowski

Kurs WWW. Paweł Rajba.

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

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

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

Języki programowania imperatywnego

Kompozycja i dziedziczenie klas

TEMAT : KLASY POLIMORFIZM

Wykład 4: Klasy i Metody

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

Wykład 5 Okna MDI i SDI, dziedziczenie

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Zaawansowane programowanie w C++ (PCP)

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ęzyki i metody programowania Java Lab2 podejście obiektowe

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

Transkrypt:

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

Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących stan (czyli dane, nazywane najczęściej polami) i zachowanie (czyli procedury, w tym wypadku nazywane: metodami). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań. Podejście to różni się od tradycyjnego programowania proceduralnego, gdzie dane i procedury nie są ze sobą bezpośrednio związane. Programowanie obiektowe ma ułatwić pisanie, konserwację i wielokrotne użycie programów lub ich fragmentów. 2

Główne cechy programowania obiektowego Abstrakcja Enkapsulacja Dziedziczenie Polimorfizm 3

Abstrakcja Każdy obiekt w programie (definiowany za pomocą abstrakcyjnego typu jakim jest klasa) służy jako model abstrakcyjnego "wykonawcy", który może wykonywać pracę, opisywać i zmieniać swój stan oraz komunikować się z innymi obiektami w systemie bez ujawniania, w jaki sposób zaimplementowane są jego cechy. 4

Klasa Punkt2D class Punkt2D { int x,y; } Punkt2D(int x, int y) { this.x = x; this.y = y; } 5

Ćwiczenie 1 1. Dopisz metody, które będą pobierać współrzędne x i y punktu. 2. Dopisz metody, które ustawią współrzędne x i y punktu na określoną wartość. 3. Dopisz metodę liczbawspolrzednych(), która pobierze liczbę współrzędnych punktu. 4. Przedefiniuj metodę tostring() tak aby wypisywała reprezentację punktu. 6

Enkapsulacja (hermetyzacja) Enkapsulacja (hermetyzacja) to ukrywanie implementacji. Zapewnia, że obiekt nie może zmieniać stanu wewnętrznego innych obiektów w nieoczekiwany sposób. Tylko własne metody obiektu są uprawnione do zmiany jego stanu. Każdy typ obiektu prezentuje innym obiektom swój interfejs, który określa dopuszczalne metody współpracy. W Javie klasycznie mamy cztery modyfikatory dostępu: private - do danych można się dostać tylko z wnętrza danej klasy public dane są ogólnie dostępne protected do danych można się dostać z wnętrza danej klasy, klas pochodnych i z klas tego samego pakietu package do danych można się dostać w obrębie tego samego pakietu 7

Ćwiczenie 2 1. Przerób klasę Punkt2D zachowując koncepcję enkapsulacji pól i metod. 2. Utwórz w klasie Punkt2D pole statyczne liczbapunktow które będzie zliczać liczbę utworzonych punktów w programie. 3. Utwórz w klasie Punkt2D metodę odlegloscodzera(), która wyznaczy odległość punktu od zera. 8

Dziedziczenie Dziedziczeniem (z ang. inheritance) w programowaniu obiektowym nazywamy mechanizm współdzielenia funkcjonalności pomiędzy klasami. Klasa może dziedziczyć po innej klasie, co oznacza, że oprócz swoich własnych atrybutów oraz zachowań, uzyskuje także te pochodzące z klasy, z której dziedziczy. Klasa dziedzicząca jest nazywana klasą pochodną lub potomną (z ang. subclass), klasa, z której następuje dziedziczenie jest nazywana klasą bazową (z ang. superclass). 9

Klasa Punkt3D (klasa rozszerzająca Punkt2D) public class Punkt3D extends Punkt2D{ private int z; public Punkt3D(int x, int y, int z) { super(x,y); this.z=z; } public int getz() { return z; } public void setz(int z) { this.z = z; } 10

Ćwiczenie 3 1. Przerób w klasie Punkt3D metodę liczbawspolrzednych() tak aby działała prawidłowo. 2. Przerób w klasie Punkt3D metodę tostring() aby prawidłowo zwracała reprezentację obiektu. 3. Przerób w klasie Punkt3D metodę odlegloscodzera(), która poprawnie wyznaczy odległość punktu od zera. 11

Polimorfizm Polimorfizm w programowaniu obiektowym to cecha dzięki której jedna metoda (o tej samej nazwie) może być stosowana do wykonania różnych zadań w zależności od tego na rzecz którego obiektu została wywołana. 12

Ćwiczenie 4 Tworzymy tablicę 10 elementową do przechowywania obiektów typu Punkt2D. Punkt2D[] tabpunktow = new Punkt2D[10]; W pętli dla i=1..10 losujemy liczbę p z przedziału [0,1]. Jeśli liczba p jest mniejsza od ½ to tworzymy obiekt typu Punkt2D(x,y), gdzie x pierwsza cyfra po przecinku liczby p, y druga cyfra po przecinku liczby p, jeśli z kolei liczba p jest większa równa od ½ to wówczas tworzymy obiekt typu Punkt3D(x,y,z), gdzie x pierwsza cyfra po przecinku liczby p, y druga cyfra po przecinku liczby p, z trzecia cyfra po przecinku liczby p. Wyświetl w pętli od 1..10 informację o liczbie współrzędnych każdego z utworzonych obiektów. Zauważ, że nie wiedząc czy na przykład pod tabpunktów[4] znajduje się obiekt typu Punkt2D czy Punkt3D program poprawnie wyświetla 2 lub 3 (to jest zaleta polimorfizmu właśnie.) 13

Praca domowa Dopisz w klasie Punkt2D metodę public double odl(punkt a){ } która obliczy odległość dwóch punktów: Punkt2D p1 = new Point2D(2,1); Punkt2D p2 = new Point2D(1,2); p1.odl(p2); Napisz teraz metodę boolean czytrojkat(p1,p2,p3) która sprawdzi, czy punkty p1, p2 i p3 są wierzchołkami trójkąta. 14