Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny...

170
Agnieszka Nowak - Brzezińska

Transcript of Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny...

Page 1: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Agnieszka Nowak - Brzezińska

Page 2: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Wystarczy raz zapisać kod a program

można uruchomić wszędzie…

Page 3: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Java – język programowania stworzony przez James’a Goslinga i Patric’a Naughton’a z firmy Sun Microsystems.

Krótka historia języka:1991 r. – Projekt „Green” – czyli niezależny

od platformy i kompaktowy język programowania tunerów telewizji kablowej.

1992 r. – wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie!

1993 – 1994 r. – 300 000 punktów Air Miles za loty w celu promocji technologii Green.

1995 r. – przeglądarka internetowa HotJava z obsługą apletów. Pierwsza wersja (1.0) Javy (bo nazwa Oak była już zajęta).

1998 r. – Java 1.2 – GUI i funkcję graficzne – przemianowano na Java 2 SE ver. 1.2.

2004 r. – Java 1.5 – typy generyczne, pętla for each, dużo zmian –przemianowano na Java 5.0.

Page 4: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Źródło: K. Sierra, B. Bates. Head First Java. 2nd Edition. O’Reilly, USA.

Page 5: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 6: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Java rozróżnia wielkość liter – println, Println,PRINTLN to są 3 różne nazwy!

Główny plik źródłowy zawierający kod programu(z rozszerzeniem .java) musi nazywać się taksamo jak nazwa klasy.

Wszystko w Javie musi się znajdować w jakieśklasie!

Nazwa klasy musi się zaczynać od litery, poktórej mogą wystąpić dowolne kombinacje liter icyfr. Nazwa nie może być zarezerwowanymsłowem kluczowym.

Funkcja (metoda main) musi się znajdować wpliku źródłowym klasy, która chcemy uruchomić.

Page 7: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Typy komentarzy: Jednolinijkowe (liniowe)

// to jest komentarz składający się z 1 linii

Wielolinijkowe (blokowe)/* tutaj

komentarzmający wielelinii */

Komentarzy blokowych NIE wolno zagnieżdżać /* /* błąd */ */

Automatyczne generowanie dokumentacji/** Jest to nasz pierwszy program

@version 1.01@author Tomasz Jach

*/

Page 8: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 9: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 10: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Deklarujemy referencję zmiennej

Tworzymy obiekt

Połączenie odwołania do obiektu i referencji

Page 11: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 12: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Należy zalogować się jako administrator. Przejdź do panelu sterowania, przełącz na widok

klasyczny i kliknij dwukrotnie ikonę Systemu. Wsystemach Windows NT/2000/XP od razu otworzy sięokno Właściwości systemu. W systemie Windows Vistanależy kliknąć „Zaawansowane ustawienia systemu”.W oknie dialogowym Właściwości systemu kliknijkartę Zaawansowane, a następnie przycisk Zmienneśrodowiskowe. W oknie tym znajdź zmienną o nazwiePath. Kliknij przycisk Edytuj i dodaj tam katalogjdk\bin na początku ścieżki i wpis ten oddziel odreszty wpisów średnikiem, jak poniżej:

C:\jdk\bin; inne wpisy Zapisz ustawienia. Każde nowe okno konsoli będzie

wykorzystywać prawidłową ścieżkę.

Page 13: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 14: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 15: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 16: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

W Javie każdy typ int to liczba 32bitowa, w C/C++ to była 16-to albo 32-u albo dowolna inna liczba. Teraz nie ma przynajmniej problemów z przenoszeniem kodu.

Page 17: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Interpreter Javy może wykonać kod bajtowy Javy bezpośrednio na urządzeniu, na którym interpreter zainstalowano.

Obecnie kod bajtowy jest tłumaczony przez kompilator JIT (just-in-time compiler) na kod maszynowy.

Page 18: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 19: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 20: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 21: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 22: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Skrót JVM (ang. Java Virtual Machine),

wirtualny (programowy) procesor, który wykonuje kod pośredni ładowany z plików class lub archiwów z lokalnego systemu plików lub poprzez sieć

maszyna wirtualna implementowana jest jako samodzielnie uruchamiany program lub wbudowywana np. w przeglądarkę WWW albo w system operacyjny (statycznie jako moduł lub biblioteka łączona dynamicznie)

Page 23: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Podstawowa wersja środowiska Javy dostarczana jest przez firmę Sun Microsystems w postaci pakietu narzędzi Java 2 Software Developers Kit

Standard Edition (Java 2 SDK SE) Zestaw przygotowywany jest dla różnych systemów

operacyjnych Dawniej nazywany był Java Developers Kit (JDK) istnieje rozbudowana wersja pakietu Enterprise Edition

zawierającadodatkowe narzędzia oraz biblioteki środowisko zawierające tylko implementację maszyny

wirtualnej dla określonego systemu operacyjnego i biblioteki standardowe Javy, bez narzędzi programistycznych, nazywane jest Java Runtime Environment i służy tylko do

uruchamiania programów utworzonych w Javie

Page 24: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

w zestawie J2SDK kompilatorem jest program o nazwie javac (Java Compiler)

pliki wynikowe mogą być pogrupowane logicznie w pakiet, który fizycznie może być zlokalizowany w pewnej drzewiastej strukturze katalogowej

pakiet może być zarchiwizowany do formatu zip lub jar np. za pomocą programu narzędziowego jar dostarczanego w zestawie J2SDK

Page 25: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Małe programy z interfejsem graficznym uruchamiane przez przeglądarkę WWW z wbudowaną obsługą Javy lub specjalną przeglądarkę apletów o nazwie appletviewer dostarczaną w pakiecie J2SDK;

informacja o tym skąd i jaki plik class lub jar załadować wbudowywana jest w stronę WWW w postaci specjanego znacznika HTML, który dodatkowo może zawierać parametry uruchomieniowe apletu, aplikacje graficzne, lub tekstowe programy uruchamiane przez maszynę wirtualną pracującą z poziomu systemu operacyjnego

