Podstawowe aspekty programowania w Javie - PowerPoint PPT Presentation

1 / 109
About This Presentation
Title:

Podstawowe aspekty programowania w Javie

Description:

Title: Microsoft Office Outlook 2003 Training Author: Micha Kuciapski Last modified by: Micha Kuciapski Created Date: 11/15/2005 9:30:33 PM – PowerPoint PPT presentation

Number of Views:284
Avg rating:3.0/5.0
Slides: 110
Provided by: MichalKu
Category:

less

Transcript and Presenter's Notes

Title: Podstawowe aspekty programowania w Javie


1
Podstawowe aspekty programowania w Javie
  • Michal Kuciapski
  • m.kuciapski_at_univ.gda.pl

2
Kwestie organizacyjne
3
Celem przedmiotu jest ukazanie podstawowych
elementów skladni jezyka programowania Java wraz
z wykazaniem praktycznego ich zastosowania w
tworzeniu aplikacji konsolowych, na podstawie
rozbudowanego przykladu przy wsparciu ze strony
technik analizy i projektowania obiektowego.
Cel przedmiotu
4
Tematyka przedmiotu
5
Tematyka przedmiotu
6
Tematyka przedmiotu
7
Tematyka przedmiotu
8
Ocena
  • Egzamin 70
  • Ocena z cwiczen 30
  • Dodatkowe punkty za aktywnosc
  • Zwolnienia dla osób z ocena z cwiczen
  • 4,5 i 5

9
Literatura
  1. Eckel B, Thinking in Java, 3rd Edition Revision
    4.0 , Prentice-Hall, New Jersey 2002
    http//www.pythoncriticalmass.com/
  2. Dokumentacja producenta jezyka JAVA
    http//java.sun.com/docs/
  3. Kurs dotyczacy jezyka Java firmowany przez CISCO
    Networking Academy oraz firme SUN
    http//java.sun.com/docs/books/tutorial/index.html

10
Jezyki programowania
11
Typy jezyków programowania
  • Jezyk maszynowy - kod maszynowy pisany binarnie
    lub szesnastkowo.
  • Asemblery - jezyki programowania tzw. niskiego
    poziomu. Kazda instrukcja asemblera odpowiada
    jednej instrukcji procesora w kodzie maszynowym
    (w przeciwienstwie do jezyków wysokiego poziomu).
    Przyklad Asembler.
  • Imperatywne - program sklada sie ze zmiennych
    oraz modyfikujacych je operacji, z jawnie
    okreslonym przeplywem sterowania. Typowe jezyki
    tego typu to C, Pascal.
  • Obiektowe - program sklada sie z "obiektów" -
    elementów laczacych stan (czyli dane) i
    zachowanie (metody). Obiektowy program
    komputerowy jest zbiorem obiektów, komunikujacych
    sie pomiedzy soba w celu wykonywania zadan.
    Typowe jezyki Simula, Smalltalk, C, Perl,
    Java, Ada, Python, Delphi, VB.

12
Podstawowe informacje o jezyku Java
  • Historia i istota jezyka Java

13
Najwazniejsze etapy historia Javy
  • 1980 pojawienie sie koncepcji programowania
    obiektowego (ang. object-oriented programming
    (OOP ))
  • 1990 Bill Joy w raporcie Further sugeruje
    SUNowi stworzenie srodowiska obiektowego na bazie
    C
  • 1991 projekt Green. Powstaje jezyk 7 / OAK
    (Object Application Kernel) firmowany przez
    Jamesa Goslinga. Przeznaczenie elektronika
    powszechnego uzytku (Przenosnosc! Niezaleznosc od
    róznych procesorów!)
  • 1995 zmiana nazwy na Java

14
Najwazniejsze etapy historia Javy
  • 1996 w przegladarce Netscape zaimplementowano
    obsluge JAVA w wersji 1.0 SUN propaguje darmowe
    srodowisko JDK 1.0
  • 1999 JAVA 2, zastosowania biznesowe
  • 1999 stale rozwijanie jezyka przez firme Sun

15
Dlaczego Java
  • Szerokie zastosowanie
  • Elastycznosc w zakresie obslugiwanego sprzetu
  • Wsparcie ze strony profesjonalnych narzedzi
  • Mozliwosc ponownego wykorzystania raz stworzonego
    kodu
  • Uproszczenie szeregu mechanizmów oraz zwiekszenie
    poziomu bezpieczenstwa w stosunku C
  • Moda

