Java Programowanie Sieciowe Podstawy Javy id 226331

background image

Programowanie sieciowe

Podstawy Javy

Wyklad 2

opracowal:
mgr inz. Tomasz Gratkowski
e-mail:

T.Gratkowskie@iie.pz.zgora.pl

sala: 408

tel. (068) 32-82-526

background image

Programowanie Sieciowe

Troche historii jezyka Java

l 1990 - Bill Joy w raporcie “Further” sugeruje SUNowi

stworzenie srodowiska obiektowego na bazie C++,

l 1991 - W ramach projektu “Green” powstaje jezyk OAK -

“Object Application Kernel” (James Gosling), przeznaczony
dla aplikacji w elektronice powszechnego uzytku,

l 1995 - zmiana nazwy na JAVA ze wzgledu na zastrzezenie

nazwy OAK,

l 1996 - Pojawia sie Netscape zgodny z Java 1.0, Sun

propaguje darmowe srodowisko JDK 1.0,

l 1999 - Java 2 Nowe oblicze Javy.

background image

Programowanie Sieciowe

Java platforma tworzenia i wykonywania aplikacji

Platforma (platforma programowo-sprzetowa) -

nazywa sie przewaznie pewna kombinacje sprzetu i
oprogramowania umozliwiajaca tworzenie i
wykonywanie programów. Platforme stanowi wiec
komputer o danej konfiguracji oraz system
operacyjny w srodowisku którego uruchamiana jest
dowolna aplikacja np.:
Intel PC + Windows NT; Sun Ultra + Solaris; SGI O2
+ Irix 6.4, itp.

Platforma Javy jest podobna, jest to zbiór dwóch

elementów: Java API (Application Programming
Interfaces) - interfejsy tworzenia aplikacji oraz
JavaVM (Virtual Machine) - maszyna wirtualna,
zwane czesto srodowiskiem uruchomieniowym
aplikacji - Java Runtime Engine (JRE).

Niezaleznosc systemowa – oznacza, ze program moze byc wykonany na dowolnym

systemie komputerowym. Programy napisane w Javie moga dzialac na kazdym
komputerze dla którego stworzona zostala wirtualna maszyna Javy.

Kod bajtowy Javy – jest grupa instrukcji, które nie sa charakterystyczne dla zadnego

konkretnego procesora ani systemu komputerowego. Kody te sa wykonywane
przez specjalny interpreter (wirtualna maszyna Javy) , który jest zalezny od
systemu operacyjnego i procesora na którym dziala.

background image

Programowanie Sieciowe

Systemy kompilacji programów

Kompilator

(Pentium)

Kompilator

(PowerPC)

Kompilator

(SPARC)

Plik binarny

(PowerPC)

Plik binarny

(Pentium)

Plik binarny

(SPARC)

Twój kod

Interpreter Javy

(Pentium)

Plik bajtowy

Javy

(niezalezny od

systemu)

Kompilator

Javy

Kod Javy

Interpreter Javy

(Power PC)

Interpreter Javy

(SPARC)

Tradycyjny system kompilacji programów

Programy napisane w Javie

background image

Programowanie Sieciowe

Dzialanie Javy

Zródlo

programu

(*.java)

Kompilator

Javy

(javac)

Kod

bajtowy

(*.class)

Kod bajtowy
dostarczany

lokalnie lub

poprzez siec

Ladowanie

klas

Weryfikacja

kodu

Biblioteki

Javy

Java

Interpreter

Generator
kodu (JIT)

Just-in-time

Run-time System

System operacyjny

Sprzet

Java

Virtual

Machine

KOMPILACJA

URUCHOMIENIE

Komentarze – trzy rodzaje

–/* text */ – kompilator ignoruje tekst miedzy /* i */.

–/** dokumentacja */ – wskazuje komentarz dla potrzeb dokumentacji (doc comment),
wykorzystywany przez narzedzie javadoc

–// text – kompilator ignoruje wszystko do konca linii

background image

Programowanie Sieciowe

Literaly

Literal

to dokladnie ta sama

wartosc, która wpisano w kodzie
programu.

Literaly liczbowe

Ponizej prezentujemy literaly
numeryczne: calkowite i
rzeczywiste:

169, 0251, 0xA9, 0XA9, 0xa9 -
literaly calkowite typu int i long