Page 26: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Implementacją maszyny wirtualnej w pakiecie J2SDK jest program java uruchamiany z linii komend wraz z parametrem określającym plik class lub jar w lokalnym systemie plików, od którego zaczyna się wykonywanie aplikacji

serwlet program wykonywany po stronie serwera

midlet program wykonywany w urządzeniu przenośnym

Page 27: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

jedna z klas musi zawierać metodę public static void main(String[ ] args)

jeśli jest to klasa publiczna, nazwa tej klasy musi być taka sama jak nazwa pliku, w której jest zdefiniowana

po kompilacji pliku źródłowego .java do Bkodu (polecenie javac) powstają pliki .class (dla każdej klasy osobny plik)

poleceniem java klasa .class zostaje załadowana przez JVM (Java Virtual Machine) i sterowanie zostaje przekazane do metody main( ), gdzie zaczyna się „życie”: tworzenie obiektów, odwołania do innych klas aplikacji

Page 28: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

class Aplikacja1 {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}

Przy założeniu, że kod aplikacji zapisany został w pliku

Aplikacja1.java

kompilujemy go kompilatorem javac wydając polecenie:

javac Aplikacja1.java

W wyniku kompilacji otrzymamy plik z kodem pośrednim

Aplikacja1.class

który możemy uruchomić wykorzystując interpreter java

java Aplikacja1

Page 29: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

<applet>

<html>

<head>

<title>Aplet1</title></head

>

<body>

<applet code="Aplet1.class"

width="400"

height="200">

</applet>

</body>

</html>

import java.applet.*;

import java.awt.*;

public class Aplet1 extends

Applet {

public void init() {

add(new Label(„Hello world”));

}

}

Plik źródłowy:

Applet1.java

javac Aplet1.java

Applet1.class

Plik HTML:

Applet.html

Applet.html

Page 30: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Nazwa Przykładowe wartośdi Objaśnienie

CODE CODE="Pusty.class" określa nazwę pliku zawierającego kod bajtowy apletu

WIDTH HEIGHT

WIDTH=100HEIGHT=200

określają wymiar apletu w pikselach

HSPACE VSPACE

HSPACE=10VSPACE=20

określają w pikselach odstęp pomiędzy apletem a otaczającym go tekstem

CODEBASE CODEBASE="C:/Aplety"

Określa ścieżkę dostępu do tego pliku. Jeżeli zbiór z kodem bajtowym jest w tej samej kartotece, co dokument HTML, to nie trzeba podawad ścieżki dostępu. Wartością CODEBASE może byd również adres sieciowy URL.

Page 31: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Jeżeli kod HTML strony WWW został zapisany w pliku Aplet1.html to działanie apletu możemy sprawdzić ładując stronę do przeglądarki lub korzystając z interpretera appletviewer poprzez podanie komendy: appletviewer Aplet1.html

Wyszukiwaniem i ładowaniem plików zawierających kod pośredni zajmuje się moduł ładujący (bytecode

loader, classloader)

klasy, o ile to możliwe, ładowane są w pierwszej kolejności z lokalnego systemu plików a następnie z sieci

Page 32: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Przed rozpoczęciem wykonywania załadowanego kodu bajtowego jest on sprawdzany przez weryfikator w czterech etapach

1. weryfikacja pliku klasy: weryfikacja sygnatury pliku

i jego struktury

2. weryfikacja tworzenia podklas, stałych, wskaźników do obszarów pamięci

3. weryfikacja kodu bajtowego: analiza metod, kontrola argumentów, inicjalizacji zmiennych, analiza stosu argumentów, badanie możliwości wystąpienia nadmiaru i niedomiaru podczas operacji arytmetycznych

4. sprawdzenie podczas wykonania typu danych oraz dostępu: analiza poziomów dostępu do składowych prywatnych i chronionych

Page 33: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Maszyna wirtualna może zawierać zintegrowany kompilator JIT, który "w locie" (JustInTime) generuje kod wykonywalny specyficzny dla danego komputera na podstawie kodu pośredniego.

Przy pierwszym uruchomieniu kod pośredni trafia wprost do interpetera, ale jest kompilowany i zapamiętywany w postaci kodu wynikowego.

Kolejne odwołanie do tego kodu powoduje, że wykorzystywany jest kod wynikowy, co przyśpiesza działanie programu nawet 20krotnie

Page 34: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

menedżer bezpieczeństwa jest klasą implementującą powłokę ochronną w układzie maszyna wirtualna/przeglądarka

określa i nadzoruje politykę dostępu przeglądarki do zasobów lokalnych i sieciowych

menedżer bezpieczeństwa musi wyrazić zgodę na uzyskanie przez aplet dostępu do następujących zasobów:

1. komunikacji sieciowej,2. danych w lokalnym systemie plików,3. procesów systemu operacyjnego,4. modułu ładowania,5. bibliotek Javy

przy standardowych ustawieniach aplety załadowane przez sieć nie mają np. dostępu do lokalnego systemu plików i mogą nawiązywać połączenia sieciowe tylko z serwerem, z którego zostały załadowane.

aplikacje nie podlegają tym ograniczeniom i mogą uzyskiwać dostęp do dowolnych zasobów lokalnych i sieciowych

Page 35: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Ścieżka (bezwględna) do katalogu jdk/bin powinna być umieszczona w zmiennej systemowej PATH

javac kompilator

Składnia wywołania:

javac [opcje] [plikiźródłowe] [@plikzlistąplikówźródłowych]

pliki źródłowe z rozszerzeniem java mogą być wymienione w linii komend lub zebrane w listę rozdzieloną odstępami i/lub znakami nowego wiersza zapisaną w pliku, którego nazwa podawana jest po znaku @

Page 36: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

w wyniku kompilacji powstają pliki z kodem pośrednim o rozszerzeniu class.