16
Zastosowania Javy
  • Karty inteligentne i elektronika
  • Systemy zarzadzania bazami danych
  • Obsluga multimediów
  • Internet - rozproszone, wielowarstwowe aplikacje
    - J2EE (Java 2 Enterprise Edition) , aplety
  • Grafika 3D
  • Technologie mobilne
  • Kryptografia

17
Jezyki kompilowane a interpretowalne
  • Jezyki kompilowane
  • Caly kod zródlowy aplikacji jest kompilowany do
    pliku wykonalnego (.exe, .com)
  • Kompilacja polega na transformacji kodu
    zródlowego w plik zrozumialy dla konkretnej
    platformy programowo-sprzetowej
  • Program nie bedzie dzialal w innych srodowiskach
  • Kompilacja jest procesem wykonywanym jednokrotnie
  • Plik wykonywalny zostanie stworzony tylko i
    wylacznie wtedy, gdy nie wystapia zadne bledy
    skladniowe

18
Jezyki kompilowane a interpretowalne
  • Jezyki interpretowalne
  • Nie wystepuje plik wykonywalny dostosowany do
    konkretnej platformy - tzw. Beta-kod,
  • Kolejne linie kodu sa na biezaco odczytywane z
    pliku zródlowego i wykonywane
  • Kontrola skladni wykonywana jest dopiero w
    momencie wywolania kolejnych linii kodu
  • Jezyki tego typu sa z natury wolniejsze

19
Platforma Javy
Program w Javie
Wirtualna Maszyna Javy
Java API
System komputerowy
20
Architektura
Kod zródlowy Java (.java)
Biblioteka klas Javy
Ladowacz Klas Weryfikator kodu
Kod bajtowy Java Przesylany jest lokalnie lub
poprzez siec
Kompilator
Wirtualna Maszyna Javy
Interpretator Java
Kompilator kodu w locie
Kod bajtowy Java (.class)
System wykonywania
System operacyjny
Sprzet
21
Srodowisko tworzenia aplikacji
  • JVM (Java Virtual Machine)
  • Java API (Application Programming Interfaces)
  • JRE (Java Runtime Engine)
  • narzedzia kompilacji
  • biblioteki
  • Java SDK (Software Development Kit)

22
Podstawowe narzedzia
  • javac prekompilator
  • java interpretator beta-kodu
  • javaw j. w., bez konsoli
  • javadoc generator dokumentacji
  • appletviewer interpretator appletów
  • jar narzedzie do zarzadzania archiwami
  • jdb debugger
  • Narzedzia domyslnie znajduja sie w katalogu
    c\java2sdk\bin

23
Procedura tworzenia programu
  • Napisanie kodu zródlowego i zapisanie go w pliku
    NazwaKlasy.java
  • Nazwa pliku powinna byc identyczna z nazwa klasy
  • Prekompilacja do beta-kodu
  • javac NazwaKlasy.java
  • Uruchomienie programu
  • java NazwaKlasy

24
Procedura tworzenia programu
  • UWAGI
  • Java jest jezykiem case-sensitive
  • Uwazamy, aby w momencie uzycia narzedzia javac
    podac rozszerzenie, a z kolei przy zastosowaniu
    interpretera java je pominac
  • Poczatkowo najlepiej korzystac z katalogu bin do
    zapisywania programów
  • Na pózniejszym etapie definiujemy w ustawieniach
    systemu zmienne srodowiskowe
  • CLASSPATH katalog w którym znajduja sie
    klasy
  • PATH katalog w którym znajduja sie
    narzedzia

25
Podstawowe informacje o jezyku Java
  • Konstruowanie kodu w jezyku Java

26
Typy elementy programowania Javy
  • Strukturalne
  • Obiektowe
  • Zdarzeniowe
  • Wspólbiezne

27
Struktura programu
  • PrzykladowaKlasa.java
  • class PrzykladowaKlasa
  • UWAGI
  • Musi istniec zgodnosc pomiedzy nazwa wywolanego
    pliku a nazwa klasy
  • Nazwy klas powinny zawierac rzeczowniki (np.
    Student, PobieranieDanych), rzeczowniki i
    przymiotniki (np. WykladowcaAkademicki), aby
    jednoznacznie wyrazac typy tworzonych obiektów.
    Nie powinny zawierac one czasowników (np.
    DodajeStudentów)

28
Zasady konstrukcji kodu
  • Tworzenie czytelnego kodu jest jego organizacja w
    bloki, które sa wyrózniane poprzez wciecia
  • instrukcja_grupujaca
  • Stosowanie pewnej nadmiarowosci
  • int a (c2) (b/3)
  • zamiast
  • int ac2b/3

