Liczby pierwsze → Algorytmy szyfrujące → Elektroniczny podpis…

Transkrypt

Liczby pierwsze → Algorytmy szyfrujące → Elektroniczny podpis…
Programowanie w Javie cz. 2
Programowanie strukturalne
Łódź, 24 luty 2014 r.
Pakiety
Program w języku Java to zbiór klas.
Klasy zebrane są w pakiety aby pogrupować je według znaczenia.
Kluczowe słowo do tworzenia pakietu, to package.
package zaj1;
public class Proba {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Nazwy pakietów zwyczajowo pisze się małymi literami.
Kolejne poziomy zagnieżdżenia pakietów oddziela się od siebie kropkami.
Przykłady pakietów:
java.lang, java.util, java.io, java.applet, java.awt
dr Robert Kowalczyk, KAN WMiI UŁ
2
Import klas
Sama nazwa klasy nie musi identyfikować jej w sposób jednoznaczny.
Należy określić pakiet w obrębie którego została ona zdefiniowana.
Aby skorzystać z klasy zamkniętej w obrębie jakiegoś pakietu należy ją
zaimportować przy pomocy polecenia import.
package zaj12;
public class Proba2 {
public static void pisz(String s) {
System.out.println(s);
}
}
package zaj11;
import zaj12.Proba2;
public class Proba1 {
public static void main(String[] args) {
Proba2.pisz("Ala");
System.out.println("Hello World");
}
}
dr Robert Kowalczyk, KAN WMiI UŁ
3
Narzędzia jar i javadoc
W NetBeans przebudować projekt w celu wygenerowania paczki jar.
Run \ Build Main Project
Uruchamiamy plik spakowany jar poleceniem:
java –jar zaj1.jar
Dokumentację generujemy za pomocą narzędzia javadoc.
Run \ GenerateJavadoc (Zaj1)
Obejrzeć wygenerowaną stronę można za pomocą pliku index.html.
Ćwiczenie 1 (bez użycia NetBeans)
Zbuduj projekt zawierający dwie klasy Pierwsza i Druga z metodami main wypisującymi Hello
World 1 lub Hello World 2 (w zależności z której klasy jest wywołane).
Obydwie klasy zamknij w pakiecie wspolny (pakiet to zwykły katalog). Skompiluj i uruchom każdą z klas
z osobna.
Następnie poleceniem
jar cvf zaj1.jar wspolny/*.class
zbuduj plik jar. Uruchom ten plik poleceniem jar z odpowiednim parametrem (uruchomienie wymaga
pliku Manifest.mf).
Zbuduj zatem plik Manifest.mf z np. wpisem
Main-Class: Druga
Podłącz następnie plik manifestu do pliku jar (odpowiednio użyte polecenie jar) i go uruchom.
dr Robert Kowalczyk, KAN WMiI UŁ
4
Słowa kluczowe języka
dr Robert Kowalczyk, KAN WMiI UŁ
5
Zmienne
• Instance Variables (Non-Static Fields) – przechowują stan pól w
danej klasie. Wartość tych zmiennych jest różna dla różnych
instancji danej klasy
• Class Variables (Static Fields) – definiowane przez słowo static,
które mówi kompilatorowi, że te pole jest takie samo dla wszystkich
instancji danej klasy:
static int runda=6;
• Local Variables – pole tymczasowe przechowujące stan klasy na
poziomie metod rozróżniane w obrębie {}
• Parameters – parametry klasyfikowane są zawsze jako zmienne,
nigdy nie jako pola.
– np.: public static void main(String[] args) - args jest
parameterem dla metody main.
• Zmienne muszą mieć typ (silne typowanie w Javie).
dr Robert Kowalczyk, KAN WMiI UŁ
6
Zmienne – reguły nazewnicze
Ogólne reguły nazewnicze:
•
•
•
•
Rozróżniane małe i duże litery (case-sensitive).
Zmienna może rozpoczynać się od litery, $ lub „_”.
$ stosowany jedynie w automatycznie generowanym kodzie.
W nazwie zmiennej należy unikać skrótów myślowych gdyż
tworzysz nieczytelny kod:
np. z1, a345, bbb.
• Jeśli nazwa składa się z kilku słów to zaczynamy każde z
nich, począwszy od drugiego, od dużej litery:
sredniaPredkosc = 30;
• Jeśli zmienna ma oznaczać wartość stałą używaj dużych liter:
MAX_PREDKOSC=90;
• Stałe definiowane przez
static final double PI = 3.141592653589793;
dr Robert Kowalczyk, KAN WMiI UŁ
7
Typy w Javie
• Java jest językiem ze ścisłą kontrolą typów, w którym rozmiar
i postać danych są określone precyzyjnie
• Typy danych w Javie można podzielić na typy proste i typy
referencyjne (klasy, interfejsy i tablice)
• Do przechowywania liczb całkowitych przeznaczone są cztery
typy o długościach: byte (8), short (16), int (32) oraz
long (64)
• Rzeczywiste typy liczbowe to: float (32) i double (64)
• Dane znakowe zapisywane są zgodnie ze standardem
Unicode – są to 16-bitowe liczby całkowite bez znaku. Do ich
przechowywania służy typ char
• Typ boolean (1 bit) umożliwia przechowywanie wartości
logicznych. Może on przyjmować tylko dwie wartości: true i
false.
dr Robert Kowalczyk, KAN WMiI UŁ
8
Typy proste wbudowane
Nazwa typu
Standardowa wartość
byte
0
short
0
int
0
long
0L
float
0.0f
double
0.0d
char
‘\u0000’
boolean
false
String
null
String nie jest typem prostym, jednak ze względu na specyficzne traktowanie
jest często postrzegany jako typ prosty.
String jest obiektem, którego wartości nie można zmienić (immutable).
dr Robert Kowalczyk, KAN WMiI UŁ
9
Klasa String i jej metody
Ćwiczenie 2
Niech
String s1 = "abc";
String s2 = "ab";
s2 += "c";
String s3=s2;
String s4 = new String("abc");
Czy prawdą jest, że:
s1=="abc"
s1==s4;
s1==s2;
s2=="abc"
s2==s3;
s1.equals(s2);
s1.equals(s3);
s1.equals(s4)
s1.compareTo(s4);
Ćwiczenie 3
Dany jest String s = " Ala ma kota i kot ma Ale ";
• Wypisz zdanie s z dużych liter,
• Wypisz zdanie s bez początkowych i końcowych spacji,
• Podziel zdanie s używając symbolu spacji i wypisz każdy z wyrazów w kolejnej linii (użyj pętli) foreach.
dr Robert Kowalczyk, KAN WMiI UŁ
10
Tablice
• Tablica - to ciąg zmiennych tego samego typu,
opisanych jedną wspólną nazwą. Elementy tablicy
identyfikuje się za pomocą indeksów.
• Dostęp do poszczególnych elementów tablicy odbywa
się za pomocą operatora indeksowania []. Indeksy są
liczone od zera.
• Tablica jednowymiarowa odpowiada matematycznemu
pojęciu wektora, wielowymiarowa – macierzy.
• Tablice w języku Java są zaimplementowane jako
obiekty, więc nie mogą być deklarowane statycznie.
Tworzenie tablicy składa się z dwóch etapów:
1. deklaracja zmiennej referencyjnej tablicy,
2. utworzenie nowego obiektu tablicy i przypisanie go
do danej zmiennej tablicowej.
dr Robert Kowalczyk, KAN WMiI UŁ
11
Tablice - przykład
Deklaracja tablicy:
int[] anArray;
Alokacja pamięci:
anArray = new int[4];
Ustawienie kolejnych
anArray[0] =
anArray[1] =
anArray[2] =
anArray[0] =
elementów tablicy:
10;
11;
12;
13;
Długość tablicy można sprawdzić za pomocą właściwości lenght:
args.lenght
Ćwiczenie 4
Napisz program z trzema parametrami wejściowymi par1, par2 i par3, które
przechowywane są w tablicy String[] args (parametr wejściowy funkcji main).
Program ma wypisywać zdanie:
Witaj! Masz na imię par1, a nazywasz się par2. Za 5 lat skończysz (par3+5) lat.
Wsk. Przekonwertować String na liczbę możesz używając metody parseInt() klasy
Integer, a w drugą stronę dodając liczbę do pustego ciągu znaków ’’ ’’.
dr Robert Kowalczyk, KAN WMiI UŁ
12
Operatory
Nazwa operatora
Symbol
Przypisania
= += -= *= /=
Arytmetyczne dwuargumentowe
+ - / *
Relacyjne
> < => =< == !=
Logiczne
! && ||
Bitowe
&
In-/de-krementacja
-- ++
Operator porównania typu
instanceof
Trójwartościowy
? :
dr Robert Kowalczyk, KAN WMiI UŁ
|
^
<<
>>
~
>>>
13
Instrukcje sterowania
• Instrukcje wyboru
if-then
if-then-else
switch
• Pętle
do-while
for
• Instrukcje sterujące
break – kończy wykonywanie danej instrukcji sterowania
continue – pomija wykonanie danego kroku instrukcji
sterowania.
return
• Blok { instrukcje }
dr Robert Kowalczyk, KAN WMiI UŁ
14
Instrukcje wyboru
switch
if-then
if(liczba % 2 == 0)
System.out.println(true);
if-then-else
if(liczba % 2 == 0)
System.out.println(true);
else
System.out.println(true);
dr Robert Kowalczyk, KAN WMiI UŁ
switch(liczba % 3){
case 1:
System.out.println(‘reszta 1’);
break;
case 2:
System.out.println(‘reszta 2’);
break;
default:
System.out.println(‘reszta 0’);
}
switch współpracuje z następującymi typami:
•int, byte, shrot, chat,
• klasami opakowującymi tj. Integer, Byte, …
• typami wyliczeniowymi
15
Pętle
do-while
do
instrukcja;
while (wyrażenie);
for
for (start; stop; inkrementacja)
instrukcja;
while
while (wyrażenie)
instrukcja;
foreach
int[] liczby = {1,2,3,4,7,8};
for (int zm : liczby)
System.out.println(zm);
Ćwiczenie 5
Wypisz na konsoli następujące tablice.
dr Robert Kowalczyk, KAN WMiI UŁ
16
Funkcje matematyczne
• Funkcje matematyczne Javy są zawarte w klasie
Math.
• Funkcje te są zadeklarowane jako statyczne, więc
można ich używać bez tworzenia egzemplarza obiektu.
• Funkcje matematyczne (metody klasy Math) zwykle
operują na liczbach rzeczywistych typu double i
zwracają wartości typu double.
Przykładowe funkcje klasy Math:
abs(x)
ceil(double x)
floor(double x)
sqrt(double x)
random()
pow(double x, double n)
sin(double alfa)
cos(double alfa)
tan(double alfa)
dr Robert Kowalczyk, KAN WMiI UŁ
17
Wyjątki
Wyjątek jest sytuacją, która
powoduje zatrzymanie
normalnego wykonywania
programu.
Klauzula try może mieć wiele
catch, ale każdy musi
obsługiwać inny typ Wyjatku.
Bardziej precyzyjne wyjątki
powinny znajdować się w
pierwszych klauzulach catch.
Klauzula finally będzie
zawsze wykonana.
dr Robert Kowalczyk, KAN WMiI UŁ
try
{
instrukcje;
}
catch (typWyjątku parametr)
{
instrukcje;
}
catch (typWyjątku parametr)
{
instrukcje;
}
...
finally
{
instrukcje;
}
18
Wyjątki
Ćwiczenie 6
Napisz program który uruchamiasz z dwoma parametrami typu int i
wyprowadzasz na ekran iloraz tych liczb.
• Jeśli parametrów będzie za mało masz obsłużyć odpowiedni wyjątek.
• Jeśli parametry będą złego typu masz obsłużyć odpowiedni wyjątek.
• Jeśli drugi z parametrów będzie zerem masz obsłużyć odpowiedni
wyjątek.
dr Robert Kowalczyk, KAN WMiI UŁ
19
Czytanie z klawiatury
W Javie czytanie z klawiatury można realizować na wiele sposobów:
1. Przy pomocy tablicy byte[]
byte[] bufor = new byte[100];
System.in.read(bufor);
System.out.println("Wpisales ciag znakow: " + new String(bufor).trim());
2. Przy pomocy klasy klasy BufferedReader
BufferedReader bufor = new BufferedReader(new InputStreamReader(System.in));
String s = bufor.readLine();
System.out.println("Wpisales ciag znakow: "+s);
3. Przy pomocy klasy Scanner
Scanner sc = new Scanner(System.in);
String bufor = sc.nextLine();
System.out.println("Wpisales ciag znakow: "+bufor);
Ćwiczenie 7
Napisz program , który będzie konwertował zł na euro i odwrotnie
podawane z klawiatury.
dr Robert Kowalczyk, KAN WMiI UŁ
20
JOptionPane – okienka dialogowe
Klasa JOptionPane umożliwia interakcję z użytkownikiem za pomocą
wyskakujacego okienka dialogowego.
Klasa a ma cztery podstawowe metody wywyołania.
Ćwiczenie 8
Napisz program z poprzedniego ćwiczenia używając do
wejścia/wyjścia odpowiednich metod klasy JOptionPane.
dr Robert Kowalczyk, KAN WMiI UŁ
21

Podobne dokumenty