każdy plik class zawiera jedną skompilowaną klasę lub interfejs

program w języku Java jest zbiorem definicji klas i interfejsów

javac kompilator Program w języku Java może być zapisany w jednym

pliku lub w wielu plikach przy czym: w jednym pliku źródłowym może znajdować się co

najwyżej jedna klasa publiczna jeżeli plik źródłowy zawiera definicję klasy

publicznej, to jego nazwa musi być identyczna z nazwą tej klasy (wielkość liter jest istotna).

Page 37: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 38: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 39: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Składnia wywołania:

java [opcje] nazwaklasy [argumenty]

jako parametr podawana jest nazwa klasy (bez rozszerzenia class), od której zaczyna się wykonanie aplikacji. Klasa taka nazywana jest klasą startową

java interpreter aplikacji

java [opcje] jar plik.jar [argumenty]

wskazywany jest plik archiwum z rozszerzeniem jar, który zawiera klasę startową, inne klasy aplikacji oraz pliki zasobów (grafiki, dźwięki i.t.p.).

Page 40: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Składnia wywołania:

appletviewer [opcje] url

interpreter apletów pozwala uruchamiać aplety bez korzystania z przeglądarki WWW

jako parametr podawany jest url strony WWW

jeśli w stronę WWW wbudowanych jest kilka apletów, to dla każdego z nich otwierane jest osobne okno interpretera

Page 41: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

pakiet jest mechanizmem łączenia w pewną całość

logicznie powiązanych klas i interfejsów

zapewniania kontrolę dostępu do klas i interfejsów

oraz ich składowych pozwala unikać kolizji nazw biblioteki Javy zorganizowane są w pakiety

Przynależność klas i interfejsów zdefiniowanych w danym pliku do konkretnego pakietu możemy określić podając jako pierwszy wpis w pliku źródłowym deklarację pakietu

package nazwapakietu; dalszaczęśćplikuźródłowego

Page 42: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

pakiety mogą zawierać podpakiety i tworzyć hierarchie zorganizowaną w strukturę drzewa

struktura ta jest mapowana na strukturę katalogów

katalogi zawierają skompilowane pliki klas i interfejsów

Page 43: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 44: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

programy mogą wykorzystywać klasy i interfejsy z istniejących pakietów deklarując ich import

można importować wszystkie klasy i interfejsy danego pakietu podając w deklaracji importu symbol * na końcu nazwy pakietu

deklaracja z symbolem* oznacza, że wykorzystane zostaną z danego pakietu tylko te definicje klas i interfejsów, które są niezbędne do skompilowania i uruchamiania programu

jeśli nie podano żadnej deklaracji importu, to i tak domyślnie zawsze importowany jest pakiet java.lang.*

Page 45: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 46: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Kod bajtowy może być tłumaczony w locie (w trakcie działania programu) na kod maszynowy przeznaczony dla określonego procesora, na którym działa aplikacja.

Page 47: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Korzyści płynące z wielowątkowości to lepszainteraktywność i działanie w czasierzeczywistym.

W Javie realizacja wielowątkowości jest owiele prostsza niż w innych językach. Wątki wJavie mogą korzystać z systemówwieloprocesorowych, jeśli podstawowysystem operacyjny to umożliwia.

Page 48: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Java jest bardziej dynamicznym językiem niżC i C++ pod wieloma względami. Została takzaprojektowana aby dostosowywać się doewoluującego środowiska. Do bibliotekmożna bez przeszkód dodawać nowe metodyi zmienne egzemplarzy, nie wywierającżadnego wpływu na klienty.

Page 49: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Założenie jest proste: użytkownik pobiera kod bajtowy z internetu i uruchamia go na własnym urządzeniu. Programy napisane w Javie, które działają na stronach internetowych, noszą nazwę apletów Javy.

Aby używać apletów, wystarczy mieć przeglądarkę obsługującą Javę, w której można uruchomić kod bajtowy tego języka.

Nie trzeba nic instalować. Dzięki temu, że forma Sun udziela licencji na kod

źródłowy Javy i nie zezwala na wprowadzanie żadnych zmian w języku i bibliotece standardowej, każdy aplet powinien działać w każdej przeglądarce która obsługuje Javę.

Najważniejsze jest jednak to, że dzięki zabezpieczeniom maszyny wirtualnej nie trzeba obawiać się ataków ze strony złośliwego kodu.

Page 50: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Pobieranie apletu odbywa się w podanysposób jak wstawianie obrazu na stronęinternetową.

Aplet integruje się ze stroną a tekst otacza goze wszystkich stron jak obraz. Różnicapolega na tym, że ten obraz jest żywy.

Reaguje na polecenie użytkownika, zmieniawygląd oraz przesyła dane pomiędzykomputerem, na którym został uruchomionya tym, ż którego pochodzi.

Page 51: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Zmienna – konstrukcja programistyczna posiadająca swoją unikalną nazwę, oraz typ danych jakie zmienna jest w stanie przechowywać.

Każda zmienna przed wykorzystaniem w programie musi zostać zadeklarowana (stworzona). Deklaracja polega na podaniu typu i nazwy zmiennej w formie:

typ_zmiennej nazwa_zmiennej;np. int suma;

Aby naraz zadeklarować wiele zmiennych tego samego typu oddzielamy ich nazwy przecinkiem:

np. int suma, pensja, obroty;

Na końcu każdej deklaracji musi znajdować się średnik!Nazwa zmiennej może się składać z liter (małych lub wielkich),

cyfr, oraz znaku podkreślenia, ale nie może się zaczynać od cyfry.

Page 52: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Aby przypisać zmiennej jakąś określoną wartość wpisujemy:

nazwa_zmiennej = wartość;

np. suma = 100;

Pierwsze przypisanie wartości zmiennej nazywa się jej inicjalizacją. Inicjalizacja zmiennej może się odbyć w dowolnym miejscu programu po jej wcześniejszym zadeklarowaniu. Może też wystąpić równocześnie z deklaracją:

