w2 java

w2 java, informatyka, Wykłady Java B.Pańczyk
[ Pobierz całość w formacie PDF ]
Typy proste
JAVA
Podstawy programowania

Liczby całkowite
– byte (1B) -128...128 np. 1, 01, 0x01
– short (2B) -32 768...32 767 np. 128, 0xFF
– int (4B) -2 147 483 648... 2 147 483 647
np. 32768, 0x1000
– long (8B) -9 223 372 036 854 775 808..
9 223 372 036 854 775 808
np. 3l, 3L, 2 147 483 648

Liczby rzeczywiste
– float (4B) 1.4E-45...3.4E+38
np. 3f, 0.3F, 3e+10, 3E+10
– double (8B) 4.9E-324...1.7E+308
np. 0.3, 0.3d, 0.3D, 3E+100

Znaki Unicodu
- char (2B) -0...65556 np. 'a',\u0013

Warto
ś
ci logiczne
- boolean (1B)
Beata Pańczyk - Java (Wykład 2)
np. true, false
2
Komentarze
Zmienne i znaki specjalne

// komentarz
jedna linia

/* komentarz */
więcej, niŜ jedna linia

/** komentarz*/
specjalny typ komentarzy Javy,
wykorzystywany przy tworzeniu dokumentacji
(polecenie JDK
javadoc
)

Nazwa zmiennej
- Java rozróŜnia duŜe i małe litery
- nazwa moŜe zaczynać się od litery,
znaków: _ i $, nie moŜe - od cyfry
- w nazwie mogą występować znaki Unicode
- umownie - początek nazwy z małej litery

Znaki specjalne
\u
dddd
oznacza kod znaku Unicode
np. \t w Unicode odpowiada: \u0009
\" w Unicode odpowiada:\u0022
3
4
Deklaracje
Deklaracje a definicje

dane
(poza typami prostymi) są
obiektami
,
których atrybuty i metody definiują określone
klasy. Nazwa klasy jest nazwą typu obiektu.
• Deklaracja zmiennej lub stałej:
nazwa_typu nazwa_zmiennej_lub_stałej
np.
int a; //deklaracja zmiennej całkowitej a
char c; //deklaracja zmiennej char
String s;//deklaracja zmiennej klasy String
Button b;//deklaracja zmiennej klasy Button

Definicja
- wydziela w pamięci miejsce na
przechowanie zmiennej danego typu
• Dla typów prostych deklaracja=definicja
• Deklaracja zmiennej typu obiektowego jest
deklaracją (i definicją)
referencji
do obiektu, nie
wydziela natomiast w pamięci miejsca na
przechowanie samego obiektu

Referencja
- odniesienie, wskazanie na miejsce w
pamięci, gdzie moŜe być przechowywany dany
obiekt
5
6
1
Deklaracje - przykłady
Operatory
• Po deklaracji
Button b;
zmienna b zawiera referencję do obiektu typu Button,
ale na razie nie wskazuje na Ŝaden obiekt
b=new Button();
tworzy obiekt a zwrócona
przez
new
referencja wskazuje na zmienną b
• inicjalizowanie danych w deklaracjach:
int a=1; char c='a';
Button b=new Button();
String s="Programowanie w Javie"
• deklarowanie stałych ze specyfikatorem
final
final int ROZMIAR=1024;

Arytmetyczne:
+ ,- ,* ,/ , %, ++ , --

Relacyjne:
<. <=, >, >=, = =, !=

Przypisania:
=, *=, /+, +=, -=

Logiczne:
|| (lub), && (i), ! (negacja)

Bitowe:
~, & , | , ^ , << , >> , >>>

Operator warunku
? :

Konwersja typu
: (typ)

Stwierdzenie typu:
instanceof
7
8
Operatory - uwagi (1)
Operatory - uwagi (2)

x instanceof Typ_ob
-
oznacza pytanie czy x jest
referencją do obiektu typu Typ_ob; wartość wyraŜenia jest
typu boolean

Promocje -
w wyraŜeniach arytmetycznych zmienne
byte, short, char
- przekształcane są do typu
int
,
float
- do
double
,
long
- do
float
i
double