29
Zasady konstrukcji kodu
  • Wykorzystywanie komentarzy
  • Komentarz liniowy
  • // taka linia kodu zostanie pominieta przez
    interpretator
  • Komentarz blokowy
  • /
  • tu jest
  • kilka
  • linii
  • które sa ignorowane
  • /

30
Zasady konstrukcji kodu
  • Komentarz dokumentacyjny
  • /
  • niby
  • podobnie, a jednak
  • inaczej
  • /
  • Czesto komentarz dokumentacyjny jest umieszczany
    na samym poczatku programu, i zawiera specjalne
    slowa kluczowe
  • _at_author tu imie i nazwisko autora
  • _at_version tu wersja aplikacji
  • _at_see tu ewentualne odwolania do zródel

31
Zasady konstrukcji kodu
  • Umieszczajac komentarze pamietajmy, ze sa one
    interpretowane jako spacja.
  • double pi 3.14/kto to spamieta/56
  • Konsekwencja
  • int n
  • int n
  • Nazewnictwo

32
Przykladowy program
  • /
  • _at_author Michal Kuciapski
  • _at_version 0.1
  • /
  • public class Powitanie // po uruchomieniu na
    ekran // wyskoczy Witaj serdecznie!
  • public static void main(String args)
  • System.out.println(Witaj serdecznie!)

33
Podstawowe informacje o jezyku Java
  • Podstawowe informacje o obiektowosci Javy

34
Paradygmat obiektowosci
  • Opanowywanie zlozonosci dziedziny problemu opiera
    sie na zasadach
  • rozróznianie poszczególnych obiektów
  • tworzenie pojec - laczenie obiektów w klasy
  • znajdowanie zaleznosci miedzy pojeciami -
    klasami, wyprowadzanie nowych
  • okreslanie relacji miedzy obiektami, agregacja,
    kojarzenie

35
Na czym polega obiektowosc Javy
  • Obiekty i atrybuty
  • Klasy i rozróznianie miedzy nimi
  • Zaleznosci miedzy pojeciami dziedziczenie,
    agregacja, kojarzenie
  • Hermetyzacja
  • Komunikacja przy pomocy komunikatów

36
Na czym polega obiektowosc Javy obiekty i
atrybuty
Obiekt abstrakcja czegos w dziedzinie
problemu Abstrakcja - ignorowanie tych aspektów
(cech, wlasciwosci) przedmiotu, które nie sa
istotne z punktu widzenia biezacego celu, a
koncentrowanie sie na aspektach
wlasciwych Obiekt (identyfikacja)
stan zachowanie
37
Na czym polega obiektowosc Javy klasy
Klasa abstrakcja grupy obiektów o podobnej
charakterystyce Klasa wspólne
wlasnosci wspólne zachowania
38
Na czym polega obiektowosc Javy zaleznosci
Dziedziczenie wyrazanie podobienstwa miedzy
klasami przy pomocy hierarchii uszczególawiania i
uogólniania Agregacja wyróznianie obiektów
calosci i ich skladowych Kojarzenie
wiazanie obiektów na podstawie ich cech
(atrybutów)
39
Na czym polega obiektowosc Javy hermetyzajca
Hermetyzacja ukrywanie informacji o skladowych
systemu tak, aby zamykaly one w sobie mozliwie
jedna decyzje projektowa
40
Na czym polega obiektowosc Javy przyklad
Elementy obiektowe w przykladowej aplikacji do
zarzadzania informacjami o studentach i
nauczycielach majacej nastepujace
funkcjonalnosci
1. Dodanie osoby (nauczyciel/student) 2.
Usuniecie osoby (nauczyciel/student) 3.
Wyszukanie i wyswietlenie danych osoby
(nauczyciel/student) 4. Modyfikacja danych osoby
(nauczyciel/student) 5. Wyswietlenie listy osób
(nauczyciel/student) 6. Zapisanie danych 7.
Wczytanie danych 8. Wyjscie z aplikacji
41
Na czym polega obiektowosc Javy przyklad
Obiekty i atrybuty nauczycielMK.imie
Michal studentAP.nazwisko Borski
PobieranieDanych tym new PobieranieDanych()
tym.imie br.readLine() this.pracuje true
42
Na czym polega obiektowosc Javy przyklad
Klasy i rozróznianie pomiedzy nimi public
class OperacjePlikowe
public class PobieranieDanych
43
Na czym polega obiektowosc Javy przyklad
Zaleznosci dziedziczenie public abstract
class Osoba class
Nauczyciel extends Osoba
44
Na czym polega obiektowosc Javy przyklad
Zaleznosci - komunikacja za pomoca komunikatów
class Nauczyciel extends Osoba
public Nauczyciel dodaj() throws
IOException
PobieranieDanych tym new PobieranieDanych()
tym.dodajNauczyciel()