int suma = 100;

Page 53: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

W Javie każda zmienna musi mieć określonytyp. Deklaracja zmiennej polega na napisaniunazwy typu, a po nim nazwy zmiennej.

Double pensja;

Int liczbaDniPracujacych;

Long liczbaMieszkancowZiemi;

Boolean czyZdanyEgzamin;

Page 54: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Po zadeklarowaniu zmiennej trzeba zainicjować ją za pomocą instrukcji przypisania – nie można użyć wartości niezainicjowanej zmiennej.

Int liczbaDniPrzepracowanych;

System.out.println(liczbaDniPrzepracowanych);

Błąd – zmienna nie została zainicjowana !!!

Page 55: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

lub

Int liczbaDniPrzepracowanych;

liczbaDniPrzepracowanych = 12;

Int liczbaDniPrzepracowanych = 12;

Page 56: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Java jest językiem o ścisłej kontroli typów.Oznacza to, że zmienna każda musi miećokreślony typu. Istnieje 8 podstawowychtypów. 4 z nich reprezentują liczby całkowite,dwa – liczby rzeczywiste, jeden o nazwie charzarezerwowano dla znakówreprezentowanych przez kody liczbowesystemu Unicode, zaś ostatni jest logiczny(boolean).

Page 57: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

To liczby pozbawione części ułamkowej.Zaliczają się do nich także liczby ujemne.

Typ Liczba bajtów

zakres

Int 4 -2147483648 do 2 147483647

Short 3 -32 768 do 32 767

Long 8 9 223 372 036 854 775 808 do 9 223 372 036 854 775 807

byte 1 -128 do 127

Page 58: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Służą do przechowywania liczb z częściąułamkową.

Typ Liczba bajtów

zakres

Float 4 Około 3,40282345E+38F (6-7 znaczących cyfr dziesiętnych)

double

8 Około 1,79769313486231570E + 308 (15 znaczących cyfr dziesiętnych)

Page 59: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Typ char służy do reprezentacji pojedynczych znaków. Mogą to być stałe znakowe opatrzone apostrofami np. ‘A’, ‘z’, ‘0’. Typ ten zajmuje 16 bitów.

Można również wyświetlać symbole zakodowane w Unicode (których wartości mieszczą się w zakresie \u0000 do \uFFFF). Przykładowo \u03C0 to grecka litera .

Ponadto wyróżnia się symbole reprezentujące znaki specjalne jak znak nowej linii czy tabulacja:

\n – nowa linia \t – tabulacja \b – backspace \r – powrót karetki \” – cudzysłów \’ – znak apostrofu \\ - lewy ukośnik (ang. backslash)

Page 60: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Może przechowywać dwie wartości: true ifalse.

Służy do sprawdzania warunków logicznych.

Wartości logicznych nie można konwertowaćna wartości całkowitoliczbowe.

Page 61: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

+ (dodawanie)

- (odejmowanie)

* (mnożenie)

/ (dzielenie całkowitoliczbowe)

% (dzielenie modulo)

++ (inkrementacja)

-- (dekrementacja)

Page 62: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Wynik:

Page 63: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Operator inkrementacji (++) zwiększa wartość zmiennej o jeden, podczas gdy operator dekrementacji (--) zmniejsza wartość zmiennej o jeden.

Oba operatory mogą występować w dwóch formach:◦ Przedrostkowej (++x).◦ Przyrostkowej (x++).

Obie postacie powodują zwiększenie zapamiętanej w zmiennej wartości o jeden, ale w przypadku formy przedrostkowej odbywa się to przed jej wykorzystaniem (przed zwróceniem jej wartości), a w przypadku formy przyrostkowej dopiero po wykorzystaniu danej zmiennej.

Page 64: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Wynik:

Page 65: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Jeśli w wyniku operacji w dalszej części programu na zmiennej liczbowej przekroczymy dopuszczalny zakres przyjmowanych przez nią wartości to nie spowoduje to błędu kompilacji!

Przekroczenie dopuszczalnej wartości nie powoduje błędu a jedynie „zawinięcie” liczby zgodnie z zasadą:

INT_MAX + 1 = INT_MIN

INT_MAX + 2 = INT_MIN +1

oraz

INT_MIN – 1 = INT_MAX

INT_MIN – 2 = INT_MAX + 1

Page 66: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Operatory bitowe służą do wykonywania operacji na bitach. Są one następujące:

Operator Nazwa Przykład

& Bitowe AND x & y

| Bitowe OR x | y

~ Bitowe NOT ~x

^ Bitowy XOR x ^ y

<< Przesunięcie arytmetyczne w lewo x << y

>> Przesunięcie arytmetyczne w prawo x >> y

>>> Przesunięcie arytmetyczne w prawo

z wypełnieniem zerami

x >> y

Page 67: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Operacje logiczne wykonujemy na argumentach, które przyjmują jedną z dwóch możliwych wartości logicznych: true lub false.

Wyróżniamy 3 operatory logiczne:

Operator Nazwa Przykład

&& Logiczny AND x && y

|| Logiczny OR x || y

! Logiczny NOT !x

Page 68: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Operatory przypisania są operatorami dwuargumentowymi i powodują przypisanie operandowi lewostronnemu wartości operandu prawostronnego.

Argument 1 Operator Argument 2 Znaczenie

x = y x = y

x += y x = x + y

x -= y x = x – y

x *= y x = x * y

x /= y x = x / y

x %= y x = x % y

x <<= y x = x << y

x >>= y x = x >> y

x >>>= y x = x >>>y

x &= y x = x & y

x |= y x = x | y

x ^= y x = x ^ y

Page 69: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Operatory porównania służą do porównania operandów. Zwracają one wartość true lub false. Przykład:

Wynikiem działania arg1 == arg2 będzie true jeśli oba argumenty są sobie równe. W przeciwnym przypadku wynikiem będzie false.

