Wybrane Dzial‚y Informatyki Stosowanej 2 wyklad

background image

WT PW – rok 2008/9

IS(U) – semestr 2 – Wykład 2

Wykład 2. Programowanie strukturalne

i obiektowe; środowisko języka Java

I.

Zasady programowania

1.

Programowanie strukturalne

2.

Założenia programowania obiektowego

II.

Java jako język obiektowy

1.

Struktura programów Javy

2.

Podstawowe elementy języka Java

III.

Implementacje języka Java

1.

Historia i współczesność języka Java

2.

Zintegrowane środowiska programistyczne Java 2

I.1

Programowanie strukturalne

i modularne

Ê

Strukturalizacja programów:

Ê

program złożony z niezależnych bloków: procedur, funkcji oraz

sekwencji instrukcji organizowanych w struktury

Ê

procedury i funkcje (czyli procedury zwracające wynik) mogą być

wielokrotnie wywoływane w programie

Ê

nazwy w programie są widoczne w obrębie bloku (i od miejsca), w

którym zostały zdefiniowane, np. wewnątrz procedury

Ê

Instrukcje organizują przebieg wykonania programu (kolejność

wykonania sekwencji instrukcji)

Ê

instrukcje strukturalne: iteracyjne (cykle obliczeń) i warunkowe

Ê

instrukcje wywołania procedur wykonują ich treść

Ê

wyrażenia występujące w instrukcjach mogą zawierać wywołania

funkcji, które wyliczają ich wartości

Ê

Programy złożone z niezależnie kompilowanych modułów

I.1.1

Cykle obliczeń:

iteracja i rekurencja

Ê

Obliczenia cykliczne:

podstawowy mechanizm automatyzacji obliczeń.

Ê

Iteracja to postępowanie polegające na wielokrotnym

powtarzaniu tego samego przekształcenia

Ê

w programowaniu - wielokrotne powtarzanie tej samej

sekwencji instrukcji.

Ê

Rekurencja to metoda obliczania wartości funkcji

z użyciem tej funkcji: f(x) = F(f(x’))

Ê

w programowaniu - wywołanie funkcji (tj. użycie jej nazwy) w bloku

instrukcji realizujących tę funkcję

Ê

wzajemna rekurencja: f(x) = F(g(y)); g(y) = G(f(x’))

I.1.2

Przykład 1-a: silnia iteracyjnie

function

Silnia_I

(

n

: Integer): Integer;

var

i

,

silnia

: Integer;

begin

„

silnia

:= 1;

„

for

i

:= 2 to

n

do

silnia

:=

silnia

*

i

;

„

Result:=

silnia

;

end;

START

pobierz

n

i + 1

Æ

i

silnia*i

Æ

silnia

N

i > n ?

1

Æ

silnia

2

Æ

i

T

zwróć

silnia

STOP

int

Silnia_I