45
Skladnia jezyka Java
  • Elementy strukturalne

46
Elementy leksykalne
  • Komentarze
  • Identyfikatory
  • Slowa kluczowe
  • Separatory
  • Przyklad

47
Komentarze
  • Trzy typy
  • Jednoliniowe - // - np. //wczytanie linii tekstu
    z pliku
  • Blokowe - / / - np. / wczytanie linii tekstu
    z pliku

  • skonwertowanie na liczbe /
  • Dokumentacyjne - / / - np.
  • /
  • Write a description of class j here.
  • _at_author (your name)
  • _at_version (a version number or a date)
  • /

48
Separatory
49
Slowa kluczowe
  • Slowa kluczowe sa identyfikatorami o specjalnym
    znaczeniu dla jezyka (kompilatora) Java.
  • Poszukiwane przez kompilator w czasie kompilacji.
  • Zarezerwowane dla jezyka i nie moga byc uzywane w
    konstrukcji nazw wlasnych identyfikatorów.

50
Slowa kluczowe - lista
abstract deklaruje klase lub metode jako
abstrakcyjna boolean deklaruje zmienna lub
wartosc zwracana jako wartosc logiczna break
przerwanie byte deklaruje zmienna lub wartosc
zwracana jako wartosc byte case okresla opcje w
instrukcji wyboru switch catch obsluguje
wyjatek char deklaruje zmienna lub wartosc
zwracana jako wartosc znaku class oznacza
poczatek definicji klasy const definiuje stala
(nieuzywane) continue przerywa petle
rozpoczynajac jej kolejny cykl
51
Slowa kluczowe - lista
default okresla domyslne dzialanie dla
instrukcji wyboru switch do rozpoczyna blok
instrukcji w petli while double deklaruje
zmienna lub wartosc zwracana jako wartosc
rzeczywista o podwójnej precyzji else okresla
kod warunkowy do wykonania jesli nie jest
spelniony warunek w instrukcji if extends
okresla, ze definiowana klasa dziedziczy z
innej final okresla pole, metode lub klase jako
stala finally gwarantuje wykonywalnosc blok
kodu float deklaruje zmienna lub wartosc
zwracana jako wartosc rzeczywista
52
Slowa kluczowe - lista
for okresla poczatek petli for, goto
instrukcja skoku (jej uzywanie to zbrodnia) if
okresla poczatek instrukcji warunkowej
if implements deklaruje, ze klasa korzysta z
danego interfejsu import okresla dostep do
pakietów i klas instanceof sprawdza czy dany
obiekt jest wystapieniem okreslonej klasy int
deklaruje zmienna lub wartosc zwracana jako
wartosc calkowita 4 bajtowa interface okresla
poczatek definicji interfejsu long deklaruje
zmienna lub wartosc zwracana jako wartosc
calkowita 8 bajtowa
53
Slowa kluczowe - lista
native okresla, ze metoda jest tworzona w
kodzie danej platformy (np. C) new wywoluje
nowy obiekt package okresla nazwe pakietu do
którego nalezy dana klasa private deklaruje
metode lub pole jako prywatne protected
deklaruje metode lub pole jako chronione public
deklaruje metode lub pole jako dostepne return
okresla zwracanie wartosci metody short
deklaruje zmienna lub wartosc zwracana jako
wartosc calkowita 2 bajtowa static deklaruje
pole, metode lub kod jako statyczny super
odniesienie do rodzica danego obiektu
54
Slowa kluczowe - lista
switch poczatek instrukcji wyboru synchronized
oznacza fragment kodu jako synchronizowany, this
odniesienie do aktualnego obiektu throw
zglasza wyjatek throws deklaruje wyjatek
zglaszany przez metode transient oznacza
blokade pola przed szeregowaniem try poczatek
bloku kodu, który moze wygenerowac wyjatek void
deklaruje, ze metoda nie zwraca zadnej
wartosci volatile ostrzega kompilator, ze
zmienna moze sie zmieniac asynchronicznie while
poczatek petli
55
Elementy strukturalne
  • Zmienne

56
Zmienne
  • Zmienne przechowuja wartosci, do których mozemy
    odwolywac sie w trakcie dzialania programu
  • Istnieje szereg typów danych charakteryzujacych
    zmienne
  • Kazdy typ danych zajmuje okreslona ilosc pamieci
  • Typy te mozna podzielic na dwie kategorie
    podstawowe i rozszerzone
  • Typy podstawowe zawsze nazywane sa z malej litery
  • Typy rozszerzone sa w istocie kombinacja typów
    podstawowych
  • Typy rozszerzone nazywane sa z wielkiej litery i
    zwyczajowo inaczej deklarowane