Operator Wykonywane działanie Przykład

== Równość x == y

!= Nierówność x != y

< Mniejszość x < y

> Większość x > y

<= Mniejszość lub równość x <= y

>= Większość lub równość x >= y

Page 70: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Typ operatora Symbol operatora

Przyrostkowe x++ x --

Unarne ++x --x +x -x ~ !

Multiplikatywne * / %

Addytywne + -

Przesunięcia bitowe << >> >>>

Relacyjne < > <= >= instanceof

Równości == !=

Bitowy AND &

Bitowy XOR ^

Bitowy OR |

Logiczny AND &&

Logiczny OR ||

Warunkowy ? :

Przypisania = += -= *= /= %= &= ^= |== <<= >>= >>>=

Wszystkie operatory dwuargumentowe (za wyjątkiem op. przypisania) o jednakowym priorytecie są sprawdzane od lewej do prawej. Operatory przypisania są oceniane od prawej do lewej.

Page 71: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 72: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 73: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

== (operator równości)

!= (operator nierówności)

> (większości)

< (mniejszości)

>= (większe bądź równe)

<= (mniejsze bądź równe)

&& (koniunkcja logiczna)

|| (alternatywa logiczna)

! (negacja)

Page 74: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Wartością tego wyrażenia jest wyrażenie1jeśli warunek ma wartość true, lub wyrażenie2 gdy warunek ma wartość false.

Warunek ? Wyrażenie1: wyrażenie2

Page 75: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Klasa Math zawiera zestaw funkcjimatematycznych, które mogą być bardzoprzydatne przy pisaniu niektórych rodzajówprogramów.

int x=4;

float pierwZx= Math.sqrt(x);

System.out.println(pierwZx);

Wynik : 2.0

Page 76: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 77: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

double x=9.997;

Int nx = (int) z;

Wynik : 9

Page 78: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

W javie łańcuchy składają się z szeregu znaków Unicode. Nie ma wbudowanego typu String, ale standardowa biblioteka Javy zawiera predefiniowaną klasę o takiej właśnie nazwie. Każdy łańcuch w cudzysłowach jest obiektem klasy String:

String e=„”;

String powitanie= ”Witaj”;

Page 79: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Aby wydobyć z łańcucha jakiś podłańcuch, należy użyć metody substring klasy String. Np..

String powitanie= ”Witaj”;

String s= powitanie.substring(0,3);

Wit

Page 80: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Metoda equals

String imie1= ”Aleks”;

String imie2= „Aleksandra”;

Imie2.equals(imie1);

Page 81: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 82: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Instrukcje warunkowe służą do sprawdzania warunków. W zależności od tego czy warunek jest prawdziwy, czy fałszywy, wykonywane są różne bloki instrukcji. Ogólna postać instrukcji warunkowej jest następująca:

