Table of Contents
Programowanie obiektowe - Laboratorium 1
1.1 Kompilacja i uruchomienia Hello World
- Za pomocą swojego ulubionego edytora utwórz plik HelloWorld.java
- zadeklaruj w nim klasę HelloWorld
- Wpisz wewnątrz funkcję
public static void main(String[] args)
- W funkcji wypisz: tekst
Hello World
– użyj instrukcjiSystem.out.println(“tekst”)
Sprawdź czy działają polecenia:
javac
- kompilatorjava
- maszyna wirtualna
Skmpiluj program wywołując
javac HelloWorld.java
Co pojawiło się w wyniku kompilacji na dysku?
Uruchom program wywołując
java HelloWorld
1.2 Klasa należąca do pakietu
- Utwórz podkatalog
lab1
- Skopiuj tam plik HelloWorld.java
- Dodaj na początku pliku
package lab1;
- Skompiluj za pomocą
javac
- Spróbuj uruchomić wywołując:
java HelloWorld
java lab1/HelloWorld
java lab1.HelloWorld
java -cp .. lab1.HelloWorld
Które rozwiązanie zadziałało i z jakiej lokalizacji względem pliku HelloWorld.class?
1.3 Proste wejście wyjście
Wyjście - wypróbuj warianty:
System.out.print("...") System.out.println("...") System.out.printf("String %s int %d double %f",???)
Wejście - wczytywanie danych z konsoli:
Zaimportuj klasy Scanner
i Locale
import java.util.Scanner; import java.util.Locale; public class Main { public static void main(String[] args) { ... } }
Zobacz, jak można wczytać dane
Scanner scan = new Scanner(System.in); String s = scan.next(); int i = scan.nextInt(); double d = scan.nextDouble(); System.out.printf("Wczytano %s , %d, %f",s,i,d);
Wolisz stosować kropki, jako separator dziesiętny? Zmień locale na Locale.US
Scanner scan = new Scanner(System.in).useLocale(Locale.US); String s = scan.next(); int i = scan.nextInt(); double d = scan.nextDouble(); System.out.printf(Locale.US,"Wczytano %s , %d, %f",s,i,d);
Locale.US
to stała (zmienna statyczna) zdefiniowana wewnątrz klasy Locale
. Kropka ma takie znaczenie, jak operator zasięgu ::
w C++.
Wybór IDE
Netbeans vs. InteliJ vs. Eclipse
- Osobiście najczęściej używam Netbeans (sprawnie obsługuje kodowanie w Java, C/C++, SQL i PHP, usługi sieciowe, JavaScript, itp.). Rozwijane przez Oracle, bezpłatne.
- InteliJ ma podobną efektywność i funkcjonalność. Praktycznie ten sam produkt jest oficjalnym narzędziem budowy aplikacji dla systemu Android. Dostępna wersja community lub pełna (dla studentów bezpłatna)
- Eclipse jest rozpowszechnione, także jako platforma do budowy samodzielnych aplikacji z GUI. Mam jednak wrażenie, że działa wolno i często “zatyka się”, zwłaszcza przy uzupełnianiu kodu (code completion). Bezpłatne.
1.4 Tworzymy pierwszy projekt w IDE
- Utwórz projekt Lab1
- Utwórz w nim klasę
SimpleIO
umieszczoną w pakiecielab1
. W zależności od IDE - może być konieczne wpierw utworzenie pakietu, a potem klasy - Przekopiuj tam kod
- Obserwuj edytor - program jest kompilowany w locie, błędy są zaznaczane, część rutynowych działań mających na celu ich wyeliminowanie można wykonać automatycznie (klikając lub używając kombinacji klawiszy)
- Uruchom (możesz wybrać Run lub Run file)
1.5 Druga funkcja main ?
Utwórz klasę o nazwie Fibo
i utwórz w niej funkcję main()
Zaimplementuj tam kod umieszczony w funkcji main()
, który
- wczytuje liczbę całkowitą
n
z zakresu 1 - 45 (dla liczb spoza zakresu wychodzi z funkcjimain
) - deklaruje tablicę (czytaj: deklaruje zmienną
tab
i tworzy tablicę na stercie)int[] tab = new int[n]
- wypełnia ją wartościami ciągu Fibbonaciego
- Wypisuje elementy tablicy
Uruchom program za pomocą opcji Run File
1.6 Trzecia funkcja main? Problem 610A
- Dodaj do projektu klasę
Problem610A
- Przeczytaj opis zadania na stronie http://codeforces.com/problemset/problem/610/A
- Zaimplementuj…
- Sprawdź działanie dla opublikowanych przykładów
- Opcjonalnie: załóż konto i prześlij kod do wykonania w chmurze. Sprawdź, czy przeszedł wszystkie testy?
1.7 I jeszcze czwarta. Problem 115A
- Dodaj do projektu klasę
Problem115A
- Przeczytaj opis zadania na stronie http://codeforces.com/problemset/problem/115/A
- Podobnie, jak poprzednio zaimplementuj i przetestuj