Lab02

background image

Programowanie obiektowe /Java/
Laboratorium nr 2

1

Typy podstawowe i obiektowe

Nazwa typu

Rozmiar

Typ obiektowy

boolean

Boolean

char

16 bitów

Character

byte

8 bitów

Byte

short

16 bitów

Short

int

32 bity

Integer

long

64 bity

Long

float

32 bity

Float

double

64 bity

Double

void

Void

Tabela 1: Typy (Thinking in Java, Bruce Eckel, Wydanie IV, Helion, 2006)

Wszystkie typy numeryczne są typami ze znakiem. Klasa BigInteger służy do reprezentacji typu całkowi-

tego dowolnej precyzji. KlasaBigDecimal służy do reprezentacji liczb stałoprzecinkowych dowolnej precyzji.
Klasa String służy do przechowywania teksów np.

String tekst1 = "Tekst";
String tekst2 = new String("Tekst");

Łączenie tekstów, operator + np.

String tekst3 = tekst1 + tekst2;

2

Wyświetlanie na konsolę

System.out.print("Tekst ");
System.out.println("Tekst ");
System.out.printf("%s", "Tekst ");

Symbol nowej linii:

public static String newline = System.getProperty("line.separator");

Co pojawi się na ekranie po uruchomieniu przykładu?

System.out.println(1 + 1);
System.out.println("" + 1 + 1);

3

Podstawowe operatory

Podstawowe operatory: dodawanie (+), odejmowanie (−), mnożenie (∗), dzielenie (/) oraz reszta z dzie-

lenia (%). Przykład:

1

package

pl.kielce.tu.lab2;

2
3

public class

DBZ {

4

public static void

main(String args[]) {

5

Integer a = 0;

6

Integer b = 0;

7

Integer c = -1;

8

Integer d = 1;

1

background image

9

System.out.println(

"a / b = "

+ (a / b));

10

System.out.println(

"a / c = "

+ (a / c));

11

System.out.println(

"a / d = "

+ (a / d));

12

System.out.println(

"c / a = "

+ (c / a));

13

System.out.println(

"c / d = "

+ (c / d));

14

System.out.println(

"d / a = "

+ (d / a));

15

System.out.println(

"d / c = "

+ (d / c));

16

}

17

}

Przykład 1: src/pl/kielce/tu/lab2/DBZ.java {link}

1

package

pl.kielce.tu.lab2;

2
3

public class

NaN {

4

public static void

main(String args[]) {

5

Float a = 0.0F;

6

Float b = 0.0F;

7

Float c = Float.NEGATIVE_INFINITY;

8

Float d = Float.POSITIVE_INFINITY;

9

System.out.println(

"a / b = "

+ (a / b));

10

System.out.println(

"a / c = "

+ (a / c));

11

System.out.println(

"a / d = "

+ (a / d));

12

System.out.println(

"c / a = "

+ (c / a));

13

System.out.println(

"c / d = "

+ (c / d));

14

System.out.println(

"d / a = "

+ (d / a));

15

System.out.println(

"d / c = "

+ (d / c));

16

}

17

}

Przykład 2: src/pl/kielce/tu/lab2/NaN.java {link}

Co wyświetli się na konsoli?

4

Standardy nazewnictwa

W Javie nazwy pakietów powinny być pisane małymi literami. W nazwie klasy pierwsza litera powinna

być wielka. Jeżeli nazwa klasy składa się z kliku słów, to pisane są one łącznie. Pierwsza litera każdego słowa
powinna być wielka. Nie stosuje się znaku podkreślenia do rozdzielenie słów np. M ojaSuperKlasa. Od tej
zasady istnieje kilka wyjątków. W przypadku metod, atrybutów (pól) i nazw referencji stosuje się taki sam
styl poza tym, że pierwsza litera jest mała np. licznikP arzystych, void zwiekszLicznik().

5

Komentarze

//komentarz znajdujący się w jednej linii
/* komentarz znajdujący się
w wielu liniach */

6

Definicje

Pakiet – grupa klas zebranych razem we wspólnej przestrzeni nazw. Nazwa pakietu powinna być odwróco-

ną nazwą domeny internetowej autora np. pl.kielce.tu.nowak. W jednostce kompilacji (pliku) może znajdować
się tylko jedna klasa publiczna. Nazwa klasy publicznej musi dokładnie pasować do nazwy pliku, w którym
się znajduje. W pliku mogą znajdować inne także inne klasy niepubliczne. Konstruktor – specjalna metoda
automatycznie wywoływana podczas tworzenia obiektu służąca do zainicjowania obiektu. Konstruktor bezar-
gumentowy (domyślny) – konstruktor nie przyjmujący żadnych parametrów. W Javie nazwa konstruktora jest
taka sama jak nazwa klasy. Destruktor – specjalna metoda automatycznie wywoływana podczas niszczenia
obiektu. W Javie nie istnieją destruktory. Metody niestatyczne wywoływane są na rzecz obiektu. Metody