(int

n

){

int

silnia = 1;

for(int

i

=

1

;i<=

n

;i++) {

silnia

=*

i

;

}

return

silnia

;

end;

funkcja

Pascala

metoda

Javy

Silnia

=?

n

=2 (>1)

Silnia_R

=2

//Pascal

function

Silnia_R

(

n

:Integer): Integer;

begin

„

if

n

>1 then

„

Result:=

n

*

Silnia_R

(

n

-1)

„

else Result:= 1;

end;

//Java

int

Silnia_R

(int

n

) {

if(

n

>1 ){

„

return

n

*

Silnia_R

(

n

-1)

„

} else return 1;

end;

Silnia

=?

n

=4 (>1)

Silnia

=?

n

=5 (>1)

Silnia

=?

n

=3 (>1)

Silnia_R

=1

n

=1

Silnia_R

=6

Silnia_R

=120

Silnia_R

=24

I.1.3

Przykład 1-b: silnia rekurencyjnie

Stos: SP

Parametry

dla kolejnych

wywołań funkcji są

umieszczane na

stosie, następnie

zdejmowane po

zakonczeniu

obliczeń.

Wyniki są konsu-

mowane przez

funkcję

wywolującą

I.2.1

Rozwój podejścia obiektowego

Ê

Simula 67: prekursor języków obiektowych

„

klasy obiektów, dziedziczenie, funkcje wirtualne

Ê

Języki o „czystej” orientacji obiektowej

„

Smalltalk (1980): OOP object-oriented programming

„

Eiffel (1985)

„

Java (1995)

Ê

Obiektowe rozwinięcia języków proceduralnych

„

C++ (1986)

„

Object Pascal (~1990) Æ Delphi

Ê

MS Windows, COM (Common Object Model)

„

Visual Basic (quasi-obiektowy)

Ê

Obiektowe narzędzia programowania sterowanego

zdarzeniami w środowisku graficznym

„

Visual C++

„

Delphi (1995)

„

Netbeans (2000)

background image

WT PW – rok 2008/9

IS(U) – semestr 2 – Wykład 2

I.2.2

Założenia „orientacji obiektowej”

Ê

Abstrakcja

„

programy operują na strukturach abstrakcyjnych obiektów

o określonych cechach i zachowaniu

Ê

Enkapsulacja (hermetyzacja, kapsułowanie)

„

sposób realizacji cech i zachowań jest ukryty wewnątrz

programowych reprezentacji obiektów

Ê

Kompozycja / dekompozycja

„

obiekty można łączyć w większe całości

lub dzielić na części składowe

Ê

Wielokrotne użycie

„

biblioteki obiektów, hierarchie klas obiektów

o różnym poziomie specjalizacji

I.2.3

Typowe cechy obiektowych

języków programowania

Ê

Orientacja obiektowa:

„

program jako struktura powiązanych wzajemnie obiektów

„

właściwości (properties, attributes) reprezentują ich cechy

„

metody (methods) reprezentują ich zachowania

Ê

Klasy i instancje (egzemplarze) obiektów

„

obiekty to instancje określonych klas (typów obiektowych)

tworzone na początku lub w trakcie wykonywania programu

Ê

Dziedziczenie i polimorfizm

„

cechy/zachowania dziedziczone od klasy przodka lub własne

Ê

Komunikacja między obiektami

„

wiadomości (messages)

przesyłane w toku wykonania programu

Ê

Rozwój w stronę GUI i programowania zdarzeniowego

„

obiekty z postacią graficzną oraz z metodami obsługi zdarzeń

Ê

Klasy obiektów w językach obiektowych dziedziczą

atrybuty i metody od bezpośrednich przodków

„

można definiować

z

klasy wyspecjalizowane, przejmujące
cechy klasy ogólnej

z

klasę ogólną, reprezentującą
wspólne cechy klas szczegółowych

I

.

2.4

Hierarchia

klas, dziedziczenie

Ê

Wielokrotne dziedziczenie

„

dostępne w niektórych językach

np. C++

„

w Javie i Delphi realizowane

częściowo przez tzw. interfejsy

I.2.5

Przykład dziedziczenia

OSOBA

Nazwisko,

Rok urodzenia

Wiek()

STUDENT

+ Plan zajęć,

Lista ocen

+ Średnia ocen()

PRACOWNIK

+ Lista zajęć,

Pensum

+ Nadgodziny()

TStudent =
class(TOsoba)

class

Student

extends

Osoba

TPracownik =
class(TOsoba)

class

Pracownik

extends

Osoba

NAZWA OBIEKTU

Właściwości …

Metody …

Ê

Java jest językiem „zorientowanym obiektowo”, opartym

głównie na C++ (składnia) i SmalTalk (zasady implementacji)

Ê

Prawie wszystkie wartości w programie Javy są obiektami, także

łańcuchy znaków i tablice, (wyjątkiem są typy proste)

Ê

Sam program Javy też jest obiektem i operuje na obiektach

Ê

W porównaniu z C++ Java jest zoptymalizowana. Usunięto

mechanizmy będące przyczyną częstych błędów programistycznych,

m.in.:

„

nie ma wskaźników; w Javie nazwy zmiennych obiektowych stanowią

referencje, czyli adresy istniejących obiektów

„

nie ma wielokrotnego dziedziczenia; klasa Javy może dziedziczyć

tylko od jednej klasy ”rodzicielskiej”

„

mechanizmy wielokrotnego dziedziczenia są częściowo zastępowane

przez tzw. interfejsy

II.1

Struktura programu w Javie

II.1.1

Klasy i obiekty w programie Javy

Ê

Programowanie w Javie polega na definiowaniu klas obiektów w
postaci, np.:

public class

Prostokąt

{

// deklaracje właściwości i metod definiowanej klasy obiektów

(w tym konstruktorów)

… //

public static void main(String[] arguments) {…}

}

Ê

Aby użyć w programie określonego obiektu, należy:

Ê

zadeklarować zmienną obiektową, podając jej klasę i nazwę

Ê

utworzyć instancję obiektu z pomocą konstruktora tej klasy

dwa różne

konstruktory

konstruktor to specjalna metoda, która

służy do tworzenia obiektów danej klasy

metoda

main()

umożliwia

wykonanie

programu

background image

WT PW – rok 2008/9

IS(U) – semestr 2 – Wykład 2

II.1.2

Deklaracje właściwości i metod

Ê

Klasa zawiera ciąg deklaracji i instrukcji, opisujących:

Ê

jej właściwości – nazwane wartości, czyli zmienne (lub stałe)

Ê

jej metody – konstruktory, procedury i funkcje

Ê

Deklaracje klas, właściwości i metod mogą się zaczynać od słów

kluczowych, które określają ich „widoczność” i inne cechy
np. public oznacza nieograniczoną dostępność, tj. możliwość
użycia wewnątrz dowolnej innej klasy (po dokonaniu importu)

Ê

Słowo kluczowe static poprzedza deklaracje właściwości

zmiennych i metod klasowych, których użycie nie wymaga

tworzenia instancji obiektu (np. funkcje matematyczne)

Ê

Słowo kluczowe

final

poprzedza deklaracje zmiennych ustalonych,

czyli wartości stałych, których nie można zmieniać w programie

II.1.3

Przykład deklaracji i użycia

właściwości i metod klasy Javy

public class

Prostokąt

{

public int

szerokość

;

public int

wysokość

;

public

Point

początek

;

public

Prostokąt

() {

początek = new

Point

(0, 0);

}
public

Prostokąt

(int

s

, int

w

) {

this(); //wywołuje konstruktor bez parametrów

szerokość = s;

wysokość = w;

}

//metoda obliczania powierzchni

public int

powierzchnia

() {

return

szerokość

*

wysokość;

}

}

zmienne

proste

kons-

truktory

funkcja

(

metoda

zwracają-

ca wynik

)

Ê

Odwołania do właściwości i

metod zmiennej klasowej są

kwalifikowane jej nazwą,

np. po deklaracjach:

Prostokąt A

= new

Prostokąt

();

Prostokąt B

= new

Prostokąt

(

50

,

100

);

poniższa instrukcja przypisania

A

.

wysokość

=

B

.

wysokość

;

nada prostokątowi A wysokość

prostokąta B

Ê

Wywołania funkcji występują

w wyrażeniach, np.:

int

p

=

B

.

powierzchnia

() *

20

;

zmienna

obiektowa

II.1.4

Aplety Javy i cykl ich działania

Ê

Aplet to obiekt Javy, wyposażony w graficzny interfejs, osadzony

w dokumencie HTML. K

lasy składowe apletu mogą być ładowane

dynamicznie przez sieć i uruchamiane lokalnie w przeglądarce

Ê

Aplety w odróżnieniu od aplikacji

nie posiadają metody main().

Główna klasa apletu jest

potomkiem predefiniowanej klasy

java.applet.Applet

Ê

Aplet dziedziczy szereg metod,

które są zdefiniowane w klasie

nadrzędnej, dzięki czemu posiada

m.in.:

ƒ

możliwość komunikowania

się z przeglądarką

ƒ

zdolność obsługi graficznego

interfejsu użytkownika

II.1.4

Główne metody apletu

Ê

Metoda init() wywoływana tylko raz w ciągu całego życia apletu, po

załadowaniu strony z apletem, zapoczątkowuje jego wykonywanie nadając

początkowe ustawienia czcionek, kolorów, koloru tła ekranu itp.

Ê

Metoda start(), wywoływana po wykonaniu metody init, uruchamia wątki

animacji, odtwarzania dźwięków i innych czynności apletu;

aplet wyposażony w metodę start() powinien mieć również w metodę stop();

metoda start() może być wielokrotnie wywoływana podczas cyklu życia

apletu, np. przy każdym powrocie na stronę z apletem

Ê

Metoda stop() jest wywoływana, gdy okno przeglądarki, w której znajduje się

aplet, jest minimalizowane do ikony, zasłaniane przez inne okno, lub przy

otwarciu nowej strony WWW; służy m.in. do zatrzymania wątków

Ê

Metoda destroy() jest wywoływana, gdy aplet kończy swoje działanie; rzadko

używana, ponieważ Java posiada mechanizm automatycznego zwalniania

nieużywanych zasobów pamięci

III.1.1

Historia języka Java

Ê

”Narodziny” Javy – 1990 rok, Sun Microsystems, Inc. Mountain

View, California.

Ê

Początkowa nazwa nowego języka – OAK

Ê

Przeznaczenie - programowanie inteligentnych

urządzeń domowego użytku (projekt Green).

Ê

Główny architekt Javy – James Gosling

Ê

W 1994 r. wstrzymano prace nad Javą. Przyczyna - brak

zainteresowania projektem Green ze strony znanych producentów

urządzeń

elektronicznych

Ê

Rozwój Internetu powoduje ponowne zainteresowanie się

językiem tworzącym przenośne programy.

Ê

1995 rok, konferencja w San Francisco - pierwsza publiczna

prezentacja Javy

kompilacja

JVM

javac nazwa_pliku.java

Pliki *.class

interpretacja przez JVM zainstalowaną na danej
platformie lub przeglądarce WWW

Pliki *.java

III.2.1

Zasada działania programów w Javie

„kod bajtowy”

- postać

półskompilowana

niezależność od

platformy

background image

WT PW – rok 2008/9

IS(U) – semestr 2 – Wykład 2

III.2.1

Cechy Javy

Ê

Java to uniwersalny język programowania niezależny od

platformy sprzętowo-programowej – raz napisany kod można

wykorzystać w każdym środowisku wyposażonym w interpreter

kodu bajtowego Javy czyli JVM (

Java Virtual Machine

)

Ê

Java dostarcza uniwersalnego środowiska

Ê

programowania GUI (

Graphic User Interface

) – biblioteki komponentów:

Ê

AWT – ubogi wygląd komponentów, zależny od platformy

Ê

Swing – nowocześniejszy, niezależny od platformy

Ê

programowania multimediów

Ê

dostępu do baz danych, JDBC (Java DataBase Connectivity)

Ê

programowania w sieciach i w systemach rozproszonych.

Ê

budowania programów z gotowych komponentów (JavaBeans)

Ê

tworzenia aplikacji dla urządzeń mobilnych

III.2.1

Środowiska programistyczne Java 2

firmy Sun Microsystems

Sun zdefiniował szereg platform Java 2 dla różnych rodzajów urządzeń

Ê

Java 2 Standard Edition (J2SE)

Ê

definiuje

definiuje

platformę

platformę

dla

dla

aplikacji

aplikacji

ogólnych

ogólnych

zastosowań

zastosowań

Ê

realizuje

realizuje

podstawowy

podstawowy

zakres

zakres

API

API

(

(

Application

Application

Programming

Programming

Interface

Interface

)

)

Ê

służy do tworzenia aplikacji „klienckich” używanych samodzielnie lub
z poziomu przeglądarki internetowej

Ê

Java 2 Enterprise Edition (J2EE)

rozszerza J2SE o dodatkowe API

rozszerza J2SE o dodatkowe API

pozwalające na tworzenie wielowarstwowych aplikacji dla przed

pozwalające na tworzenie wielowarstwowych aplikacji dla przed

siębiorstw

siębiorstw

Ê

Java 2 Micro Edition (J2ME) zawiera narzędzia do tworzenia

i testowania aplikacji dla urządzeń mobilnych

Ê

Personal Java - podzbiór J2SE, urządzenia przenośne z małymi zasobami

Ê

Java Card - minimalny podzbiór klas Java, karty inteligentne (smart cards

III.2.1

Wielowarstwowa architektura

aplikacji J2EE

Ê

Warstwa prezentacji realizuje dostęp do aplikacji dla klienta

przez osobną aplikację napisaną w Javie (thick client) lub

przeglądarkę internetową (thin client)

Ê

Warstwa logiki biznesowej obsługiwana przez serwery aplikacji

realizuje główne zadania: udostępnia źródła danych, integruje

istniejący system informatyczny przedsiębiorstwa z nowymi

funkcjami; zbudowana z komponentów EJB

(Eneterprise Java Beans)

Ê

Warstwa danych danych jest źródłem danych dla aplikacji

(relacyjna czy obiektowa baza danych, system plików, system

katalogowy, dane z dotychczasowego systemu informatycznego

przedsiębiorstwa).

III.2.1

Technologie informatyczne

wykorzystane w architekturze J2EE

Ê

EJB (Eneterprise Java Beans)

komponenty działające w warstwie środkowej, zarządzane i wykonywane na

serwerze, reprezentujące logikę biznesową aplikacji

Ê

CORBA (Common Object Request Broker)

standard budowy i specyfikacji komponentów w rozproszonych systemach

informacyjnych opracowany przez niezależne konsorcjum OMG (Object

Management Group)

Ê

RMI (Remote Method Invocation)

mechanizm umożliwiający wywołanie metod zdalnych obiektów

wykonujących się w innych maszynach wirtualnych Javy, które mogą

znajdować się na innych komputerach; obiekt wywołujacy metodę zdalną

nazywany jest obiektem klienta, a obiekt zdalny obiektem serwera

Ê

Technologie Internetu i Webu

HTTP, HTML/XML, aplety – programowanie po stronie klienta;

JSP, serwlety – programowanie po stronie serwera


Wyszukiwarka

Podobne podstrony:
Wybrane Dzial‚y Informatyki Stosowanej 4 wyklad
Wybrane Problemy Psychologii Stosowanej - Wykłady, Znaczący wzrost zainteresowania osiągnięciami psy
Pytania na egzam z infy, I semstr moje materiały, Semestr I, Informatyka stosowana, wyklady i pytani
egzamin informa, I semstr moje materiały, Semestr I, Informatyka stosowana, wyklady i pytania
Filozofia przyrody, AGH, WFiIS, Informatyka stosowana, Semestr I, UNIX-gach, wykłady
dr hab D Jasiecka, prof UJ wybrane problemy psychologii stosowanej notatki z wykładów
infa wykłady Najpopularniejsze typy nośników informacji stosowane w systemach komputerowych INFA
PROBLEMY STOSOWANIA I WYKŁADNI PRAWA
SiS strona tytulowa spr, Prz inf 2013, I Semestr Informatyka, Fizyka, Wykłady-Fizyka, Sygnały i Syst
sciaga-skrocona, Informatyka Stosowana, Architektura systemów komputerowych, ASK
INFORMACJA TURYSTYCZNA wykłady
Wybrane Technologie Przetwazania Zywnosci WYKLADY. , WNOŻCiK wieczorowe, semestr V, wybrane tech prz
ASAD, Informatyka Stosowana, Ekonomia, Ekonomia
Chorobotwórczość i klinika wybranych chorób infekcyjnych wirusowych, wykłady PMWSZ w Opolu - Pielęgn
WYBRANE ZAGADNIENIA Z KRYMINOLOGII I WIKTYMOLOGII wyklady
sbd, Projekt-bazy, Informatyka Stosowana
ASK, Informatyka Stosowana, Architektura systemów komputerowych, ASK
Wybrane systemy i metody wsparcia WYKLAD

więcej podobnych podstron