if (warunek) {//instrukcje do wykonania, gdy warunek jest prawdziwy

}else {

//instrukcje do wykonania, gdy warunek jest fałszywy}

Blok else jest blokiem opcjonalnym. Prawdziwa jest zatem instrukcja:if (warunek) {

//instrukcje do wykonania, gdy warunek jest prawdziwy}

Page 83: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Często przydatna jest również zmodyfikowana postać instrukcji warunkowej, sprawdzająca warunki podrzędne, w przypadku gdy nie jest spełniony warunek nadrzędny.

if (warunek1) {//instrukcje do wykonania, gdy warunek1 jest prawdziwy.

}else if(warunek2) {

//instrukcje do wykonania, gdy warunek2 jest prawdziwy, natomiast warunek1 jest fałszywy.}else if(warunek3) {

//instrukcje do wykonania, gdy warunek3 jest prawdziwy, natomiast warunek1 oraz warunek2 jest fałszywy.}else {

//instrukcje do wykonania, gdy wszystkie warunki są fałszywe.}

Page 84: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 85: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Instrukcja switch pozwala w wygodny sposób sprawdzić ciąg warunków i wykonać różny kod w zależności od tego czy są one fałszywe czy prawdziwe. Jej postać jest następująca:

Page 86: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 87: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Operator warunkowy jest postaci:

warunek ? wartość1 : wartość2;

Co należy rozmieć jako: jeśli warunek jest prawdziwy to podstaw za wartość wyrażenia wartość1, w przeciwnym wypadku podstaw za wartość wyrażenia wartość2.

Można go traktować jako skróconą wersję instrukcji warunkowej if. Przykład:

Page 88: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Pętla while wykonuje daną instrukcję lub blok instrukcji tak długo jak długo warunek jest spełniony (ma wartość true). Ogólna postać pętli while jest następująca:

while (warunek)

instrukcja;

Pętla while bada prawdziwość warunku jeszcze przed wykonaniem dalszego kodu (na samym jej początku), dlatego też, jeśli warunek ma wartość false to instrukcje zawarte w tej pętli nigdy nie zostaną wykonane.

Page 89: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Można też tak:

Page 90: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Pętla do while jest odmianą pętli while, a jej ogólna postać jest następująca:

do

instrukcja;

while(warunek);

Co należy rozumieć jako: Wykonuj instrukcję dopóki warunek jest prawdziwy. Jako, iż warunek pętli sprawdzany jest na końcu, wykona się ona zawsze przynajmniej raz!

Page 91: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

ALBO…

Page 92: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Ogólna postać pętli for jest następująca:

for (wyrażenie początkowe; wyrażenie warunkowe; wyrażenie modyfikujące)

instrukcja_do_wykonania;

W miejsce wyrażenia początkowego wstawiane jest wyrażenie stosowane do zainicjalizowania zmiennej służącej jako licznik wykonań pętli. Wyrażenie warunkowe określa jaki warunek musi być spełniony by przejść do kolejnego przebiegu pętli. Wyrażenie modyfikujące natomiast używane jest do modyfikacji wartości zmiennej będącej licznikiem pętli.

Page 93: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

LUB

Wartość zmiennej i widoczna poza blokiem pętli

Wartość zmiennej i widoczna tylko w bloku pętli

Page 94: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Instrukcja break powoduje przerwanie wykonywania pętli i opuszczenie jej bloku.

Nie ma warunku zatrzymania pętli

A i tak zadziała…

Page 95: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Wynik

Page 96: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Instrukcja continue powoduje przejście do kolejnej iteracji danej pętli (chyba, że była to jej ostatnia iteracja).

Wynik

Page 97: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Instrukcje break i continue mają również postać w połączeniu z etykietami.

Etykieta to wyznaczone miejsce w kodzie programu. Etykietę definiuje się przez podanie jej nazwy zakończonej znakiem dwukropka

break etykieta powoduje przerwanie wszystkich pętli znajdujących się za etykietą (innymi słowy przerwij działanie pętli i idź do etykieta1).

continue etykieta powoduje przerwanie bieżącej iteracji pętli przejście do miejsca oznaczonego etykietą. Następnie następuje ponowne wejście do pętli znajdującej się tuż za etykietą!

Page 98: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Wynik

WynikWidać różnicę?

Page 99: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

char charAt(int index) int compareTo(String anotherString)

{<0;0;>0} boolean endsWith(String suffix) int indexOf(int ch, int fromIndex) int indexOf(String str) int length() String replace(char oldChar, char newChar) String substring(int beginIndex) String toLowerCase() String toUpperCase() String valueOf( … )

Page 100: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

System.out.println("abc");

String cde = "cde";

System.out.println("abc" + cde);

String c = "abc".substring(2,3);

String d = cde.substring(1, 2);

int dlugosc = cde.length();

Page 102: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

// Stworzenie obiektu klasy Random, który posłuży do losowania liczb

Random r = new Random();

// Losowanie liczby z zakresu [0,10] do zmiennej a.

int a = r.nextInt(11); // deklaracja i definicja zmiennej

// Losowanie liczby z zakresu [-10,22] i wyświetlenie jej na konsolę.

System.out.println( r.nextInt(33)-10 );

/* 33, bo w przedziale [-10,22] są 33 liczby i -10 bo to najmniejsza

liczba w zakresie. */

Page 103: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 104: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Tablica jest rodzajem struktury danych będącą zestawem elementów tego samego typu. Dostęp do każdego z tych elementów można uzyskać za pomocą jego indeksu w postaci liczny int. Jeśli np. a będzie tablicą liczb całkowitych to a[i] jest i-tym elementem tej tablicy. Deklaracja zmiennej tablicowej polega na określeniu typu tablicy i nazwy zmiennej.

Int[] a;

Int [] a = new int [100]; Powyższa instrukcja tworzy tablicę, w której można zapisać 100 liczb całkowitych.

Page 105: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Elementy tablicy numerowane są od 9. Tablicę można zapełnić wartościami np. za pomocą pętli:

Int [] a = new int [100];

For (int i=0; i100; i++)

A[i]=i

Próba dostępu do elementu o indeksie 100 lub większym w tablicy zawierającej 100 elementów zakończy się spowodowaniem wyjątku ArrayIndexOutOfBounds (indeks spoza przedziału tablicy).

Page 106: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Informację o liczbie elementów tablicy można uzyskać za pomocą odwołania nazwaTablicy.length

Rozmiaru tablicy nie można zmienić !Int [] a = new int [100];

For (int i=0; i<a.length; i++)

A[i]=i

Page 107: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Służą do reprezentacji tabel i innych bardziej złożonych struktur danych. Aby uzyskać dostęp do elementu tablicy wielowymiarowej należy użyć więcej niż jednego indeksu.

Int [][] a = new int [4][2];

Int [][] tablica =

{

{16,3}, {9,7}, {6,3}, {5,12}

}

Page 108: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 109: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 110: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 111: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

System.out.println("\nTablica poszarpana");

int [][] tabSZ = new int[10][];

// 8 wierszy, ?? kolumn

for(int i=0; i<tabSZ.length; i++)

tabSZ[i] = new int[i];

/*w każdym wierszu tyle kolumn jaki jest numer wiersza */

//Wyświetlanie

for(int i=0; i<tabSZ.length; i++){ // "Przejście" przez

wiersze

for(int j=0; j<tabSZ[i].length; j++)//"Przejście" przez

kolumny System.out.print(tabSZ[i][j]+" ");

System.out.println();

// Koniec kolumn w danym wierszu - nowa linia

}

Page 112: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Tablice można kopiować jedną instrukcją:arraycopy(Object src, int srcPos,

Object dest, int destPos, int length)

Co otrzymamy po wykonaniu takiego czegoś?char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f',

'e', 'i', 'n', 'a', 't', 'e', 'd' };

char[] copyTo = new char[7];

System.arraycopy(copyFrom, 2, copyTo, 0, 7);

System.out.println(new String(copyTo));

Page 113: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

String napis = „To jest napis”;

napis.length() - to jest funkcja zwracając nam długość

Jej definicja mogła by wyglądać tak:

int length(String arg)

Page 114: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Jeśli mamy jakiś kawałek kodu, który często wykorzystujemy

Jeśli często obliczamy lub potrzebujemy dostać efekt wywołania jakiegoś fragmentu kodu

Page 115: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

int dodaj( int l1, int l2 )

{

int wynik;

wynik = l1 + l2;

return wynik;

}

Funkcja zwraca wartość typu int

Funkcja nazywa się „dodaj”

Funkcja przyjmuje dwa parametry typu int: l1, l2

Funkcja zwraca nam sumę tych dwóch parametrów

Page 116: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

package jbPack;import java.util.*;public class Program { // Gdzieś tu muszą być funkcje

public static void main(String[] args) {

// Tutaj nie

} // Ale tutaj tak}

Page 117: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

package jbPack;import java.util.*;public class Program {

int dodaj( int l1, int l2 ) { int wynik; wynik = l1 + l2; return wynik;

};

public static void main(String[] args) { System.out.println(„Suma 4 i 5 wynosi: „ + dodaj(4,5));} }

Page 118: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Jakaś funkcja:

void głupiaFunkcja( int arg ){

arg += 1;

}

Gdzieś w main():

int wartosc = 10;

System.out.println( wartosc );

głupiaFunkcja( wartosc );

System.out.println( wartosc );

Wynikiem będzie dwukrotne wyświetlenie 10!

Page 119: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

8. Napisz funkcję, która w parametrze otrzymuje tablicę dwuwymiarową (o nieznanym rozmiarze) a w wyniku zwraca liczbę elementów dodatnich w tej tablicy.

9. Napisz funkcję, która dostaje trzy parametry: dwa znaki zn1, zn2 i jedną liczbę zak [4;8]. Funkcja ma zwrócić napis o długości zak i losowo wypełnioną znakami zn1, zn2.

10. Napisz funkcję, która dostaje jeden parametr intdzielnik. Funkcja ma wypisywać na ekran wszystkie liczby mniejsze od 100, a podzielne przez dzielnik

Page 120: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Schemat blokowy

ObliczeniaWejście / Wyjście

Start

Alterna-tywa

Koniec

Page 121: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 122: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 123: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Program wczytujący liczby tak długo dopóki nie zostanie podana liczba 0. Program podaje na końcu sumę tak wczytanych liczb.

Page 124: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 125: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

BEGIN

Read(x);

Read(y);

suma := x + y;

Write(suma);

END.

Page 126: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

BEGINRead(dzielna);Read(dzielnik);IF(dzielnik != 0) THEN

BEGINiloraz := dzielna / dzielnikwrite(‘Wynik wynosi’,

iloraz);END

ELSEwrite(‘Błąd dzielenia przez

0!’);

END

Page 127: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

W celu wyświetlenia wartości zmiennych korzystamy ze znanej już instrukcji:

System.out.println(zmienna_do_wyswietlenia);Przykładowo aby wyświetlić zawartość zmiennej suma:int suma = 100;System.out.println(suma);

Aby wyświetlić jakiś napis, podajemy go jako argument w/winstrukcji opatrzony w cudzysłów:

System.out.println(”Jakiś napis do wyświetlenia”);

Można połączyć wyświetlanie napisu i wartości zmiennych za pomocą operatora łączenia +:

System.out.println(”Wartość zmiennej suma wynosi” + suma);

Page 128: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Aby wyświetlić zawartość dwóch zmiennych w jednej linii można posłużyć się instrukcją:

System.out.print(zmienna);Przykładowo:int zawodnik = 1;double czas = 33;System.out.print(” Zawodnik nr ”);System.out.print(zawodnik);System.out.print(” miał czas ”);System.out.println(czas);

LUB użyć operatora łączenia +

System.out.println(” Zawodnik nr ” + zawodnik + ” miał czas ” + czas);

Page 129: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Wszystkie sekwencje znaków specjalnych przedstawionych przy okazji omówienia typu char działają również na łańcuchach znaków.

\n – nowa linia \t – tabulacja \b – backspace \r – powrót karetki \” – cudzysłów \’ – znak apostrofu \\ - lewy ukośnik (ang. backslash)

Aby wyświetlić tekst w 3 liniach wykorzystujemy sekwencję \n:System.out.println(„To\njest teskt\nw 3 liniach”);

Page 130: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

boolean hasNext() - zwraca wartość True jeśli następna wartość dowolnego typu jest dostępny do odczytu.string next() - zwraca odczytaną następną wartość dowolnego typu.boolean hasNextInt() - zwraca wartość True jeśli następna wartość jest typu Integer.int nextInt() - zwraca następną odczytaną wartość typu int.boolean hasNextDouble() - zwraca wartość True jeśli następna wartość jest typu Double.double nextDouble() - zwraca następną odczytaną wartość typu Double.

Page 131: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Ryzykowne operacje zawiera się w blokach „try”

Gdy coś złego się stanie – program wygeneruje wyjątek

Ów wyjątek jest łapany (stąd „catch”) i może zostać „obsłużony”

Dzięki temu program rzadziej się wysypuje Blok „finally” wykona się zawsze, niezależnie

od błędów Literatura: http://www.javaworld.com/jw-07-

1998/jw-07-exceptions.html

Page 132: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 133: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 134: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

1. Pamiętaj, że buforowane wyjście należy czyścić, a pliki – zamykać!

2. Klasa PrintWriter , jak również wszystkie inne poznane, mają wiele użytecznych metod, warto je poznać.

3. Za pomocą klasy File możesz zmieniać strukturę katalogów: tworzyć, kasować, odczytywać.

4. FileReader może bezpośrednio odczytywać plik, ale robi to bardzo wolno.

5. Parsowanie pliku tekstowego jest zadaniem wymagającym wiedzy o tym jak on jest zbudowany.

Page 135: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Obiekt A

Obiekt B

Obiekt C

Obiekt D

Page 136: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 137: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 138: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Załóżmy, że mamy napisać program o następującej specyfikacji:

1. Program wyświetla kwadrat, okrąg i trójkąt.

2. Gdy użytkownik kliknie na jakiś kształt –tenże zaczyna świecić na niebiesko.

3. Jednocześnie – odgrywana jest muzyczka w .mp3, specyficzna do każdego z kształtów.

Page 139: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 140: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Proceduralnie Obiektowo

Kwadrat

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk*/}

Trójkąt

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk*/}

Okrąg

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk*/}

