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
Programowanie Sieciowe
Troche historii jezyka Java
1990 - Bill Joy w raporcie Further sugeruje SUNowi
stworzenie srodowiska obiektowego na bazie C++,
1991 - W ramach projektu Green powstaje jezyk OAK -
Object Application Kernel (James Gosling), przeznaczony
dla aplikacji w elektronice powszechnego uzytku,
1995 - zmiana nazwy na JAVA ze wzgledu na zastrzezenie
nazwy OAK,
1996 - Pojawia sie Netscape zgodny z Java 1.0, Sun
propaguje darmowe srodowisko JDK 1.0,
1999 - Java 2 Nowe oblicze Javy.
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.
Programowanie Sieciowe
Systemy kompilacji programów
Tradycyjny system kompilacji programów
Programy napisane w Javie
Plik binarny
(Pentium)
Kod Javy
Interpreter Javy
Twój kod
Kompilator
(Pentium)
Kompilator Plik binarny
Javy
(Pentium) (PowerPC)
Plik bajtowy
Interpreter Javy
Javy
(Power PC)
Kompilator Plik binarny
(niezalezny od
(PowerPC) (SPARC)
systemu)
Interpreter Javy
Kompilator
(SPARC)
(SPARC)
Programowanie Sieciowe
Dzialanie Javy
KOMPILACJA URUCHOMIENIE
Ladowanie
Zródlo
klas
programu Kod bajtowy
Biblioteki
(*.java) dostarczany
Javy
lokalnie lub
Weryfikacja
poprzez siec
kodu
Kompilator
Javy
(javac)
Generator
Java
kodu (JIT)
Java
Interpreter
Virtual Just-in-time
Kod
Machine
bajtowy
Run-time System
(*.class)
System operacyjny
Sprzet
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
Programowanie Sieciowe
Literaly
Literaly lancuchowe
Literal to dokladnie ta sama
wartosc, która wpisano w kodzie
Opis Literal
programu.
New line (znak nowej linii) \n
Literaly liczbowe
Ponizej prezentujemy literaly
Horizontal tab (tabulacja
\t
numeryczne: calkowite i
pionowa)
rzeczywiste:
Backspace \b
169, 0251, 0xA9, 0XA9, 0xa9 -
Carriage return (powrót karetki) \r
literaly calkowite typu int i long
4.565556, 0.2, 50.0, 30.5E-11 - literaly
From feed (znak nowej strony) \f
rzeczywiste typu double
4.565556f, 0.2F, 50.0f, 30.5E-11f -
Single quote (apostrof) \'
literaly rzeczywiste typu float
Double quote (cudzyslów) \"
4.565556d, 0.2D, 50.0d, 30.5E-11d -
literaly rzeczywiste typu double
Backslash (lewy ukosnik) \\
Literaly logiczne i znakowe
Unicode (kod znaku z zbioru
\udddd
true, false literaly logiczne
Unicode)
a , # ,3 literaly znakowe
Programowanie Sieciowe
Podstawowe typy danych
Rozmiar (w
Typ danych Opis
bitach)
przyjmuje wartosci logiczne true lub false.
boolean 8
wartosc calkowita ze znakiem.
byte 8
char 16 kod znaku w kodzie Unicode.
wartosc calkowita ze znakiem.
short 16
wartosc calkowita
int 32
wartosc calkowita
long 64
wartosc zmiennoprzecinkowa
float 32
wartosc zmiennoprzecinkowa
double 64
Programowanie Sieciowe
Operatory w Javie i ich priorytety (1)
Opera
Nazwa Przyklad
tor
. 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
Operator wystepowania if(obiekt instanceof nazwa_klasy)
ceof
Programowanie Sieciowe
Operatory w Javie i ich priorytety (2)
new Operator przydzialu pamieci new typ_zmiennej
* Operator mnozenia wyrazenie * wyrazenie
/ Operator dzielenia wyrazenie / wyrazenie
wyrazenie % wyrazenie
% Operator modulo
+ Operator dodawania wyrazenie + wyrazenie
- Operator odejmowania wyrazenie - wyrazenie
<< Operator prszesuniecia w lewo wyrazeniie << wyrazenie
>> Operator przesuniecia w prawo wyrazenie >> wyrazenie
Operator przesuniecia w prawo z
>>> wyrazenie >>> wyrazenie
wypelnieniem zerami
< Operator mniejszosci wyrazenie < wyrazenie
> Operator wiekszosci wyrazenie > wyrazenie
Programowanie Sieciowe
Operatory w Javie i ich priorytety (3)
<= Operator mniejszosci lub równosci wyrazenie <= wyrazenie
>= Operator wiekszosci lub równosci wyrazenie >= wyrazenie
= = Operator równosci wyrazenie = = wyrazenie
!= Operator nierównosci wyrazenie != wyrazenie
& Operator iloczynu bitowego wyrazenie & wyrazenie
Operator bitowej róznicy
wyrazenie ^ wyrazenie
^
symetrycznej (XOR)
| Operator sumy bitowej wyrazenie | wyrazenie
&& Operator iloczynu logicznego (AND) wyrazenie && wyrazenie
|| Operator sumy logicznej (OR) wyrazenie || wyrazenie
(wyrazenie_logiczne) ? wyrazenie_true
?: Operator if - else
: wyrazenie_false
= op Operator przypisania zmienna = op wyrazenie;
gdzie 'op' jest jednym z operatorów: ( '+', '-', '*', '/', '%', '&', '|', '^', '<<', '>>', '>>>')
Programowanie Sieciowe
Tablice. Instrukcja warunkowa if.
String[ ] przyprawy = { chili ,
Tablica jest zbiorem elementów. Kazda
papryka , pieprz , bazylia };
komórka tablicy moze zawierac obiekt
lub dana jednego z typów
zapisac elementy do komórek
tablicy;
podstawowych. Tablice sa normalnymi
obiektami i moga byc traktowane w przyprawy[2] = oregano ;
sposób obiektowy.
int tab_dwuwymiarowa = new
int[20][10];
Aby stworzyc tablice nalezy:
int dlugosc = przyprawy.length;
zadeklarowac zmienna, w której
zostanie umieszczona tablica;
Instrukcja warunkowa if wykonuje
String trudneSlowa[ ];
rózne fragmenty kodu z zaleznosci od
Sting[ ] trudneSlowa;
wyniku testu logicznego.
int temp[ ]; int[ ] temp;
if (boolean)
stworzyc nowy obiekt i zapisac go w
{
zadeklarowanej zmiennej;
/* instukcje */
uzycie operatora new
}
trudneSlowa = new String[10];
else
int[ ] tmp = new int[99];
{
jawne okreslenie zawartosci
/* instrukcje */
tablicy
}
Programowanie Sieciowe
Instrukcje warunkowe if (cd) oraz switch i operator warunkowy ?:
if(stanSilnika == true )
W instrukcji switch Test porównywany jest
{
kolejno ze wszystkimi wartosciami
System.out.println("Silnik jest juz
podanymi z prawej strony slów
wlaczony.");
kluczowych case. Jezeli Test i Wartosc
}
sa równe to zostanie wykonana
else
instrukcja umieszczona po dwukropku.
{
switch ( Test)
System.out.println("Wlaczam sielnik!");
if (poziomPaliwa > 1) stanPaliwa = true;
{
else System.out.println("Zbyt malo paliwa!
case Wartosc1 :
Nie mozna uruchomic silnika");
/* ... */
}
break;
if(stanSilnika == true )
case Wartosc2 :
System.out.println("Silnik jest juz
/* ... */
wlaczony.");
break;
else
System.out.println("Wlaczam sielnik!");
default :
/* ... */
Operator warunkowy ma postac:
break;
warunek ? wynik_true : wynik_false;
}
int warunek = x < y ? x : y;
Programowanie Sieciowe
Petle for, while, do. Instrukcje break oraz continue.
for (inicjalizacja;test;inkrementacja) do {
{ /* instrukcje */
/* instrukcje */ } while ( test );
}
for (int i = 1; i < 10 ; i++) Instrukcja:
{ break powoduje natychmiastowe
przerwanie wykonania aktualnej
System.out.println( Petla wykonuje
petli, jezeli break umieszczona jest
sie + i + raz );
wewnatrz zagniezdzonych petli,
}
przerywana jest jedynie petla
wewnatrz której znajduje sie
while (test)
instrukcja break;
{
continue powoduje przejscie do
/* instrukcje */
kolejnej iteracji. Dla petli while oraz
do oznacza kolejne wykonanie
}
bloku instrukcji, dla petli for
while (indeks < tab.length &&
zmodyfikowanie zmiennych
tab[index] != 0)
sterujacych, przeprowadzenie testu
{
oraz ponowne wykonanie instrukcji
umieszczonych wewnatrz petli.
/* instrukcje */
}
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
Drzewo
ponownego uzycia w wielu róznych programach.
Atrybuty zmienne.
Drzewo
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
Klasa drzewo
Produkcja: Honda, BMW, Yamaha
(abstrakcyjna)
Zmienna instancyjna definiuje atrybuty obiektu.
Drzewo
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
Drzewo
poszczególne jej instancje. Np. klasa Motocykl moze
Programowanie Sieciowe
Klasy. (2)
instancje. Np. klasa Motocykl moze
Klasy przyklady
zawierac nastepujace zachowania:
deklaracja klasy
Wlaczanie silnika
class Punkt extends Object {
public double x;
Wylaczanie silnika
public double y;
Zablokowanie silnika
}
Przyspieszenie
deklaracja zmiennej przypisanej do
Zmiana biegu
obiektu klasy Punkt i alokacja
wystapienia obiektu
Metody sa funkcjami zdefiniowanymi
Punkt mojPunkt;
wewnatrz klasy, które operuja na jej
mojPunkt = new Punkt();
instancjach.
dostep do zmiennych obiektu Punkt:
Definicja klasy: mojPunkt.x = 5.2;
mojPunkt.y = 26.9;
ModyfikatoryKlasy class NazwaKlasy
Konstruktory
[extends klasa_bazowa]
w definicji klasy mozna podac
[implements interfejs]
konstruktory sluzace do inicjowania
{
obiektu tej klasy
... definicja metod i pól danych ... konstruktor ma nazwe klasy
name overloading dopuszcza sie
}
dowolna ilosc konstruktorów o
róznych parametrach (ilosc i typ)
Programowanie Sieciowe
Klasy. (3)
class Punkt extends Object {
Metody
public double x;
pod wzgledem skladni metody sa
public double y;
implementowane jak funkcje
Punkt () {
ModyfikatoryMetody TypRezultatu NazwaFunkcji (
x = 0.0; y = 0.0; }
Argument1, Argument2, ...)
Punkt (double x, double y) {
this.x = x; this.y = y; }
{
}
... kod zródlowy metody ...
Slowo kluczowe this
}
do odwolywania sie do wlasnych pól
stosowana dla jasnosci
Slowo kluczowe super
odwolanie do ukrytej w biezacej
klasie zmiennej lub metody klasy
nadrzednej
super.avar, super.amethod();
Programowanie Sieciowe
Hierarchia klas
Obiekt
Pojazd
PojazdPoruszanySilaMiesni PojazdSilnikowy
PojazdSilnikowyDwuKolowy PojazdSilnikowyCzteroKolowy
Motocykl Skuter Motorynka
Poczatkowa Metoda jest
Definicja metody
definicja metody przeslonieta
Klasa przez te definicje
Klasa
Wiadomosc
Klasa Wiadomosc
Klasa Klasa
przesylana do
przesylana do
obiektu i
obiektu i
przekazywana
przekazywana
w góre hiererchii klas
w góre hiererchii klas
az do odnalezienia
az do odnalezienia
Klasa Klasa
Klasa Klasa
definicji metody
definicji metody
Obiekt Obiekt Obiekt Obiekt
Wyszukiwarka
Podobne podstrony:
Programowanie sieciowe dzienne L2 Podstawy Javy08 Integracja Javy z innymi językami, programowanie siecioweC w2 podstawowe instrukcjeProgramowanie siecioweDziennik praktyki z podstaw katastrujava programowanie sieciowe(1)Programowanie sieciowe w Javiezestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6Podstawy Programowania Wersja RozszerzonaVisual C 6 0 Podstawy programowaniaNapisz program liczacy pole i obwod kola na podstawie wprowadzonegoprogram nauczania informatyki podstawówka i gimnazjummatlab podstawy programowaniaJP SS 2 algorytmy i podstawy programowaniaPodstawy programowania II 2więcej podobnych podstron