2

background image

statyczne (słowo kluczowe static) mogą być wywoływane na rzecz klasy bez konieczności tworzenia obiektów
danej klasy. Słowo kluczowe this – referencja do obiektu, na rzecz którego dana metoda została wywołana.
Może być stosowane tylko wewnątrz metod niestatycznych.

Przykład:

1

/* Pakiet */

2

package

pl.kielce.tu.lab2;

3
4

/* Klasa */

5

public class

Samochod {

6
7

/* Atrybut (pole) */

8

int

iloscPaliwa;

9

10

/* Atrybut statyczny (pole statyczne) */

11

static int

licznikSamochodow = 0;

12
13

/* Konstruktor bezargumentowy (domyślny) */

14

public

Samochod() {

15

this

.iloscPaliwa = 100;

16

licznikSamochodow++;

17

}

18
19

/* Konstruktor */

20

public

Samochod(

int

iloscPaliwa) {

21

this

.iloscPaliwa = iloscPaliwa;

22

licznikSamochodow++;

23

}

24
25

/* Metoda niestatyczna */

26

void

zatankujPaliwo(

int

paliwo) {

27

this

.iloscPaliwa += paliwo;

28

}

29
30

/* Metoda niestatyczna */

31

int

sprawdzPaliwo() {

32

return this

.iloscPaliwa;

33

}

34
35

/* Metoda statyczna */

36

static int

podajLiczbeSamochodow() {

37

return

licznikSamochodow;

38

}

39
40

/* Metoda statyczna */

41

public static void

main(String[] args) {

42

// wywołanie konstruktora bezargumentowego (domyślnego)

43

Samochod s1 =

new

Samochod();

44
45

// wywołanie metody niestatycznej

46

int

p1 = s1.sprawdzPaliwo();

47

System.out.println(

"1) S1 ma "

+ p1 +

" litrow paliwa"

);

48
49

// wywołanie metody niestatycznej z argumentem

50

s1.zatankujPaliwo(10);

51
52

// odczytanie wartości atrybutu (pola)

53

int

p2 = s1.iloscPaliwa;

54

System.out.println(

"2) S1 ma "

+ p2 +

" litrow paliwa"

);

55
56

// odczytanie wartości atrybutu statycznego (pola statycznego)

3

background image

57

int

l1 = Samochod.licznikSamochodow;

58

System.out.println(

"3) Mamy "

+ l1 +

" samochod(y)"

);

59
60

// wywołanie konstruktora

61

Samochod s2 =

new

Samochod(50);

62
63

// wywołanie metody niestatycznej

64

s2.zatankujPaliwo(10);

65
66

// wywołanie metody statycznej

67

int

l2 = Samochod.podajLiczbeSamochodow();

68

System.out.println(

"4) Mamy "

+ l2 +

" samochod(y)"

);

69

}

70

}

Przykład 3: src/pl/kielce/tu/lab2/Samochod.java {link}

7

Przykładowa treść laboratorium

Proszę stworzyć oraz uruchomić aplikację zgodną ze specyfikacją podaną przez prowadzącego np. napisać

klasę realizującą funkcję prostego kalkulatora (+, -, *, /). Klasa powinna w zmiennej statycznej przechowywać
informacje o liczbie wykonanych operacji.

4


Document Outline


Wyszukiwarka

Podobne podstrony:
Lab02'11
CCNA Lab02 5 4 podstawowa konfiguracja routera za pomocą linii poleceń CISCO IOS
LAB02 OINS Kalmus Turek
Lab02 Sprawozdanie id 258779 Nieznany
Lab02
SiS Lab02 Micha 322 Kucab EF-DI1 2008 L06, Studia, Semestr 1, Sygnały i Systemy, Sprawozdanie 2
infa Lab02
LAB02 id 257505 Nieznany
Fizyka lab02
Lab02
Inf Lab02 id 212934 Nieznany
BO Lab02
lab02 operacje
sprawozdanie lab02, Polibuda, Fiza, Fizyka sprawozdania (burdel jak cholera), Sprawozdania z Fizyki
Lab02'11
java lab02 control
LAB02

więcej podobnych podstron