Page 141: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Dodajemy nowy kształt:

Dodamy nowy kształt, ale tenże będzie odgrywał muzyczkę .wav

Page 142: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Proceduralnie Obiektowo

Kwadrat

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk mp3*/}

Trójkąt

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk mp3*/}Okrąg

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk mp3*/}

Dziwnokształtny

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj plik .wav*/}

• Zmieniamy przetestowany już kod i być może coś się zepsuje

Page 143: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Kształt ma mieć inny kolor po kliknięciu:

A do tego kolor ten ma być zmienny,

podawany w parametrze i do

tego gradientowy

Page 144: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 145: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Proceduralnie Obiektowo

Kwadrat

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk mp3*/}

Trójkąt

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk mp3*/}Okrąg

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk mp3*/}

Dziwnokształtny

kolor1;kolor2;

zmieńKolor() {// tu będzie kod do zmiany koloru z gradientem}

odtwórzDźwięk() {/* odegraj plik .wav*/}

• Zmieniamy przetestowany kod• Kolejne if-y…

Page 146: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Kwadrat

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk mp3*/}

Trójkąt

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk mp3*/}

Okrąg

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk mp3*/}

Dziwnokształtny

kolor1;kolor2;

zmieńKolor() {// tu będzie kod do zmiany koloru z gradientem}

odtwórzDźwięk() {/* odegraj plik .wav*/}

Page 147: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Kwadrat TrójkątOkrąg Dziwnokształtny

Kształt

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk*/}

