java wyklad 1

background image

Programowanie.

Wykład 1. Wprowadzenie.

Mgr.inż. Aleksander Bielski

alex@iis.pwsz.elblag.pl

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

1

background image

Program wykładu

1) wprowadzenie do programowania
obiektowego:

Ewolucja metod programowania

Krótki przegląd wybranych

języków programowania

OOA-OOP-OOD

2) Charakterystyczne cechy

programowania obiektowego.

Klasy i obiekty

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

2

dziedziczenie

enkapsulacja (ukrywanie

implementacji)

kontrola dostępu

3) Java jako język programowania

obiektowego – przegląd

możliwości.

background image

Ewolucja metod programowania

Język maszynowy

Kod asemblerowy

Języki ogólnego przeznaczenia: Fortran, PL/1, COBOL

Programowanie strukturalne

Języki do programowania dużych systemów: C

Języki do nauki programowania: Pascal, Algol

Języki do zastosowań specjalnych: GPSS, LISP, PROLOG,

ADA

Języki obiektowe: C++, SmallTalk, Java

Języki IV generacji i narzędzia RAD: Delphi, JavaBuilder,

C++ Bilder, Visual C itd.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

3

background image

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

4

Asembler - przykład

Fragment
kodu do
obliczania
ciągu liczb
Fibonacciego

background image

C: przykład

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

5

background image

LISP: przykład

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

6

background image

PROLOG: przykład

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

7

background image

Złożoność oprogramowania

Złożoność problemów które potrafimy rozwiązać zależy

od poziomu i jakości abstrakcji dostarczonej przez

dany język.

abstrakcja wykonawcza

abstrakcja problemowa

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

8

background image

Abstrakcja problemowa

Każdy język jest odpowiedni dla pewnej (wąskiej)

klasy problemów.

Rozwiązywanie problemów spoza danej klasy jest

nieefektywne lub niemożliwe.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

9

background image

Abstrakcja problemowa: języki programowania

LISP

– problemy wyrażone listami

PROLOG

– problemy wyrażone przy pomocy reguł

logicznych

AWK

– przetwarzanie plików tekstowych

GPSS

– modelowanie procesów dyskretnych

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

10

background image

OOA-OOP-OOD

Fazy w cyklu rozwojowym oprogramowania

obiektowego:

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

11

OOA

– Analiza obiektowa

