Programowanie sieciowe dzienne W2 Podstawy Javy


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 Javy
08 Integracja Javy z innymi językami, programowanie sieciowe
C w2 podstawowe instrukcje
Programowanie sieciowe
Dziennik praktyki z podstaw katastru
java programowanie sieciowe(1)
Programowanie sieciowe w Javie
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
Podstawy Programowania Wersja Rozszerzona
Visual C 6 0 Podstawy programowania
Napisz program liczacy pole i obwod kola na podstawie wprowadzonego
program nauczania informatyki podstawówka i gimnazjum
matlab podstawy programowania
JP SS 2 algorytmy i podstawy programowania
Podstawy programowania II 2

więcej podobnych podstron