4.565556, 0.2, 50.0, 30.5E-11 - literaly
rzeczywiste typu double

4.565556f, 0.2F, 50.0f, 30.5E-11f -
literaly rzeczywiste typu float

4.565556d, 0.2D, 50.0d, 30.5E-11d -
literaly rzeczywiste typu double

Literaly logiczne i znakowe

true, false – literaly logiczne

‘a’,’#’,3’ – literaly znakowe

Literaly lancuchowe

Opis

Literal

New line (znak nowej linii)

\n

Horizontal tab (tabulacja
pionowa)

\t

Backspace

\b

Carriage return (powrót karetki)

\r

From feed (znak nowej strony)

\f

Single quote (apostrof)

\'

Double quote (cudzyslów)

\"

Backslash (lewy ukosnik)

\\

Unicode (kod znaku z zbioru
Unicode)

\

udddd

background image

Programowanie Sieciowe

Podstawowe typy danych

Typ danych

Rozmiar (w
bitach)

boolean

8

przyjmuje wartosci logiczne true lub false.

byte

8

wartosc calkowita ze znakiem.

char

16

kod znaku w kodzie Unicode.

short

16

wartosc calkowita ze znakiem.

int

32

wartosc calkowita

long

64

wartosc calkowita

float

32

wartosc zmiennoprzecinkowa

double

64

wartosc zmiennoprzecinkowa

Opis

background image

Programowanie Sieciowe

Operatory w Javie i ich priorytety

(1)

Opera
tor

Nazwa

Przyklad

.

Selektor obiektu

obiekt.nazwa_elementu

[]

Indeks tablicy

tablica[nuner_elementu]

()

Wywolanie funkcji

nazwa_funkcji(lista_elementów)

++

Przyrostkowy operator inkrementacji

zmienna++

++

Przedrostkowy operator inkrementacji

++zmienna

--

Przyrostkowy operator dekrementacji

zmienna--

--

Przedrostkowy operator inkrementacji

--zmienna

~

Operator uzupelnienia jedynkowego

~wyrazenie

!

Operator negacji logicznej

!wyrazenie

instan
ceof

Operator wystepowania

if(obiekt instanceof nazwa_klasy)

background image

Programowanie Sieciowe

Operatory w Javie i ich priorytety

(2)

Operator odejmowania

new

Operator przydzialu pamieci

new typ_zmiennej

*

Operator mnozenia

wyrazenie * wyrazenie

/

Operator dzielenia

wyrazenie / wyrazenie

%

Operator modulo

wyrazenie % wyrazenie

+

Operator dodawania

wyrazenie + wyrazenie

-

wyrazenie - wyrazenie

<<

Operator prszesuniecia w lewo

wyrazeniie << wyrazenie

>>

Operator przesuniecia w prawo

wyrazenie >> wyrazenie

>>>

Operator przesuniecia w prawo z
wypelnieniem zerami

wyrazenie >>> wyrazenie

<

Operator mniejszosci

wyrazenie < wyrazenie

>

Operator wiekszosci

wyrazenie > wyrazenie

background image

Programowanie Sieciowe

Operatory w Javie i ich priorytety

(3)

Operator wiekszosci lub równosci

(wyrazenie_logiczne) ? wyrazenie_true
: wyrazenie_false

<=

Operator mniejszosci lub równosci

wyrazenie <= wyrazenie

>=

wyrazenie >= wyrazenie

= =

Operator równosci

wyrazenie = = wyrazenie

!=

Operator nierównosci

wyrazenie != wyrazenie

&

Operator iloczynu bitowego

wyrazenie & wyrazenie

^

Operator bitowej róznicy
symetrycznej (XOR)

wyrazenie ^ wyrazenie

|

Operator sumy bitowej

wyrazenie | wyrazenie

&&

Operator iloczynu logicznego (AND)

wyrazenie && wyrazenie

||

Operator sumy logicznej (OR)

wyrazenie || wyrazenie

?:

Operator if - else

= op

Operator przypisania

zmienna = op wyrazenie;

gdzie 'op' jest jednym z operatorów: ( '+', '-', '*', '/', '%', '&', '|', '^', '<<', '>>', '>>>')

background image

Programowanie Sieciowe

Tablice.

Instrukcja warunkowa if.

Tablica –

