1 / 37

JAVA

JAVA. Podstawowe terminy.

Télécharger la présentation

JAVA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JAVA

  2. Podstawowe terminy • Klasato fundament Javy. To dzięki nim jest ona w pełni obiektowa i przy tym tak wygodna. Najprościej mówiąc klasa to taka przestrzeń, w której umieszczamy inne elementy, przechowujemy informacje i je przetwarzamy. Obrazowym przykładem może być czteroosobowa rodzina jadąca samochodem. Samochód to klasa, natomiast rodzina to jej elementy, powiemy o nich obiekty. classKlasa{ tutaj jakieś elementy }

  3. Obiektjest natomiast reprezentacją klasy i jej nośnikiem. Jeżeli mówimy o czymś, że jest obiektem w Javie, to tak naprawdę wyobrażamy sobie całą klasę i wszystko to co się w niej znajduje. Poprzez obiekt możemy odwoływać się do zmiennych, metod i innych elementów w niej zawartych. Klasa obiekt = new Klasa();

  4. Metoda to dla kogoś kto już wcześniej programował inaczej funkcja. W niej dokonywane są na przykład obliczenia, lub inne operacje. Metody mogą nie zwracać nic, ale równie dobrze dać w wyniku typ prosty, lub zwrócić obiekt. Niektóre mogą przyjmować także parametry, inne działać tylko na rzecz obiektu, który je wywołuje.

  5. Pierwszy program public classHello{ public staticvoidmain(String[] args){ System.out.print("HelloWorld"); } } • public classHello– jest to nic innego jak publiczna klasa o nazwie Hello. • public staticvoidmain(String[] args) – jest to metoda main, to od niej rozpoczyna się działanie programu i w niej wywołujemy inne metody, lub tworzymy obiekty za to odpowiedzialne. W nawiasie podane są argumenty w postaci tablicy Stringów

  6. 3. System.out.print(„HelloWorld”); – omawiając wyświetl(print) napis podany jako argument(„HelloWorld”) przy użyciu strumienia wyjścia w biblioteki System. Istnieje także bliźniacza metoda println(string), która dodaje na końcu drukowanego tekstu znak nowej linii „\n” (i właśnie jej będziemy zazwyczaj używali).

  7. Zadanie  Napisz program, który wyświetli w 3 kolejnych liniach trzy imiona: Ania, Bartek, Kasia.

  8. Rozwiązanie public classHello{ public staticvoidmain(String[] args){ System.out.println("Ania"); System.out.println("Bartek"); System.out.println("Kasia"); } } _______________________ public classHello{ public staticvoidmain(String[] args){ System.out.println("Ania\nBartek\nKasia"); } }

  9. Komentarze W Javie istnieją dwa rodzaje komentarzy: • //text- tekst umieszczony za podwojonym znaku slash jest uznawany za komentarz aż do końca linii • /* text */ – tekst umieszczony w takich znacznikach jest traktowany jako komentarz przez wiele linii kodu.

  10. Przykład public class Komentarze{ //poniżej rozpoczyna się działanie programu public staticvoidmain(String[] args){ /*Ten tekst nie ma wpływu na program */ System.out.print("HelloWorld"); } }

  11. Zjawisko konkatenacji (+) System.out.println(„czy 2 plus 2 to " + 2 + 2); Operator + jest operatorem konkatenacji, jeśli choć jeden z operandów tego operatora jest stringiem. 

  12. Znaki specjalne, które muszą być poprzedzone znakiem backslash\: • \t – tab • \n – nowa linia • \” – cudzysłów • \’ – apostrof • \\ – backslash

  13. Przykład public class Typy{ public staticvoidmain(String[] args){ System.out.println('a'+'A'); System.out.println(1+2); System.out.println(1.0+2.0); System.out.println("cudzysłów \""); System.out.println(true); } }

  14. Zadanie Przetestuj wyświetlanie innych znaków specjalnych.

  15. Zmienne Wyróżniamy dwie fazy tworzenia zmiennej: • Deklaracja - tutaj określamy typ i nazwę zmiennej • Inicjalizacja - nadanie wartości zmiennej public class Zmienne{ public staticvoidmain(String[] args){ intliczba; // Deklaracja liczba = 5; // Inicjalizacja } }

  16. public class Stale{ public staticvoidmain(String[] args){ finaldouble LICZBA_PI=3.14; finalint STALA2; LICZBA_PI=8; //błąd, zmienna była zainicjowana STALA2=3; // tak można zrobić - pierwsze przypisanie } } Słowo kluczowe finalumieszczane przed typem zmiennej oznacza, że zadeklarowana w ten sposób zmienna może być tylko raz, w dowolnym miejscu, zainicjowana. Późniejsza próba przypisania jej nowej wartości zakończy się błędem i program nawet (na szczęście) nie przejdzie kompilacji.

  17. Typ string public class Test{ public staticvoidmain(String[] args){ Stringhello = "Witaj "; Stringworld = "Świecie!"; Stringpowitanie = hello+world; //łączenie Stringów System.out.println(powitanie); Stringczesc = powitanie.substring(0, 6)+"uczniu"; System.out.println(czesc); } } Metodasubstring() Po działaniu programu łatwo się domyślić jakie jest jej działanie. Mianowicie zwraca ona „pod string” zaczynając od indeksu podanego jako pierwszy parametr (u nas 0) i kończąc przed indeksem podanym jako drugi parametr -1. W Javie wszystko numeruje się od zera,

  18. Zadanie Napisz program, w którym zadeklarujesz kilka stałych, lub zmiennych różnych typów o dowolnych nazwach, a następnie wyświetlisz je w kolejnych liniach tekstu. Skompiluj, lub spróbuj skompilować przykłady podane w tej lekcji i zobacz co się stanie przy próbie nadania po raz drugi wartości jakiejś stałej. W tym samym programie zadeklaruj cztery zmienne typu String. Trzy z nich zainicjuj jakimiś wyrazami a czwartemu przypisz ciąg znaków utworzony z trzech wcześniejszych zmiennych. Następnie wyświetl czwartą zmienną na ekranie. Przy użyciu metody substring wyświetl na ekranie dwa pierwsze wyrazy wykorzystując wyłącznie czwartą zmienną typu String.

  19. Przykładowe rozwiązanie Public classRozwiazanie{ public staticvoidmain(String[] args){ shorta = 5; finalint b = 129; finalchar c='c'; System.out.println(a); System.out.println(b); System.out.println(c); Stringx = "Ala "; Stringy = "ma "; Stringz = "kota"; String zdanie = x+y+z; System.out.println(zdanie); System.out.println(zdanie.substring(0, 7)); }}

  20. Funkcje matematyczne i Wielkie liczby Aby korzystać z funkcji matematycznych musimy poznać bibliotekę Mathz pakietu java.lang. Kilka najważniejszych funkcji znajduje się poniżej. • sqrt(double liczba) – zwraca pierwiastek z liczby double. Jako parametr możemy również podać dowolny typ liczbowy, wtedy nastąpi jego automatyczna konwersja na double. • pow(double a, double b) – zwraca liczbę a podniesioną do potęgi b • abs(liczba) – parametrem może być dowolna liczba, metoda zwraca wartość bezwzględną z argumentu

  21. Wszystkie metody są statyczne, aby je wywołać należy użyć konstrukcji: Math.nazwa_metody(argumenty)

  22. Przykład programu, który obliczy pierwiastek z liczby, a następnie podnosi ją do 3 potęgi. public class Funkcje{ public staticvoidmain(String[] args){ double liczba = 9.0; intb = 3; double pierwiastek = Math.sqrt(liczba); double potega = Math.pow(liczba, b); System.out.println("Pierwiastek z "+liczba+" wynosi: "+pierwiastek); System.out.println("Liczba "+liczba+" podniesiona do potegi "+b+" to "+potega); } }

  23. Import statyczny. Dzięki jego zastosowaniu będziemy mogli pomijać przedrostki Math przed nazwami funkcji. import staticjava.lang.Math.*; public class Funkcje{ public staticvoidmain(String[] args){ double liczba = 9.0; intb = 3; double pierwiastek = sqrt(liczba); double potega = pow(liczba, b); System.out.println("Pierwiastek z "+liczba+" wynosi: "+pierwiastek); System.out.println("Liczba "+liczba+" podniesiona do potegi "+b+" to "+potega); } }

  24. W klasie Math występują także dwie stałe PI oraz E, dzięki nim nie musimy deklarować własnych liczb pi oraz e. Wywołujemy je podobnie jak funkcje. Math.PI Math.E

  25. Wielkie liczby Może się zdarzyć, że nawet zakres typów long, czy double nie wystarczy do naszych obliczeń. Co wtedy zrobić? W Javie istnieją dwie klasy do przechowywania naprawdę ogromnych liczb oferujące dodatkowe funkcje matematyczne i nadające się także do precyzyjnych obliczeń matematycznych, na przykład w bankowości. BigInteger – klasa dla wielkich liczb całkowitych BigDecimal – klasa dla wielkich liczb zmiennoprzecinkowych Ich używanie w tradycyjnych programach nie jest zbyt wygodne, ponieważ nie można zrobić bezpośredniego przypisania wartości BigInteger przykładowo do wartości int, mimo, że BigInteger przechowywałaby liczbę z zakresu int. Jest to spowodowane tym, że klasa BigInteger jest typem obiektowym. Obie klasy posiadają także stałe, które są często wykorzystywane, najważniejsze to BigInteger.ONE / BigDecimal.ONE BigInteger.ZERO/ BigDecimal.ZERO

  26. By utworzyć nową zmienną typu BigInteger, lub BigDecimal musimy najpierw utworzyć obiekt. W nagłówku trzeba oczywiście też zaimportować używaną klasę. Import java.math.BigInteger; public classWielkaLiczba{ public staticvoidmain(String[] args){ BigIntegerwielkaLiczba = newBigInteger("12312312312312312312"); System.out.println(wielkaLiczba.toString()); } }

  27. Najpierw tworzymy wielką liczbę typu, zauważ, że podajemy ją w formie Stringa. Jednak można również użyć innej formy. W tym przypadku trzeba jednak pamiętać, aby argument metody valueOf() nie przekroczył zakresu typu long, lub double w przypadku klasy BigDecimal. Przy sposobie ze Stringiem mogą one być praktycznie nieograniczone. Aby dodać dwie ogromne liczby nie możemy korzystać ze standardowych operatorów, należy w takim wypadku skorzystać z gotowych funkcji: add(), subtract(), multiply(), divide(). BigIntegerwielkaLiczba = BigInteger.valueOf(123123);

  28. import java.math.BigInteger; public classWielkieLiczby{ public staticvoidmain(String[] args){ BigIntegera = newBigInteger("123123123123123123123123123123"); BigIntegerb = newBigInteger("987654321987654321987654321987"); BigIntegersuma = a.add(b); System.out.println("Suma "+suma.toString()); } } Stworzyliśmy tutaj dwie wielkie liczby a i b. Następnie obliczamy ich sumę dzięki konstrukcji a.add(b), która zwraca wynik dodawania dwóch liczb typu BigInteger. Wyświetlamy wynik dzięki temu, że klasa BigInteger posiada metodę toString() konwertującą liczbę na łańcuch znaków

  29. Zadania 1. Napisz prosty kalkulator, w którym zainicjujesz dwie zmienne inta i b dowolnymi liczbami mieszczącymi się w zakresie – niech a będzie liczbą ujemną, natomiast b dodatnią… Następnie wykorzystując import statyczny wyświetl wyniki następujących działań bez użycia dodatkowych zmiennych: -a^b (a do potęgi b) -|a| (wartość bezwzględna z liczby a) -pierwiastek z liczby a do potęgi b. Zobacz co się stanie, gdy do a i b przypiszesz dwie 3 cyfrowe liczby, oraz gdy liczba b będzie nieparzysta (wynik a^b będzie ujemny). 2. Napisz program analogiczny do zadania 1 wykorzystując klasę BigInteger. Utwórz dwie liczby wykraczające poza zakres long, wypróbuj funkcje dodawania, odejmowania i mnożenia, a także podniesienie do potęgi(zobacz w API jaki typ parametru przyjmuje ta funkcja) i wartość bezwzględną. Wszystkie wyniki zaprezentuj w konsoli.

  30. Rozwiązania import staticjava.lang.Math.*; public class Funkcje{ public staticvoidmain(String[] args){ inta = -125; intb = 3; System.out.println(pow(a, b)); System.out.println(abs(a)); System.out.println(sqrt(pow(a,b))); } }

  31. Rozwiązania mportjava.math.BigInteger; public class Funkcje{ public staticvoidmain(String[] args){ BigIntegera = newBigInteger("-123123123123123123123123123123"); BigIntegerb = newBigInteger("321321321321321321321321321321"); System.out.println("a+b= "+a.add(b).toString()); System.out.println("a-b= "+a.subtract(b).toString()); System.out.println("a*b= "+a.multiply(b).toString()); System.out.println("a/b= "+a.divide(b).toString()); System.out.println("a^12= "+a.pow(12)); System.out.println("|a|= "+a.abs()); } }

  32. Zapis i odczyt z plików Zapis i odczyt danych z plików to już bardziej zaawansowane zagadnienie. w Javie, ale na szczęście w przypadku plików tekstowych nie taki diabeł straszny o czym się zaraz przekonamy. Aby sprawnie porozumiewać się z istniejącymi na naszym dysku danymi musimy przede wszystkim poznać kilka podstawowych klas. Podstawowa klasa, która pozwoli nam utworzyć obiekt przechowujący dane pliku to File. Tworzymy je w następujący sposób: W ten sposób mamy do dyspozycji obiekt File o nazwie plik, który pozwoli nam na operacje na nim. File plik = new File("nazwa_pliku.txt");

  33. Odczyt: Na najprostszy odczyt danych pozwala już wcześniej poznana klasa Scanner. Aby utworzyć strumień, należy użyć takiej konstrukcji: Scanner odczyt = newScanner(new File("nazwa_pliku.txt")); Widzimy tutaj typową dla Javy i języków obiektowych konstrukcję zwaną dekoratorem, lub kompozycją często stosowaną w Javie. Klasa Scanner „obudowuje” klasę File, dzięki czemu mamy dostęp do pliku. Później przekonamy się, że takich zagnieżdżeń może być dużo więcej.

  34. Gdy mamy utworzony obiekt Scanner z przekazanym jej odpowiednim obiektem File możemy już używać odpowiednich metod, czyli podobnie jak miało to miejsce w konsoli poprawna będzie taka instrukcja:Wczytamy w ten sposób do zmiennej text linię tekstu z pliku tekstowego. Sprawdźmy to na przykładzie. Utwórz plik, w którym zapiszesz jedną dowolną linię tekstu, przykładowo „Ala ma kota, bo nie wzięła leków”. Zapisz go jako ala.txt. Kod programu do odczytania tego zdania wyglądałby następująco: Stringtext = odczyt.nextLine();

  35. Import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner;public class Odczyt{ public staticvoidmain(String[] args) throwsFileNotFoundException{ File file = new File("ala.txt"); Scannerin = newScanner(file); String zdanie = in.nextLine(); System.out.println(zdanie); } }

  36. Pamiętaj, aby plik był w tym samym folderze, co plik .class, w innym wypadku podaj ścieżkę do pliku w miejsce jego nazwy.

  37. Źródło: http://javastart.pl

More Related