(Object Oriented Analysis

OOD

– Projektowanie Obiektowe

(Object Oriented Design)

OOP

– P rogramowanie Obiektowe

(Object Oriented Programming)

background image

OOA

-OOD-OOP c.d.

Analiza obiektowa (OOA)

– faza w cyklu

rozwojowym oprogramowania obiektowego, w
której w sposób formalny określa się
wymagania

i

strukturę

rozwiązywanego

problemu.

Cele OOA:

wyodrębnienie klas i obiektów

określenie związków między obiektami

przedstawienie zachowania obiektów

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

12

background image

OOA-

OOD

-OOP c.d.

Projektowanie obiektowe (OOD)

- metoda

projektowania obejmująca proces dekompozycji
obiektowej

oraz

notacje

dla

opisania

logicznej i fizycznej struktury systemu oraz
statycznych i dynamicznych modeli systemu w
czasie projektowania.

Notacja obejmuje schematy klas, schematy

obiektów , schematy modułów i schematy
procesów.

Dekompozycja obiektowa – proces podziału

systemu

na

części,

z

której

każda

reprezentuje klasę lub obiekt z dziedziny
problemu.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

13

background image

OOA-OOD-

OOP

c.d.

Programowanie obiektowe (OOP)

- jest to

metoda implementacji, w której programy są
organizowane jako współdziałające zespoły
obiektów,

z

których

każdy

jest

przedstawicielem pewnej klasy.

Cechy OOP: hierarchia klas, dziedziczenie,

polimorfizm.

Obiekt

– pojęcie lub obiekt materialny,

który może być wyodrębniony z otoczenia.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

14

background image

Podejście Obiektowe

1.wszystko jest obiektem
2.program jest zbiorem obiektów które

wysyłają sobie komunikaty

3.każdy obiekt posiada pamięć na którą

składają się inne obiekty

4.każdy obiekt posiada swój typ
5.wszystkie obiekty tego samego typu mogą

otrzymywać te same komunikaty

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

15

background image

Obiekty...

Obiekt ma stan, zachowanie i

tożsamość:

stan

- dane wewnętrzne

zachowanie

- zestaw metod

(funkcji) do wykonania

tożsamość

- każdy obiekt można

w sposób jednoznaczny odróżnić

od innych obiektów

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

16

background image

Klasy i obiekty: definicje

Klasa

– definicja zbioru podobnych obiektów. Wszystkie

obiekty tej samej klasy mają jednakową strukturę i
zachowania.

Klasy mogą być:

abstrakcyjne – taka klasa jest wzorcem dla innych
podklas
grupowe (ang. container class) – obiekty takiej klasy są
kolekcjami innych obiektów.
podstawowe (ang. base class) – najbardziej ogólna
klasa w strukturze klas, często jest zdefiniowana jako
nadklasa (superklasa) dla wszystkich innych klas.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

17

background image

OOA-OOD-

OOP

c.d.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

18

System biblioteczny.
Przykładowy diagram
klas i związków między
nimi wykonany przy
użyciu jednego z
narzędzi

CASE

.

background image

Dziedziczenie

Dziedziczenie (ang. Inheritance)

– związek

pomiędzy klasami, w którym dana klasa przejmuje

strukturę albo zachowanie zdefiniowane w innej

klasie lub klasach.

Wyróżnia się dziedziczenie proste (jednokrotne) i

dziedziczenie wielokrotne.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

19

background image

Enkapsulacja

Enkapsulacja (ang. Encapsulation)

– oznacza sposób

chowania wszystkich szczegółów obiektu, które nie wnoszą
wkładu do jego podstawowej charakterystyki. Zwykle ukryta
jest struktura obiektu i implementacja jego metod.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

20

Przykładowa klasa Book

background image

Enkapsulacja i kontrola dostępu

Przykład w języku C++:

class Book
{
private:

char *title;

char *author;

char *isbn;


public:

char *getTitle();

char *getAuthor();

char *getISBN();

void setTitle(char*);
void setAuthor(char*);
void setISBN(char*);
}

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

21

Przykład w języku Java:

class Book {

private String title;
private String author;
private String isbn;

public String getTitle();
public String getAuthor();
public String getISBN();

public void setTitle(String);
public void setAuthor(String);
public void setISBN(String);

}

background image

Java jako język programowania obiektowego

Definicja klasy: interfejs i implementacja.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

22

Interfejs ustala jakie żądania można wysyłać pod adresem
obiektu.

Nazwa typu

Interfejs

background image

Implementacja obiektu w Javie

Utworzenie obiektu klasy:

Zarowka zr = new Zarowka();

Wysyłamy żądanie do obiektu:

zr.zapal();

Implementacja

- to kod umożliwiający wykonanie

żądań przez obiekt.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

23

background image

Ukrywanie danych i kontrola dostępu w Javie

Zalety ukrywania implementacji:

ochrona danych i szczegółów implementacji przed
ingerencją z zewnątrz

możliwość zmiany implementacji klas bez wpływu na
poprawność działania aplikacji

ukrywanie nieistotnych szczegółów implementacji

Java obsługuje kilka poziomów kontroli dostępu:

public

- dostępne dla każdego

private

- tylko twórca klasy

protected

- dostęp mają tylko dana klasa i klasy

dziedziczące

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

24

background image

Dziedziczenie: przykład

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

25

Figura

narysuj()

wymaz()

przesun()

zwrocKolor()

ustawKolor()

Okrag

Trojkat

Kwadrat

Z figury bazowej wywodzimy różne figury konkretne

background image

Dziedziczenie: dodawanie nowych metod

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

26

Figura

narysuj()

wymaz()

przesun()

zwrocKolor()

ustawKolor()

Okrag

Trojkat

Kwadrat

odwrocPoziomo()

odwrocPionowo()

background image

Dziedziczenie: przesłanianie metod

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

27

Figura

narysuj()

wymaz()

przesun()

zwrocKolor()

ustawKolor()

Okrag

Trojkat

Kwadrat

Rysuj()

wymaz()

Rysuj()

wymaz()

Rysuj()

wymaz()

background image

Wymienialność obiektów

Obiekt jest reprezentantem typu bazowego

Kod jest niezależny od konkretnego typu

Tworzenie klas abstrakcyjnych

Problem kompilatora:

jaki kod ma zostać wykonany

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

28

background image

Rozwiązanie: sposób wiązania

Polimorfizm

– pojęcie teorii typów wg którego sposób

wykonania danej operacji zależy od typu obiektu.

Wczesne wiązanie

– kompilator generuje wywołanie funkcji,

program łączący (linker) zamienia nazwę na konkretny
adres.

Późne wiązanie

– kompilator umieszcza zamiast wywołania

metody fragment kodu, który przeprowadza obliczenie
adresu metody dopiero w czasie działania programu.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

29

background image

Polimorfizm - przykład

Metoda działająca na dowolnej figurze :

void zrobCos(Figura f) {

f.wymaz();

...

f.narysuj()

}

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

30

background image

Polimorfizm – przykład c.d.

Tworzenie i użycie konkretnych figur:

Okrag o = new Okrag();

Trojkat t = new Trojkat();
Linia L = new Linia();
zrobCos(o);

zrobCos(t);
zrobCos(L);

Działa bez względu na typ obiektu.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

31

background image

Abstrakcyjne klasy i metody

Klasa abstrakcyjna:

nie posiada obiektów
używana do tworzenia interfejsów klas pochodnych

Metody abstrakcyjne:

nie została zaimplementowana
można stworzyć jedynie wewnątrz klasy abstrakcyjnej

Dziedziczenie po klasie abstrakcyjnej:

metoda abstrakcyjna musi zostać zaimplementowana
klasa potomna jest abstrakcyjna (brak implementacji
metody)

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

32

background image

Tworzenie obiektów

1.Metoda statyczna

Na stosie lub w obszarze statycznym.
Metoda szybka, programista musi sam zwolni
pamięć.

2.Metoda dynamiczna (Java)

Tworzenie dynamiczne obiektów na stercie.
Ilość i czas życia obiektów nieznany do czasu

wykonania.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

33

background image

Czas życia obiektów

Metoda statyczna:

kompilator wyznacza czas trwania obiektu, i sam
go niszczy.

Metoda dynamiczna:

czas nieznany.

Java:

odśmiecacz pamięci, który wykrywa i usuwa

obiekty nieużywane.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

34

background image

Odśmiecacz pamięci

Odśmiecacz pamięci:

wykrywanie które obiekty sa nieużywane

zwalnianie pamięci po tych obiektach

Upraszcza

problemy

projektowe,

zapobiega

przeciekom pamięci.

Cena:

nieprzewidywalność

czasu

wykonania

przez

działanie odśmiecacza.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

35

background image

Wyjątki

Obsługa

błędów

wymuszona

przez

język

programowania:

wyjątek jest obiektem
sygnalizowany z miejsca błędu
przechwytywany przez odpowiednią procedurę
obsługi

Alternatywna ścieżka sterowania programu, w
przypadku wykrycia błędów.

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

36

background image

Współbieżność

Wielowątkowość: kilka wykonań równoległych
wielowątkowość jest częścią języka

wątek jest obiektem

blokowanie obiektów współdzielonych

programowanie niezależne od faktycznej liczby
procesorów

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

37

background image

Trwałość

obiekt istnieje tak długo jak go potrzebujemy, ale
nigdy dłużej niż wykonanie programu

obiekty trwałe są zapisywane, a następnie

odczytywane z dysku

obiekty trwałe przechowują wartość pomiędzy
wykonaniami programu

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

38

background image

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

39

background image

Platforma J2SE

Platforma Javy J2SE zawiera:

Środowisko

Java Runtime Environment (RE)

zawiera biblioteki, virtualną maszynę Javy oraz
inne komponenty niezbędne do uruchomienia
apletów i aplikacji.

Java 2

Software Development Kit (SDK)

– zawiera

wszystko co jest w J2RE plus narzędzia do

tworzenia apletów i oprogramowania (kompilatory,
debuggery)

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

40

background image

Java VM

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

41

background image

Java i inne języki

PWSZ, Elbląg, Instytut Informatyki Stosowanej 2004 r. Mgr. Inż. Aleksander Bielski

42


Wyszukiwarka

Podobne podstrony:
java wyklad3 0
java wyklad 4 0
Java wykłady1, Java wykłady:
java wyklad2
Java wykład 3, Java wykład 2
java wyklad
wyklad5.cpp, JAVA jest językiem programowania obiektowego
Java podstawy jezyka wyklad1
Wykład 9 wątki java
Napęd Elektryczny wykład
wykład5
Psychologia wykład 1 Stres i radzenie sobie z nim zjazd B
Wykład 04

więcej podobnych podstron