jest zbiorem elementów. Kazda

komórka tablicy moze zawierac obiekt
lub dana jednego z typów
podstawowych. Tablice sa normalnymi
obiektami i moga byc traktowane w
sposób obiektowy.

Aby stworzyc tablice nalezy:

– zadeklarowac zmienna, w której

zostanie umieszczona tablica;
String trudneSlowa[ ]; çc
Sting[ ] trudneSlowa;
int temp[ ]; çc int[ ] temp;

– stworzyc nowy obiekt i zapisac go w

zadeklarowanej zmiennej;

l uzycie operatora new

trudneSlowa = new String[10];
int[ ] tmp = new int[99];

l jawne okreslenie zawartosci

tablicy

Instrukcja warunkowa if –

wykonuje

rózne fragmenty kodu z zaleznosci od
wyniku testu logicznego.
if (boolean)
{

/* instukcje */

}
else
{

/* instrukcje */

}

String[ ] przyprawy = {”chili”,
”papryka”, ”pieprz”, ”bazylia”};

– zapisac elementy do komórek

tablicy;
przyprawy[2] = ”oregano”;

int tab_dwuwymiarowa = new

int[20][10];

int dlugosc = przyprawy.length;

background image

Programowanie Sieciowe

Instrukcje warunkowe if

(cd) oraz switch i

operator warunkowy ?:

