background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

1

Programowanie w Java 4

Tablice

Kontrola kolejności wykonania instrukcji

Klasy i metody

Porównanie z Pascalem Delphi 

Dla Specjalizacji Systemy Informacyjne w 

Gospodarce

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

2

Tablice

Java

int[] Ar= new 
int[10];

Index zaczyna się 
od zera

Tablica 
deklarowana 
dynamicznie (new)

Int[] [] =Ar2 = 
new int[10] [2];

Delphi

Ar: Array[1..10] of 
integer;

Kontrola zakresu 
indeksu

Tablica 
deklarowana 
statycznie

Ar2: 
array[1..10,0..1];

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

3

Tablice - użycie

Java

Deklarowanie i 

Inicjowanie:

Int [] [] Ar = {{1,2} , 

{3,4,5}};

Odczyt:

X= ar[0];

Zapis:

Ar[1] = 10;

Uwaga

Int [] b, c[]; deklaruje 

jednowymiarową macierz 

b i dwuwymiarową c

Czytelniej: int b[], c[] [];

Delphi

Deklarowanie i 
Inicjowanie:

Ar: array[1..2, 1..3] = ((1,2) , 

(3,4,5));

Odczyt:

X:= ar[1];

Zapis:

Ar[1] := 10;

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

4

Tablice - kopiowanie

Java

Przed kopiowaniem trzeba dynamicznie 
zarezerwować pamięć – operator new

Funkcja void System.arrycopy(ArSource, 
StartPoz, ArDestin, StartPozDest, 
Number);

Przykład kopiowania całej tablicy:

A2 = new int[a1.length]; 
System.arraycopy(A1,0,A2,0,A1.length);

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

5

Kontrola przepływu - if

Java

Pojedyncze instrukcje:

if (warunek)
  instrukcja1
else
  instrukcja2;

Blok instrukcji:

if (warunek)
  { instrukcje 1 }
else
  { instrukcje 2 };

Delphi

Pojedyncze instrukcje:

if (warunek) then
  instrukcja1
else
  instrukcja2;

Blok instrukcji:

if (warunek) then
  begin instrukcje 1 end
else
  begin instrukcje 2 end;

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

6

Sprawdzanie wartości

Java

Instrukcja switch 
sprawdza kolejno każdy 
przypadek  

Należy użyć break aby 
zakończyć sprawdzanie

Przykład:

switch (ch) {
  case ‘!’: wykrzyknik=true;
  case ‘1’: case ’2’: cyfry=true;
    break;
default: x=0; }

Delphi

Instrukcja case 
zatrzymuje się po 
znalezieniu pierwszego 
pasującego wzoru

Przykład:

case (ch) of
  ‘!’: wykrzyknik=true;
  ‘1’, ’2’: cyfry=true;
  default: x=0; 
end;

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

7

Pętle – o znanej liczbie 
powtórzeń

Java

Budowa:

for (instrukcja_początkowa; 

warunek; 
instrukcja_iterująca) Blok

Przykład:

for (int i=0; i<ar.length; i+

+{ s=s+ar[i];}

Delphi

Budowa

for 

zmienna:=wart_początkowa 
to wart_koń do Block

Przykład:

for i:=1 to length(ar) do 
  begin
  s:=s+ar[i];
  end;

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

8

Pętle – sprawdzenie przed 
iteracją

Java

Budowa:

Nadanie wartości 
zmiennej kontrolnej

While (warunek) 
Block 

Przykład

i=1; s=0;
while i<ar.lenght)
  {
  s:=s+ar[i];
  i++;
  };

Delphi

Budowa:

Nadanie wartości 
zmiennej kontrolnej

While (warunek) 
Block

Przykład

i:=1; s:=0;
while i<length (ar) do
  begin
  s:=s+ar[i];
  Inc(i);
  end;

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

9

Pętle – sprawdzenie po 
iteracji

Java

Budowa:

do
  Block
while (warunek);

Przykład:

String buffer;
DataInputStream my_inp  =  new
DataInputStream(System.in);

do {
  buffer=my_inp.readLine(); }
while (! buffer.equals(„exit”));

Delphi

Budowa:

repeat
  Block
until (warunek); 

Przykład:

repeat
  read(x);
until (x=0);

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

10

Kontrola pętli

Break – przerywa wykonywanie pętli