57
Zmienne typy proste liczby calkowite
58
Zmienne typy proste liczby rzeczywiste
59
Zmienne typy proste inne
60
Zmienne typy zlozone
  • Istnieje wiele zdefiniowanych i mozna definiowac
    wlasne
  • Waznym typem danych jest String (ciag znaków)
    znak
  • String nauczyciel Michal Kuciapski
  • String nauczyciel new String(Michal
    Kuciapski)
  • Przyklad wbudowanego typu
  • BufferedReader br new BufferedReader(new
    InputStreamReader(System.in))
  • Przyklad zdefiniowanego wlasnego typu
  • Nauczyciel mk new Nauczyciel(Michal,
    Kuciapski, 25)

61
Zmienne literaly
Literaly oznaczaja nazwy zmiennych, których typ
oraz wartosci wynikaja z zapisu. Ponadto
umozliwiaja wyrazanie specyficznych wartosci
  • Typy literalów
  • boolean moga miec wylacznie wartosc true lub
    false
  • Znakowe (char) zestaw znaków Unicode
  • Napisowe

62
Zmienne literaly
63
Zmienne deklarowanie
  • typ identyfikator wartosc, identyfikator
    wartosc,
  • Przyklady dla typów prostych
  • int wiek //tylko deklaracja
  • wiek 34 //tylko inicjalizacja
  • int wiek 34 //deklaracja i inicjalizacja
    statycznie
  • int wiek nauczyciel.pobierzWiek() //
    deklaracja i
  • inicjalizacja dynamicznie
  • Przyklady typów zlozonych
  • String imie //dekl. imie new String(Anna)
    //inic.
  • String imie new String() //dekl. i inic.

64
Zmienne zasieg i czas zycia
  • Zasieg
  • Globalny na poczatku klasy publicznej
  • Lokalny
  • Dla metody
  • Dla bloku

65
Zmienne zasieg i czas zycia
  • Czas zycia
  • Dla globalnych jesli zmienna jest tworzona
  • wraz z obiektem czas zyciu równy czasowi
    istnienia obiektu
  • wraz z klasa (zmienna statyczna) dostepna przez
    caly czas
  • Dla lokalnych okres wykonywania instrukcji w
    metodzie lub bloku

66
Zmienne zasieg i czas zycia
Przyklad class Zasieg public static void
main(String args) int x // znane w calej
procedurze main x 10 if(x 10) //
rozpoczecie nowego zasiegu int y 20 //
znane wylacznie w tym bloku // x i y oba
znane tutaj System.out.println("x i y "
x " " y) x y 2 // y
100 // Blad - y nieznane tutaj // x wciaz
znane tutaj System.out.println("x jest równe
" x)
67
Zmienne konwersje
  • Automatyczne dokonywane przez sam program, gdy
    typy sa kompatybilne i gdy typ docelowy jest
    wiekszy od zródlowego, np. int na long
  • Poprzez casting dla typów niekompatybilnych
    (typ docelowy) wartosc
  • int a byte b b (byte) a
  • Nauczyciel nauczyciel (Nauczyciel)
    listaNauczycielilicznikNauczyciele

68
Zmienne przyklad
class Studenci public static void main(String
args) int studenciIrok 400,
studenciIIrok 350, studenciIIIrok 342
System.out.println("Program wyliczajacy liczbe
studentów") System.out.println("Laczna
liczba studentów " (studenciIrok
studenciIIrok studenciIIIrok))
69
Tablica
  • Jest zbiorem elementów (wartosci, obiektów) tego
    samego typu
  • Umozliwia i upraszcza przechowywanie wiekszej
    ilosci elementów (wartosci, obiektów) pod nazwa
    jednej zmiennej
  • Jest obiektem, przechowujacym w polu length
    dlugosc tablicy
  • Moga miec wiele wymiarów, w rózny sposób
    zdefiniowany

70
Tablice jednowymiarowe - deklarowanie,
inicjowanie, definiowanie
  • Deklarowanie - typ nazwaZmiennej
  • Przyklad String studenci
  • Inicjowanie nazwaZmiennej new typwielkosc
  • Przyklad studenci new String10
  • Definiowanie - typ nazwaZmiennej new
    typwielkosc
  • Przyklady String studenci new String10
  • Student studenci new Student10