Page 148: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Kwadrat TrójkątOkrąg Dziwnokształtny

kolor1;kolor2;

zmieńKolor() {// tu będzie kod do zmiany koloru z gradientem}

odtwórzDźwięk() {/* odegraj plik .wav*/}

Kształt

zmieńKolor() {// tu będzie kod do zmiany koloru}

odtwórzDźwięk() {/* odegraj dźwięk*/}

Page 149: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Klasa będzie swoistym „projektem” obiektów tworzonych na jej podstawie.

To co obiekt wie = atrybuty

To co obiekt potrafi = metody

Nazwa klasy

To co obiekt wie…

To co obiekt potrafi…

Page 150: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Pies

To co obiekt wie…

To co obiekt potrafi…

Telewizor

To co obiekt wie…

To co obiekt potrafi…

Page 151: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 152: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 153: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 154: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Programowanie zorientowane obiektowo pozwala na dodawanie funkcjonalności bez zmiany uprzednio przetestowanego kodu.

Wszystko w Javie jest obiektem (znajduje się wewnątrz klasy) Klasa opisuje sposób na stworzenie obiektu danego typu. Taki

schemat. Obiekt potrafi robić różne rzeczy. Niekoniecznie interesuje nas

w jaki sposób to robi. Obiekt wie o niektórych rzeczach i robi specyficzne rzeczy Rzeczy które obiekt wie o sobie nazywane atrybutami.

Reprezentują stan obiektu. Rzeczy które obiekt robi nazywane są metodami. Reprezentują

zachowanie obiektu. Gdy tworzysz klasę, zwykle powinieneś też stworzyć oddzielną

klasę do testowania w której stworzysz obiekty poprzedniej klasy.

Klasa może dziedziczyć atrybuty i metody z superklas(bardziej ogólnych klas)

Programy w Javie to po prostu gadanie obiektów do siebie

Page 155: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 156: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

public – dostęp do atrybutu z każdego miejsca

Private – dostęp do atrybutu tylko z wnętrza klasy bazowej/obiektu bazowego

Protected – dostęp do atrybutu tylko z wnętrza klasy bazowej lub niższej w hierarchii dziedziczenia

Page 157: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

W Javie wszystko co napiszemy dziedziczy po klasie Object. I tam jest taka fajna metoda toString(). Ale nie działa ona tak jak chcemy… No to nic trudnego!

Java dba, abyśmy się nie pomylili…

Page 158: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 159: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

No to co to ten static?

Page 160: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 161: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 162: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 163: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Pakiety z hierarchii java i javax (dodatki wprowadzone wpóźniejszych wersjach) należą do podstawowego zestawuklas rozprowadzanych jako Java.Zestaw ten jest dostępny w dwóch wersjach:•JRE (Java Runtime Environment) – udostępnia kod bajtowywszystkich klas standardowych i wirtualną maszynę doich uruchamiania,•zaś JDK (Java Development Kit) dodatkowo udostępniaźródła tych klas oraz dodatkowe narzędzia takie jakkompilator, paker czy debuger.Podział ten wprowadzono dlatego, że użytkownik Javy douruchamiania programów potrzebuje tylko JRE, natomiastdo programowania działających aplikacji potrzeba jużJDK.

Page 164: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Specyfikatory dostępu pełnią rolę w Javie bardzo ważną, pozwalają bowiem na określenie swoistego rodzaju praw dostępu do składowych klas, a także do samych klas.

PublicznyPrywatnyChronionypakietowy

Page 165: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Domyślnie, jeżeli przed składową klasy niewystępuje żadne określenie, dostęp jestpakietowy, co oznacza, że dostęp do tejskładowej mają wszystkie klasy pakietu, wktórym się one znajdują. Dostęp publicznyjest określany słowem „public”, dostępprywatny słowem „private” a chronionysłowem „protected”.

Page 166: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Pakiet JDK (konsola)

NetBeans

Eclipse

Page 167: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 168: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000
Page 170: Agnieszka Nowak - Brzezińskazsi.tech.us.edu.pl/~nowak/itBiznes/w3.pdf · 1992 r. –wielofunkcyjny pilot tv oraz tv box z funkcją wideo na żądanie! 1993 –1994 r. –300 000

Książki: ◦ Kathy Sierra, Bert Bates: Head First Java. Edycja

polska (Rusz głową!)

◦ C.S.Horstmannm G. Cornell: Java. Podstawy, wyd. VIII; Rozdziały 1-3, 7

Dokumentacja JDK:◦ http://www.oracle.com/technetwork/java/javase/d

ocumentation/index.html

◦ Zwłaszcza tutoriale

Dokumentacja NetBeans:◦ http://netbeans.org/kb/index.html