Lab02


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");
Aą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
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. MojaSuperKlasa. 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
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
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


Wyszukiwarka

Podobne podstrony:
access st2008z lab02 tabele
LAB02 OINS Kalmus Turek
Lab02 TokenRing
AiP Lab02
lab02 08
bazy danych lab02
java lab02 control
CAD 15 LAB02 Warstwy Rysowanie precyzyjna
BO Lab02
Lab02
lab02 11a
so lab02
Lab02
lab02 operacje
CCNA Lab02 5 4 podstawowa konfiguracja routera za pomocą linii poleceń CISCO IOS
LAB02
sop 2009 lab02

więcej podobnych podstron