if(stanSilnika == true )
{

System.out.println("Silnik jest juz
wlaczony.");

}
else
{

System.out.println("Wlaczam sielnik!");

if (poziomPaliwa > 1) stanPaliwa = true;
else System.out.println("Zbyt malo paliwa!

Nie mozna uruchomic silnika");

}

if(stanSilnika == true )

System.out.println("Silnik jest juz
wlaczony.");

else

System.out.println("Wlaczam sielnik!");

Operator warunkowy ma postac:
warunek ? wynik_true : wynik_false;
int warunek = x < y ? x : y;

W instrukcji switch Test porównywany jest

kolejno ze wszystkimi wartosciami
podanymi z prawej strony slów
kluczowych case. Jezeli Test i Wartosc
sa równe to zostanie wykonana
instrukcja umieszczona po dwukropku.

switch ( Test)

{

case Wartosc1 :

/* ... */

break;

case Wartosc2 :

/* ... */

break;

default :

/* ... */

break;

}

background image

Programowanie Sieciowe

Petle for, while, do. Instrukcje break oraz continue.

for (inicjalizacja;test;inkrementacja)

{

/* instrukcje */

}
for (int i = 1; i < 10 ; i++)
{

System.out.println(„Petla wykonuje
sie „ + i + „ raz”);

}

do {

/* instrukcje */

} while ( test );

Instrukcja:
break – powoduje natychmiastowe

przerwanie wykonania aktualnej
petli, jezeli break umieszczona jest
wewnatrz zagniezdzonych petli,
przerywana jest jedynie petla
wewnatrz której znajduje sie
instrukcja break;

continue – powoduje przejscie do

kolejnej iteracji. Dla petli while oraz
do oznacza kolejne wykonanie
bloku instrukcji, dla petli for –
zmodyfikowanie zmiennych
sterujacych, przeprowadzenie testu
oraz ponowne wykonanie instrukcji
umieszczonych wewnatrz petli.

while (test)

{

/* instrukcje */

}

while (indeks < tab.length &&

tab[index] != 0)

{

/* instrukcje */

}

background image

Programowanie Sieciowe

Myslenie na sposób obiektowy. Klasy oraz obiekty.

Klasa – jest ogólnym szablonem grupy obiektów
posiadajacych te same wlasciwosci.
Instancja – jest konkretna reprezentacja okreslonej klasy.
Instancje oraz obiekty sa tym samym.
Biblioteka klas – jest zbiorem klas stworzonych w celu ich
ponownego uzycia w wielu róznych programach.

Atrybuty – zmienne.

Atrybuty sa elementami, które moga róznic poszczególne
obiekty tej samej klasy. Np. klasa Motocykl moze zawierac
nastepujace atrybuty:

–Kolor: czerwony, zielony,srebrny

–Typ: sportowy,rajdowy, terenowy

–Produkcja: Honda, BMW, Yamaha

Zmienna instancyjna – definiuje atrybuty obiektu.
Typy oraz nazwy zmiennych instancyjnych okreslone
sa w klasie, jednakze ich wartosci sa ustawiane i
modyfikowane w obiektach.

Zachowania – metody.

Zachowania klasy definiuja sposób, w jaki dzialac beda
poszczególne jej instancje. Np. klasa Motocykl moze

Drzewo

Drzewo

Drzewo

Drzewo

Klasa drzewo

(abstrakcyjna)

background image

Programowanie Sieciowe

Klasy.

(2)

instancje. Np. klasa Motocykl moze

zawierac nastepujace zachowania:

– Wlaczanie silnika

– Wylaczanie silnika

– Zablokowanie silnika

– Przyspieszenie

– Zmiana biegu

Metody sa funkcjami zdefiniowanymi

wewnatrz klasy, które operuja na jej
instancjach.

Definicja klasy:

ModyfikatoryKlasy class NazwaKlasy

[extends klasa_bazowa]

[implements interfejs]

{

... definicja metod i pól danych ...

}

l Klasy – przyklady

– deklaracja klasy

class Punkt extends Object {

public double x;
public double y;

}

– deklaracja zmiennej przypisanej do

obiektu klasy Punkt i alokacja
wystapienia obiektu
Punkt mojPunkt;
mojPunkt = new Punkt();

– dostep do zmiennych obiektu Punkt:

mojPunkt.x = 5.2;
mojPunkt.y = 26.9;

l Konstruktory

– w definicji klasy mozna podac

konstruktory sluzace do inicjowania
obiektu tej klasy

– konstruktor ma nazwe klasy
name overloading – dopuszcza sie

dowolna ilosc konstruktorów o
róznych parametrach (ilosc i typ)

background image

Programowanie Sieciowe

Klasy.

(3)

class Punkt extends Object {

public double x;
public double y;

Punkt () {

x = 0.0; y = 0.0; }

Punkt (double x, double y) {

this.x = x; this.y = y; }

}

l Slowo kluczowe this

– do odwolywania sie do wlasnych pól

– stosowana dla jasnosci

l Slowo kluczowe super

– odwolanie do ukrytej w biezacej

klasie zmiennej lub metody klasy
nadrzednej

super.avar, super.amethod();

lMetody

–pod wzgledem skladni metody sa
implementowane jak funkcje

ModyfikatoryMetody TypRezultatu NazwaFunkcji (

Argument1, Argument2, ...)

{

... kod zródlowy metody ...

}

background image

Programowanie Sieciowe

Hierarchia klas

Obiekt

Pojazd

PojazdPoruszanySilaMiesni

PojazdSilnikowy

PojazdSilnikowyDwuKolowy

PojazdSilnikowyCzteroKolowy

Motocykl

Skuter

Motorynka

Klasa

Klasa

Klasa

Klasa

Klasa

Obiekt

Obiekt

Definicja metody

Wiadomosc
przesylana do
obiektu i
przekazywana
w góre hiererchii klas
az do odnalezienia
definicji metody

Klasa

Klasa

Klasa

Obiekt

Obiekt

Poczatkowa

definicja metody

Wiadomosc
przesylana do
obiektu i
przekazywana
w góre hiererchii klas
az do odnalezienia
definicji metody

Klasa

Metoda jest

przeslonieta

przez te definicje


Wyszukiwarka

Podobne podstrony:
programowanie sieciowe dzienne l2 podstawy javy Z5XS7QYSX4ALQFQWTRTRQREAPJWW7C4FBO7EGPI
Programowanie Od podstaw id 39 Nieznany
08 Integracja Javy z innymi językami, programowanie sieciowe
08 Integracja Javy z innymi językami, programowanie sieciowe
2 Podstawowe definicje (2)id 19609 ppt
Laboratorium Podstaw Fizyki id Nieznany
Podstawy filozofii S id 367109
Podstawy Zarzdzania id 368860 Nieznany
Podstawowe zagadnienia id 36653 Nieznany
Poziom podstawowy odpowiedzi(1) id 380127
Asertywnosc podstawowe zagadnienia id 70411
Program szkolenia podstawowego OSP - luty 2014, szkolenia, OSP
Projekt badania operacyjne- programowanie sieciowe, Badania operacyjne
konspekt cw 4 programowanie sieciowe

więcej podobnych podstron