71
Tablice wielowymiarowe
  • Deklarowanie - typ nazwaZmiennej
  • Przyklad int poleGry
  • Inicjowanie poleGry new int108
  • Definiowanie
  • int poleGry new int108
  • Object plansza new Object108

72
Tablice alternatywne metody deklarowania i
definiowania
  • Istnieja dwie metody deklarowania
  • Przy nazwie zmiennej
  • int nauczyciele new int3
  • char rozmieszczenie new char34
  • Przy nazwie typu
  • int nauczyciele new int3
  • char rozmieszczenie new char34

73
Tablice inicjowanie wartosci
  • Istnieja dwie metody inicjowania wartosci
  • Poprzez odwolanie do odpowiedniego indeksu
  • iloscDni0 31
  • plansza23 smok1
  • Przy deklarowaniu
  • String studenci Adam Malski, Tadeusz
    Smigly
  • Object plansza
  • las1, smok1, tawerna1,
  • bagna1, las2, las3,,
  • las4, tawerna2, tawerna3,
  • dom1, barbarzyncy1, barbarzyncy2

74
Elementy strukturalne
  • Operatory

75
Operatory
  • Elementy jezyka sluzace do generacji nowych
    wartosci na podstawie podanych argumentów
  • Zazwyczaj uzywane w kontekscie operacji na
    zmiennych i sterowania wykonywaniem programu
  • Wyróznia sie kilka typy operatorów
  • Arytmetyczne,
  • Bitowe,
  • Relacyjne,
  • Logiczne

76
Operatory arytmetyczne
Dodawanie np. a a a
Odejmowanie, minus unarny np. a -a
Mnozenie / Dzielenie Modulo
Inkrementacja np. a a a a
Dodanie i przypisanie np. a
a Odjecie i przypisanie Mnozenie i
przypisanie / Dzielenie i przypisanie Modulo
i przypisanie Dekrementacja
77
Operatory bitowe - przesuniecia bitów
  • Operuja na bitowych reprezentacjach liczb
    calkowitych
  • Moga byc wykorzystywane jako element
    oszczedzajacy pamiec podczas zapamietywania
    kolekcji wartosci typu boolean
  • ltlt - przesuniecie bitowe w lewo
  • gtgt - przesuniecie bitowe w prawo z powieleniem
    znaku
  • gtgtgt - przesuniecie bitowe w prawo
  • Liczba 20 000
  • 00000000000000000100111000100000
  • ltlt 2 00000000000000010011100010000000
  • gtgtgt2 00000000000000000001001110001000

78
Operatory bitowe przesuniecia bitów
  • liczba
  • 00000000000000000010100100101100 10 540
  • liczbaltlt1
  • 00000000000000000101001001011000 21 080
  • liczbagtgtgt1
  • 00000000000000000001010010010110 5 270
  • liczbagtgtgt4
  • 00000000000000000000001010010010 658
  • 020121022129

79
Operatory bitowe
Bitowy unarny NOT Bitowy I Bitowy
LUB np. a b c Bitowy wykluczajacy
LUB Bitowy I i przypisanie np. ab Bitowy
LUB i przypisanie Bitowy wykluczajacy LUB i
przypisanie gtgt gtgtgt ltlt
80
Operatory bitowe - przyklady
  • A B A B A B A B A
  • 0 0 0 0 0 1
  • 1 0 1 0 1 0
  • 0 1 1 0 1 1
  • 1 1 1 1 0 0

81
Operatory relacyjne
  • równa sie np. a b 1
  • ! nie równa sie
  • gt wieksze niz
  • lt mniejsze niz
  • gt wieksze lub równe np. a gt b 1
  • lt mniejsze lub równe
  • this.pracuje true
  • dane wczytanie.readLine()
  • if (dane null)

82
Operatory logiczne
  • logiczne I np. (altb) (agtc)
  • logiczne LUB
  • logiczne XLUB (wykluczajacy LUB)
  • krótkie LUB
  • krótkie I np. (altb) (agtc)
  • ! logiczne unarne NOT
  • I oraz przypisanie np. a b //false !
    true, true
  • LUB oraz przypisanie
  • wykluczajacy LUB oraz przypisanie
  • równe
  • ! nie równe
  • ? Ternarny if-then-else np. b -10 a b lt
    0 ? a a

83
Elementy strukturalne
  • Instrukcje sterowania przebiegiem programu

84
Instrukcje sterowania przebiegiem programu
  • Instrukcje warunkowe
  • Instrukcje wyboru
  • Petle
  • for
  • Petle typu while
  • Petle typu do while
  • Instrukcje sterowania przebiegiem petli