Konwersje arytmetyczne -
rozszerzające - niejawnie,
zawęŜające jawnie (za pomocą operatora konwersji)
int i; short s;
i=s; //rozszerzaj
ą
ce niejawnie
s=i; //bł
ą
d w kompilacji
s= (short) i; //u
Ŝ
ycie operatora konwersji typu

x = a>b; // x musi by
ć
typu boolean

x = a>b && c<d; // x musi by
ć
typu boolean

x+=y; // równowa
Ŝ
ne x=x+y;

x++ ; // rownowa
Ŝ
ne x=x+1;

--x ; // równowa
Ŝ
ne x=x-1;

r=x % y; // reszta z dzielenia całkowitego x/y

max = a > b ? a : b ;
// je
ś
li a>b to max=a, je
ś
li
// nie to max=b
• kolejność opracowania argumentów operacji
dwuargumentowych: OD LEWEJ DO PRAWEJ
9
10
Obiekty klasy String
Instrukcje

Ła
ń
cuchy
- specjalne znaczenie operatorów
String s1; String s2="Java";
String s3=new String(
"
2 SDK");
s1=s2+" - w1"; // s1="Java – w1"
s3=s2+s3; // s3="Java 2 SDK"

Konkatenacja ła
ń
cuchów i liczb
int k=1;
s1=k+k+s2; //od lewej do prawej !!!: 2Java
s1=s2+k+k; //od lewej do prawej !!!: Java11
Date date=new Date()
s1="Data"+date(); //wypisze Data i bieŜą datę
• kaŜde wyraŜenie zakończone średnikiem staje się
instrukcją
a = (x+10)/2;
• instrukcje mogą być grupowane w
bloki
poprzez
ujęcie w nawiasy klamrowe
if (a>b) {
c=a+b;
d=a-b;
e=a*b;
}
11
12
2
Instrukcje steruj
ą
ce - warunki
Instrukcje steruj
ą
ce - iteracje

if (wyr) ins
JeŜeli
wyr
ma wartość
true
to
wykonywana jest
ins
JeŜeli
wyr=true
to wykonywana jest
ins1
w przeciwnym razie
ins2

while (wyr)
ins
Instrukcja
ins
(
lub blok
instrukcji
) wykonywana jest
w pętli dopóki
wyr
jest true

if (wyr) ins1
else ins2

switch (wyr)
{
case w1:ins1
case w2:ins2
...
case wn:insn
default : ins
}
Wybór spośród wielu wariantów;
wyr
musi być wyraŜeniem całkowitym,
którego wynik jest porównywany po
kolei z całkowitymi wyraŜeniami
stałymi
w1, w2,
...; jeśli Ŝadne ze
stałych wyraŜeń nie pasuje do
wyr
,
wykonywana jest instrukcja po
default

do ins
while (wyr);
Przerwanie pętli następuje gdy
wyr
przyjmie wartość
false

for (wyr1;wyr2;wyr3)
ins
Wyliczane jest
wyr1
, następnie
w pętli oblicza się
wyr2
i jeśli
jego wartość jest
true
wykonuje się
ins
i oblicza
wyr3
13
14
Pozostałe instrukcje steruj
ą
ce

continue [etykieta];
Instrukcje steruj
ą
ce – przykłady (1)
instrukcja przerywa wykonanie
bieŜącego kroku pętli for, do, while i
rozpoczyna wykonanie kroku
następnego (lub teŜ kroku
oznaczonego etykietą)
Instrukcja powoduje przerwanie
wykonania pętli; stosowana równieŜ
w instrukcji switch
Instrukcja powoduje powrót z
metody, zwracając wartość
wyraŜenia wyr; wyr moŜe być
opuszczone jeśli metoda nie zwraca
Ŝadnych wartości
• if (x>10) {y=x; x=1;}
else {y=-x; x=-1;}
• x=1; krok=3;
while (x<=100) // petla skończona
{ x+=krok; //zmiana wspolrzednej x a
// pozostałe instrukcje
} //koniec petli while
• while (true) //nieskonczona petla np. animacji
{ x+=krok; //x=x+krok
if (x>maxx) x=1;
} //koniec petli while

break [etykieta];

return wyr;
15
16
Instrukcje steruj
ą
ce – przykłady (2)
Tablice jednowymiarowe
• tablica jest obiektem, indeksy tablicy są typu
int
i
zaczynaj
ą
si
ę
od 0
• deklaracja tablicy tworzy referencję, nie alokuje
pamięci dla samej tablicy
int[ ] tab;
• uŜycie wyraŜenia
new
lub
inicjalizacja
przydziela
pamięć
t1=new int[10];
int [ ] t2=new int[n];
• rozmiar tablicy moŜe być ustalony dynamicznie w
fazie wykonania programu; odwołanie
t2.length
podaje aktualną liczbę elementów tablicy t2
• int ile=10;
for (int i=0;i<ile;i++) //od i=0, dopóki i<ile
{ i+=5;
} //koniec pętli for
• int i=0, j=0;
do
{ i++; //i=i+1;
j*=i; //j=j*i;
if (j==6) break;
} while (i<5); //koniec pętli do
17
18
3
Tablice - przykłady
Tablice elementów obiektowych
• inicjalizowanie elementów tablicy
int liczby[ ] = { 1, 2, 3, 4, 5};
• przetwarzanie wszystkich elementów tablicy
for ( int i=0 ; i < t2.length ; i++) t2[ i ] = i;
• wypisanie argumentów wywołania programu
public static void main(String[ ] args)
{
for ( int i=0 ; i < args.length ; i++)
System.out.println(args[i]);
• deklaracja tablicy i utworzenie obiektu tablicowego
Button[ ] btab = new Button[n];
• elementy tablicy są obiektami wobec czego wymagają
tworzenia
for ( int i=0 ; i < btab.length ; i++)
btab[ i ] = new Button("Przycisk "+i);
• inicjalizacja tablicy obiektów
Button b[ ] = { new Button("A"),
new Button("B"), new Button("C") } ;
}
19
20
Tablice wielowymiarowe
Operacje we/wy – klawiatura/ekran
• elementami tablic wielowymiarowych są tablice,
liczba wymiarów określana jest przez liczbę
nawiasów [ ]
• inicjalizacja w nawiasach klamrowych
int [ ] [ ] tab2x3 = { {1, 2, 3}, {4, 5, 6} } ;
• dynamicznie
int [ ] [ ] tabnxm=new int [n] [m];
• Metody
print
,
println
zawarte w obiekcie
strumieniowym
System.out

Strumienie
– zarządzają przesyłaniem danych z programu
do urządzeń fizycznych (pliki, drukarki, ekrany)
• metoda
readLine
pobiera dane wejściowe z obiektu
BufferedReader
i zwraca łańcuch
¤ readLine
moŜe zgłosić wyjątek
IOException
(błąd
operacji we), który naleŜy „przechwycić” za pomocą
konstrukcji
try - catch
• Długość łańcucha moŜna ustalić za pomocą metody
length
klasy
String
21
22
Przykład 1 – Wy
ś
wietlanie tekstu na ekranie
Przykład 2 – Pobieranie danych z klawiatury
import java.io.*;
/* czytaj.class - odczytuje tekst z klawiatury, okresla dlugosc linii i wyswietla ja */
class czytaj { public static void main(String[] args)
{ String linia="";//zmienna do pobierania danych z klawiatury
//tworzymy nowy obiekt (bufor) do pobierania danych
//z klawiatury (standardowe we, System.in) :
BufferedReader we=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Wpisz lancuch: ");
//musimy oproznic bufor we - na koncu danych nie ma znaku nowej linii:
System.out.flush();
//przechwytujemy ewentualny blad we
try{
linia=we.readLine();//pobranie danych z klawiatury
} catch (IOException e) {System.out.println(e+". Blad we");
System.exit(1);}
System.out.println("Wpisales: \""+linia+"\"");
System.out.println("Dlugosc linii: "+linia.length());
}}
/* konwert.class - podaje wybrane konwersje jednostek */
class konwert {
public static void main(String[] args)
{ double mi_na_km=1.609;
double kg_na_lbs=2.2;
System.out.print("1 mila to:\t");
System.out.print(mi_na_km);
System.out.println(" kilometrow");
//Lancuchy mozna łaczyc za pomoca operatora +
System.out.println("1 kg to:\t"+kg_na_lbs+" funtow");
} }
23
24
4
Konwersja ła
ń
cuchów w liczby
Przykład 3 – Konwersja ła
ń
cuchów w liczby
import java.io.*;
/* napiwek.class - oblicza napiwek na podstawie sumy rachunku
i procentu napiwku */
class napiwek { public static void main(String[] args)
{ String linia=""; //zmienna do pobierania danych z klawiatury
double rach=0,napiwek=0;
int procent=0;
BufferedReader we=new BufferedReader(new
InputStreamReader(System.in));
System.out.print("Wpisz sume rachunku: ");
System.out.flush();
try{
• Metoda
valueOf(È)
klasy
Double
,
Integer,
String
, przeprowadza odpowiednie konwersje:
String double
Double.valueOf(String).doubleValue();
String int
Integer.valueOf(String).intValue();
int
String
String.valueOf(int);
//nie zgłasza wyjątków
linia=we.readLine();//pobranie danych z klawiatury
} catch (IOException e) {System.out.println(e+". Blad we");
System.exit(1);}
25
26
Przykład 3 c.d.
Dost
ę
p do argumentów linii polece
ń
//przeksztalcamy lancuch w liczbe double:
rach=Double.valueOf(linia).doubleValue();
• Argumenty linii poleceń są przekazywane
metodzie
main
jako tablica łańcuchów
• Liczbę argumentów moŜna określić metodą
length
• Argumenty przekształca się w liczby poprzednio
podanymi technikami
• Wywołanie takiego programu (klasy):
java nazwa_klasy param1 param2 È
System.out.print("Wpisz procent napiwku: ");
System.out.flush();
try{
linia=we.readLine();//pobranie danych z klawiatury
} catch (IOException e) {System.out.println(e+". Blad we");
System.exit(1);}
//przeksztalcamy lancuch w liczbe int:
procent=Integer.valueOf(linia).intValue();
napiwek=rach*((double)procent/100.0);
System.out.println("Rachunek wraz z napiwkiem: "+
(
rach+napiwek
)
);
// konieczne nawiasy!!!
}}
27
28
Przykład 4 - argumenty w linii polece
ń
Funkcje matematyczne - klasa Math
/* parametry.class - pobiera miesiac i rok z linii polecen (2 parametry);
wywolanie: java parametry <mc> <rok> */
class parametry { public static void main(String args[])
{ if (args.length!=2)
{ System.out.println("Wywolanie: java parametry <mc> <rok>");
System.exit(1); }
//args[0] jest pierwszym argumentem <mc>
int mc=Integer.valueOf(args[0]).intValue();
//args[1] jest drugim argumentem <rok>
int rok=Integer.valueOf(args[1]).intValue();
if (mc<1 || mc>12) {System.out.println("Zly miesiac");System.exit(1);}
if (rok<0) { System.out.println("Zly rok"); System.exit(1); }
System.out.println("Miesiac: "+mc+" rok: "+rok);
}}
Metoda:
Opis:
abs(x)
(x)
warto
ść
bezwzgl
ę
dna x
sqrt(x)
(x)
pierwiastek kwadratowy z x
pow(x,y)
(x,y)
x do pot
ę
gi y
exp(x)
(x)
liczba e do pot
ę
gi x
log(x)
logarytm naturalny z x
min(x,y)
mniejsza z liczb x, y
max(x,y)
wi
ę
ksza z liczb x,y
sin(x), cos(x), tan(x)
sin(x), cos(x), tan(x)
asin
asin(x),
(x), acos
acos(x),
(x), atan
atan(x)
(x)
29
30
5
abs
sqrt
pow
exp
max(x,y)
sin(x), cos(x), tan(x)
asin
(x),
acos
(x),
atan
(x)
[ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • diabelki.xlx.pl
  • Podobne
    Powered by wordpress | Theme: simpletex | © Spojrzeliśmy na siebie szukając słów, które nie istniały.