Przykład:

  for (int i=0; i<ar.length; i++)
    { if ar[i]==0 beak;
       s=fun(ar[i]); 
      .....
      }

Continue –”przeskakuje” pozostałe instrukcje w bloku

Przykład:

 for (int i=0; i<ar.length; i++)
    { if ar[i]==0 continue;
       s=fun(ar[i]); 
      .....
      }

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

11

Powrót z metody

Java

Instrukcja return (powrot) 

przekazuje kontrolę 

programu do metody 

„wołającej”.  Jeżeli metoda 

zwraca wartość (jest 

funkcją) to trzeba podać 

wartość lub wyrażenie.

Budowa:

return wyrażenie;

Przykład:

int x2(int x)
  {
  return x*x;
  }

Delphi

Instrukcja break lub 

dojście do końca bloku 

powoduje powrót z funkcji

Zwracaną wartość nadaje 

się przypisuje się nazwie 

funkcji lub pseudo 

zmiennej Result;

Przykład:

function x2(x: integer);
  begin
  x2:=x*x;
  // result:=x*x;
  end;

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

12

Klasy - deklaracja

Java

Budowa:

class nazwaKlasy 

extends klasaPrzodek 
implements 
interfacaName {

Deklaracje zmiennych
Deklaracje funkcji 

(metod)

Inicjalizator klasy
}

Delphi

Budowa

nazwaKlasy= class 

(klasaPrzodek )

ZakresWidoczności
  Deklaracje 

zmiennych

  Deklaracje funkcji
Konstruktor klasy
end;

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

13

Metody i zmienne - 
deklaracja

Deklaracja zmiennych

Modyfikator(y) typ nazwa = wartość_ początkowa

Deklaracja metody (funkcji w klasie)

Modyfikator(y) typ nazwa (lista_argumentów) {
  instrukcje; ...
 }

Budowa listy argumentów

 (typ identyfikator, typ identyfikator, ....)

Deklaracja inicjalizatora

static {  instrukcje; ... }

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

14

Klasy - przykład

Class MyClass {
  int i; // zmienna klasy
  int Metoda1() {

int j; //zmienna lokalna
j=1;
return j;
}

  int Metoda2() {

int j; //zmienna lokalna ale inna niż powyżej
j=2;
return j;
}

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

15

Modyfikatory - static

Static

Zmienne należą do typu a nie są kopiowane do obiektu danej klasy

Przykład:

public class MyClass {
   // zmienna typu klasy
   public static int instanceCount;
   // konstruktor obiektu
   public MyClass() {instanceCount++; }
   // metoda typu klasy
   public static void resetCounter() {instanceCount=0; }
   // inicjalizator typu klasy
   static { instanceCount=0; }
   }

Metoda statyczne może być wywoływana z użyciem identyfikatora 

typu klasy:

   MyClass.resetCounter;

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

16

Modyfikatory

abstract

klasa nie jest w pełni zaimplementowana

Można dziedziczyć z tej klasy 

Nie można tworzyć obiektów (nie używać new)

synchronised

Synchronizacja wątków (threads)

native

Zaimplementowane w innym języku (n.p. C)

volative

Zmienna może się zmienić niezależnie od programu 

(n.p. I/O)

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

17

Modyfikatory - final

Zmienna nie może zmieniać 
wartości (po prostu stała)

Musi być nadana wartość w deklaracji

Przykład;

final int MAX_NUMBER = 1000;

Klasa lub metoda

Nie można nadpisać w klasie potomnej

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

18

Modyfikatory dostępu

Java

Określamy dla 
każdej metody lub 
zmiennej

Typy

public

protected

private protected

private

Delphi

Definiujemy sekcje 

o danym dostępie i 

tam wpisujemy 

deklaracje 

zmiennych lub 

metod

Typy

public

protected

private

published

background image

18/04/02

Programowanie Java 4  Copyri
ght Marek A. Chmielowski

19

Wskaźnik obiektu i klasy 
„rodzicielskiej”

this

Wskazuje na obiekt z którego wywołano 
metodę

super

Wskazuje na klasę „rodzicielską”

Przykład

this.x = 0;  // nadaje wartość zmiennej obiektu

super.x = 0; // nadaje wartość zmiennej w 
klasie „rodzicielskiej”


Document Outline