85
Instrukcje warunkowe - if
  • Celem instrukcji warunkowej jest zweryfikowanie
    prawdziwosci wyspecyfikowanego wyrazenia
    logicznego

Weryfikacja wyrazenia logicznego
Falsz (false)
Prawda (true)
Instrukcje jesli prawda
Dalsze instrukcje
86
Instrukcje warunkowe - if
  • Jedno liniowa instrukcja
  • if (wyrazenie logiczne)
  • instrukacja 1
  • Blok
  • if (wyrazenie logiczne)
  • instrukcja 1
  • instrukcja 2
  • ...
  • instrukcja n

87
Instrukcje warunkowe - if
  • Przyklady
  • if (studentindeks.imieStudenta Wojciech)
  • System.out.println(Masz dzisiaj imieniny)
  • if ((studentindeks.srednia gt 4.5) (
    studentindeks.rokStudiow lt 3))
  • float sredniaStypendium studentindeks.sredni
    a
  • float stypendium studentindeks.obliczStypend
    ium(sredniaStypendium)
  • studentindeks.czesne - stypendium

88
Instrukcje warunkowe if else
Weryfikacja wyrazenia logicznego
Prawda (true)
Falsz (false)
Instrukcje jesli falsz
Instrukcje jesli prawda
Dalsze instrukcje
89
Instrukcje warunkowe if else
Blok if (wyrazenie logiczne) instrukcja
1 ... instrukcja n else
instrukcja 1 ... instrukcja n
  • Jedno liniowa
  • if (wyrazenie logiczne)
  • instrukcja 1
  • else
  • instrukcja 1

90
Instrukcje warunkowe if else
  • Przyklad
  • if (studentindeks.dziasiajZajecia() true)
  • System.out.println(Masz dzisiaj zajecia)
  • else
  • System.out.println(Nie masz dzisiaj zajec)

91
Instrukcje warunkowe if else
  • Przyklad
  • if ((studentindeks.srednia gt 4.5) (
    studentindeks.rokStudiow lt 3))
  • float sredniaStypendium studentindeks.sredni
    a
  • float stypendium studentindeks.obliczStypend
    ium(sredniaStypendium)
  • studentindeks.czesne - stypendium
  • else
  • studentindeks.kosztWydaniaDyplomu
    Dyplom.koszt

92
Instrukcje warunkowe if else if else
  • if (wyrazenie_logiczne)
  • instrukcja 1
  • instrukcja n
  • else if (drugie_wyrazenie logiczne)
  • instrukcja 1
  • instrukcja n
  • else
  • instrukcja 1
  • instrukcja n

93
Instrukcje warunkowe if else if else
  • Przyklad
  • if ((studentindeks.srednia gt 4.5) (
    studentindeks.rokStudiow lt 3))
  • float sredniaStypendium studentindeks.sredni
    a
  • float stypendium studentindeks.obliczStypend
    ium(sredniaStypendium)
  • studentindeks.czesne - stypendium
  • else if (studentindeks.srednia gt 4.5)
  • studentindeks.kosztWydaniaDyplomu 0
  • else
  • studentindeks.kosztWydaniaDyplomu
    Dyplom.koszt

94
Instrukcja wyboru
  • Instrukcja wyboru weryfikuje zadeklarowane
    wyrazenie pod katem mozliwych wartosci
  • W zaleznosci od wartosci, jakie przyjmuje
    wyrazenie, wykonywane sa rózne warianty kodu
  • Jesli instrukcja wyboru nie jest w stanie
    przyporzadkowac zadnego wariantu, wykonywane jest
    wyrazenie domyslne umieszczane na samym koncu

95
Instrukcja wyboru - skladnia
switch(wyrazenie_wyboru) case wartosc1
wyrazenie break case wartosc2
wyrazenie break case wartosc3
wyrazenie break default wyrazenie
  • Brak break spowoduje wykonywanie kolejnych
    instrukcji wewnatrz instrukcji wyboru

