05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
1
Programowanie w Java 3
Składnia języka Java
Porównanie z Pascalem Delphi
Dla Specjalizacji Systemy Informacyjne w
Gospodarce
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
2
Podstawowe składniki Java
Komentarze
(Comments)
Instrukcje
(Statements)
Bloki (Code Blocks)
Słowa kluczowe
(Keywords)
Identyfikatory
(Identifiers)
Stałe (constants
and literals)
Wyrażenia
(expresions)
Operatory
(Operators)
Zmienne
Struktura pliku
(File structure)
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
3
Komentarze (Comments)
Java
//
komentarz do końca linii
/* komentarz
rozciągający się na
kilka linii */
/** Specjalny komentarz
który zostanie włączony
do dokumentacji
tworzonej przy pomocy
programu javadoc */
/* Błędem jest
„zagnieżdżanie”
komentarzy
/*To jest
BŁĄD */
ERROR */
Delphi
//
komentarz do końca linii
{ komentarz
rozciągający się na
kilka linii }
(* komentarz
rozciągający się na
kilka linii *)
(* Można „zagnieżdżać”
{ komentarze
rozpoczynające się
różnymi znakami }
ale
tylko do jednego
poziomu *)
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
4
Instrukcje (Statements)
Java
Instrukcja jest
podstawową jednostką
kodu
Może „rozciągać się” na
kilka linijek tekstu
Koniec instrukcji
oznaczamy średnikiem ;
Spacje, znaki tabulatora
i znaki końca linii (dwa
rodzaje) są pomijane
wewnątrz instrukcji
Przykład:
A=b+c; a=b-c;
Delphi
Tak samo jak w Java
W starych wersjach
Delphi edytor nie
rozpoznaje znaku końca
linii występującego w
systemach UNIX (ASCII
13) i wymaga znaku
używanego w Windows
(para ASCII 13 i 10)
Uwaga:
Pascal Delphi nie
rozróżnia wielkości liter
Java rozróżnia DUŻE i
małe litery
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
5
Bloki (Code Blocks)
Java
Oznaczenie
Początek
{
Koniec}
Bloki mogą być
„zagnieżdżane” (i często
są)
Główną funkcją bloków jest
umożliwienie kontrolowania
wykonania grupy instrukcji
przez inną pojedynczą
instrukcję
Przykład:
if (x>0)
{ x=x+1; y=y-1; }
Delphi
Oznaczenie
Początek
begin
Koniec
end
Bloki mogą być
„zagnieżdżane” (i często są)
Główną funkcją bloków jest
umożliwienie kontrolowania
wykonania grupy instrukcji
przez inną pojedynczą
instrukcję
Przykład:
if (x>0) then
begin x=x+1; y=y-1;
end
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
6
Słowa kluczowe
(Keywords)
Java
(Wspólna z Delphi pogrubione a odpowiednik w
nawiasach)
abstract
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
extends
final (finally)
finally
float (real)
for
goto
if
implements
import (uses)
instanceof
int (Integer)
interface
long (LongInt)
native
new
null
package (Unit)
private
protected
public
return
short
(ShortInt)
static
super
switch
synchronized
this
throw
throws
transient
try
void (procedure) volatine
while
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
7
Identyfikatory (Identifiers)
Java
Zaczyna się od litery
Rozróżnia DUŻE i
małe litery
Można używać
znaków UNIKODE (o
ile edytor umożliwia
wprowadzenie) a
więc także polskich
liter
Delphi
Zaczyna się od
litery
Nie rozróżnia
wielkości liter
Tylko alfabet
łaciński i cyfry
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
8
Konwencja używanie dużych
liter
Ma za zadanie
ułatwić czytanie
programu
Nie jest
wymagana przez
kompilator
Nazwa klasy
Każde słowo z dużej litery
MyClass
Nazwa funkcji
Każde słowo z wyjątkiem
pierwszego z dużej litery
printMyData
Zmienna
Każde słowo z wyjątkiem
pierwszego z dużej litery (jak
funkcja)
dataNumber
Stałe
Tylko duże litery i słowa
rozdzielone podkreśleniem
MAX_ARRAY_SIZE
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
9
Stałe (constants and
literals)
Java
Zapis liczb
Całkowitych
15 (zapis dziesiętny)
0xFF (zapis hex)
0726 (zapis ósemkowy)
Zmiennoprzecinkowych
3.14
296.9E+9
Ciąg znaków (String)
„Ala ma kota\n”
Znak (char)
‘a’ ‘\u000A’
Wartość logiczna (boolean)
false lub true
Delphi
Zapis liczb
Całkowitych
15 (zapis dziesiętny)
$FF (zapis hex)
Zmiennoprzecinkowych
3.14
296.9E+9
Ciąg znaków (String)
‘Ala ma kota’
Znak (char)
‘a’ $0A
Wartość logiczna (boolean)
False lub true (wielkość
liter nie jest istotna)
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
10
Stałe (constants and
literals) 2
Java
Typ można
zdefiniować
Wymuszenie typu
long
123L
0xFFl
Double
3.14D
Delphi
Typ jest określany
automatycznie na
podstawie długości
Przykłady
123 (byte)
301 (word)
-1 (Integer)
3.141234567890123
(double)
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
11
Stałe (constants and
literals) 2
Znaki specjalne
Używane w ciągach
znaków (String) i w
pojedynczych
znakach (zmienne
typu char)
Znaki specjalne są
poprzedzone
znakiem \
(backslash)
Znaki
\b backspace
\t tabulator
\n nowa linia
\f nowa strona
\n powrót kursora
\” znak cytatu
\’ pojedynczy znak cytatu
\\ odwrotny slasz
(backslash)
\uHHHH (znak UNICODE
w notacji hex)
\DDD (znak ASCII w
notacji ósemkowej)
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
12
Wyrażenia (expresions)
Java
Przypisanie
a = 2;
//a i A to co
innego)
A=b=0;
s=„Ala ma kota”;
Operatory
arytmetyczne
A=2*b-c;
c++; //dodaj 1 do c
a--; //odejmij 1 od a
A=24 % 10 //reszta
Delphi
Przypisanie
A:=2;
A:=0; b:=0;
S:=‘Hello’;
Operatory
arytmetyczne
A:=2*b-c;
Inc(c);
Dec(a);
A:=24 mod 10
//cztery
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
13
Operatory Porównania
Java
== porównanie
if (a==2) {...}
>, <, >=, <=
!= //test
nierówności
?: warunkowy
y = (x ? 1 : 2 );
// x==true to 1
// x==false to 2
Delphi
= porównanie
If a=2 then
>, <, >=, <=
<> // nierówny
Warunek
If x then
y:=1
else
y:=2;
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
14
Operatory logiczne
Java
Na zmiennych
boolean
! Negacja
&
oba składniki są
obliczane
&&
drugi składnik
może być nie obliczany
|
oba składniki są obliczane
||
drugi składnik
może być nie obliczany
^
Delphi
Na zmiennych
Boolean
Not
And
Or
xor
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
15
Operacje logiczne na
bitach
Java
Na zmiennych
całkowitych
~ //zamiana bitów
& //and na bitach
| //or na bitach
^ //xor na bitach
>> // przesunięcie bitów z
zachowaniem znaku
<< // przesunięcie bitów z
zachowaniem znaku
>>> // przesunięcie bitów
bez zachowania znaku
Delphi
Na zmiennych
całkowitych
Not
And
Or
Xor
Shr
shl
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
16
Operator ciągu znaków
Java
Łączenie ciągu
znaków +
Przykład:
S=„Ala”+”ma”+”kota
”;
Automatyczna
konwersja do ciągu
S=„wynik=„ +2*2;
// wynik=4
Delphi
Łączenie ciągu
znaków +
Przykład:
S:=‘Ala’ + ‘ma’ +
‘kota’;
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
17
Łączenie operatorów z
operatorem przypisania
Java
a=2;
a*=2;
a/=2;
a+=5;
a-=1; // a--;
b^=7; // bitwise
C>>>=2; //
przesunięcie bitów
o dwie pozycje
Delphi
A:=2;
A:=2*a;
A:=a/2;
A:=a+5;
A:=a-1; // Dec(a);
B:=b xor 7;
C:=C shr 2;
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
18
Zmiana typy przy
przypisaniu
Java
Przy przypisaniu danych
jednego typu do zmiennej
innego typu
Automatyczne gdy zmienna
ma większą dokładność niż
wartość przypisywana
W przeciwnym przypadku
trzeba zaznaczyć konwersje
i zadbać aby wartość nie
przekraczała zakresu
Przykład:
int i;
long l;
i=(int) l; //konwersja
Delphi
Zwykle automatycznie
wykonywana przez
kompilator
Można wymusić
Przykład:
Var
I: integer;
l: longInt;
begin
i=(integer) l;
//konwersja
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
19
Zmienne
Java
Wymagana deklaracja
Można zadeklarować
w dowolnym miejscu
ale przed użyciem
(zwyczajowo na
początku)
Można nadać wartość
początkową
Przykład
{
int i = 2;
Int j=0, k=-1, l =0;
Delphi
Wymagana deklaracja
Deklaracja znajduje się
w sekcji var
Wartość początkową można
nadać rozszerzeniu Pascala
typed constant
Przykład:
Var
i: integer;
j, k, l:integer;
Begin
Wymagana deklaracja
i:=2;
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
20
Typy zmiennych
Java
Numeryczne
byte (8 bit)
short (16 bits)
int (32 bits)
long (64 bits)
float (32 bits)
bouble (64 bits)
Logiczne
boolean
Znakowe
char
//pojedynczy
znak 16 bits UNICODE
String // ciąg znaków
Delphi
Numeryczne
byte
shortInt
integer
longInt
real
Double
Extended
...
Logiczne
boolean
Znakowe
Char //pojedynczy znak
String // ciąg znaków
05/04/02
Programowanie Java 3 Copyri
ght Marek A. Chmielowski
21
Struktura pliku (File
structure)
Java
Sekcje
Package
Import
Class
Przyklad:
package com.sybex.example;
import java.awt.Panel;
import java.awt.Color;
class ColorPanel extends Panel {
.....
}
Delphi
Sekcje
Unit
Uses
interface
Implementation
Przykład:
Unit MyUnit
uses MyOtherUnit;
Interface
MyClass:
class(MyOtherClass)
....;
Implementation