96
Instrukcja wyboru - przyklad
  • switch(wybor)
  • case 1
  • System.out.print("\nDla kogo
    chcesz wprowadzic dane? (nauczyciel/student) ")
  • ...
  • break
  • case 2
  • System.out.print("\nDla kogo
    chcesz skasowac dane? (nauczyciel/student) ")
  • ...
  • break
  • case 8
  • break
  • default
  • System.out.println("Nieprawidlowy
    numer !")

97
Petla for
  • Powoduje wykonanie instrukcji okreslona ilosc
    razy
  • Ilosc petli jest równa róznicy wartosci
    wyspecyfikowanej w inicjowaniu a górna granica
    podana przez wyrazenie logiczne z szybkoscia
    osiagniecia zalezna od kroku
  • for (inicjowanie wyrazenie_logiczne krok)
  • wyrazenie 1
  • for (inicjowanie wyrazenie_logiczne krok)
  • wyrazenie 1
  • wyrazenie 2

98
Petla for - przyklad
  • class Studenci
  • public static void main(String args)
  • for (int minuta 195 minuta lt 1 minuta--)
  • if (minuta gt 15)
  • System.out.println("Pozostalo jeszcze "
    minuta minut wykladu -(")
  • else
  • System.out.println("Pozostalo jeszcze "
    minuta minut wykladu -)")

99
Petla while
  • Jest wykonywana, dopóki warunek logiczny jest
    prawdziwy
  • Nalezy uwazac, gdyz latwo stworzyc petle
    nieskonczona np. while(true)
  • Petla moze sie nie wykonac ani razu
  • while (wyrazenie_logiczne)
  • wyrazenie
  • while (wyrazenie_logiczne)
  • wyrazenia

100
Petla while - przyklad
  • class Studenci
  • public static void main(String args)
  • int minuta 195
  • while (minuta gt 0)
  • if (minuta gt 15)
  • System.out.println("Pozostalo jeszcze "
    minuta minut wykladu -(")
  • else
  • System.out.println("Pozostalo jeszcze "
    minuta minut wykladu -)")
  • minuta--

101
Petla do while
  • Bardzo zblizona do petli typu while, róznica w
    momencie sprawdzenia warunku logicznego na
    koncu
  • Petla wykona sie minimum 1 raz
  • do
  • wyrazenie
  • while wyrazenie_logiczne
  • do
  • wyrazenia
  • while wyrazenie_logiczne

102
Petla do while - przyklad
  • class Studenci
  • public static void main(String args)
  • int minuta 0
  • do
  • if (minuta gt 15)
  • System.out.println("Pozostalo jeszcze "
    minuta minut wykladu -(")
  • else
  • System.out.println("Pozostalo jeszcze "
    minuta minut wykladu -)")
  • minuta--
  • while (minuta gt 0)

103
Instrukcje sterowania przebiegiem petli
  • break - przerywa dzialanie dowolnej petli badz
    instrukcji wyboru
  • continue - przejscie na koniec wyrazenia
    znajdujacego sie wewnatrz petli (rozpoczecie
    kolejnego wykonania petli) Etykieta, umozliwia
    przejscie do okreslonego miejsca w kodzie
  • etykieta
  • do
  • wyrazenie
  • do
  • wyrazenie
  • if (warunek1)
  • break etykieta
  • while (warunek-2)
  • while (warunek-3)

104
Instrukcje sterowania przebiegiem petli - przyklad
  • class Kontynuuj
  • public static void main(String args)
  • for(int i0 ilt10 i)
  • System.out.print(i " ")
  • if (i2 0) continue
  • System.out.println("")

105
Instrukcje sterowania przebiegiem petli - przyklad
  • nowyTest
  • do
  • testST.wyswietlPytania()
  • Pytanie pytanieTym testST.wybierzPytanie()
  • do
  • odpowiedz pytanieTym.wSkazodpowiedz()
  • if (pytanieTym.IloscBledow 2)
  • break nowyTest
  • while (odpowiedz true)
  • while (testUkonczony true)

106
Zadania
  • Zadanie 1
  • Zaproponowac krótki program, który oblicza i
    wyswietla w godzinach oraz minutach czas dotarcia
    na Okecie z Trójmiasta, jesli dojazd tramwajem do
    pociagu trwa 40 minut, pociag do stolicy jedzie
    220 minut, a autobus na lotnisko 35 minut.

107
Zadania
  • Zadanie 2
  • Jesli zmienna liczba przyjmuje wartosc 10 540,
    ustalic, ile wynosi
  • liczbaltlt1
  • liczbagtgtgt1
  • liczbagtgtgt4

108
Zadania
  • Zadanie 3
  • Napisac program, który deklaruje 3 zmienne, dwóm
    pierwszym przypisuje wartosci odpowiednio 3 oraz
    7 (trzeciej wartosc dowolna) i weryfikuje, czy
    trzecia wartosc
  • Jest mniejsza od dwóch pozostalych
  • Jest wieksza od dwóch pozostalych
  • Jest pomiedzy dwoma pozostalymi
  • Jest równa którejs z pozostalych

109
Prosze o ewentualne pytania
Michal Kuciapski
Write a Comment
User Comments (0)
About PowerShow.com