JAVA.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Wstęp do strumieni danych
C++ wykład 2 ( ) Klasy i obiekty.
C++ wykład 4 ( ) Przeciążanie operatorów.
Język C/C++ Funkcje.
Programowanie obiektowe
Mgr inż.Marcin Borkowski Podstawy Java Krótkie wprowadzenie dla studentów Wyższej Szkoły Ekologii i Zarządzania
Wzorce.
Język ANSI C Funkcje Wykład: Programowanie komputerów
Prowadzący: mgr inż. Elżbieta Majka
Języki programowania C++
PROGRAMOWANIE STRUKTURALNE
Inżynieria oprogramowania Lecture XXX JavaTM – część IV: IO
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Kurs Pascala – spis treści
Tablice.
Podstawy programowania PP – LAB5 Wojciech Pieprzyca.
Język ANSI C Operacje we/wy
Java – programowanie obiektowe
dr Anna Kwiatkowska Instytut Informatyki
Tablice tablica jest sekwencją elementów tego samego typu (prostego lub obiektowego) w Javie tablice są obiektami, a zmienne tablicowe przechowują referencję
Podstawy programowania
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Podstawy programowania
Programowanie strukturalne i obiektowe
Podstawy programowania. Język C i C++– podstawy Temat: 1
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Wyrażenia algebraiczne
TABLICE C++.
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
Podstawy programowania w języku C i C++
Jerzy F. Kotowski1 Informatyka I Wykład 14 DEKLARATORY.
Programowanie obiektowe – zastosowanie języka Java SE
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Inicjalizacja i sprzątanie
Systemy wejścia i wyjścia Michał Wrona. Co to jest system wejścia i wyjścia? Pobierania informacji ze źródeł danych, zdolnych przesyłać sekwencje bajtów,
Łódź, 3 października 2013 r. Katedra Analizy Nieliniowej, WMiI UŁ Podstawy Programowania Programy różne w C++
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Podstawy informatyki 2013/2014
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
1 Strumienie Hierarchie klas strumieniowych, strumienie bajtowe - klasy InputStream i OutputStream i ich metody, klasa File, strumienie plikowe, strumienie.
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
Projektowanie stron WWW
Podstawy języka Instrukcje - wprowadzenie
Programowanie strukturalne i obiektowe C++
Zmienne i typy danych w C#
Temat 5: Instrukcje: print(), echo()
Tablice Zajęcia 8. Definicja Tablica (z ang. array) jest zmienną złożoną, która składa się z ciągu elementów tego samego typu. W pamięci komputera tablica.
Wykład 2 Programowanie obiektowe. Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy.
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Typy wyliczeniowe, kolekcje
Delegaty Delegat to obiekt „wiedzący”, jak wywołać metodę.
Programowanie Obiektowe – Wykład 2
Programowanie obiektowe – zastosowanie języka Java SE
Haskell Składnia funkcji.
PGO - Projektowanie i implementacja pierwszych klas
Zapis prezentacji:

JAVA

Podstawowe terminy Klasa to 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. class Klasa{ tutaj jakieś elementy }

Klasa obiekt = new Klasa(); Obiekt jest 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();

Metoda to dla kogoś kto już wcześniej programował inaczej funkcja 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.

Pierwszy program public class Hello{ public static void main(String[] args){ System.out.print("Hello World"); } public class Hello – jest to nic innego jak publiczna klasa o nazwie Hello. public static void main(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 

3. System.out.print(„Hello World”); – omawiając wyświetl(print) napis podany jako argument(„Hello World”) 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).

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

Rozwiązanie public class Hello{ public static void main(String[] args){ System.out.println("Ania"); System.out.println("Bartek"); System.out.println("Kasia"); } } _______________________ public static void main(String[] args){ System.out.println("Ania\nBartek\nKasia");

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.

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

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.

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

Przykład public class Typy{ public static void main(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); }

Zadanie Przetestuj wyświetlanie innych znaków specjalnych.

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

public class Stale{ public static void main(String[] args){ final double LICZBA_PI=3.14; final int STALA2; LICZBA_PI=8; //błąd, zmienna była zainicjowana STALA2=3; // tak można zrobić - pierwsze przypisanie } Słowo kluczowe final umieszczane 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.

Typ string public class Test{ public static void main(String[] args){ String hello = "Witaj "; String world = "Świecie!"; String powitanie = hello+world; //łączenie Stringów System.out.println(powitanie); String czesc = powitanie.substring(0, 6)+"uczniu"; System.out.println(czesc); } } Metoda substring() 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,

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.

Przykładowe rozwiązanie Public class Rozwiazanie{ public static void main(String[] args){ short a = 5; final int b = 129; final char c='c'; System.out.println(a); System.out.println(b); System.out.println(c); String x = "Ala "; String y = "ma "; String z = "kota"; String zdanie = x+y+z; System.out.println(zdanie); System.out.println(zdanie.substring(0, 7)); }}

Funkcje matematyczne i Wielkie liczby Aby korzystać z funkcji matematycznych musimy poznać bibliotekę Math z 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

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

Przykład programu, który obliczy pierwiastek z liczby, a następnie podnosi ją do 3 potęgi. public class Funkcje{ public static void main(String[] args){ double liczba = 9.0; int b = 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); } }

Import statyczny. Dzięki jego zastosowaniu będziemy mogli pomijać przedrostki Math przed nazwami funkcji. import static java.lang.Math.*; public class Funkcje{ public static void main(String[] args){ double liczba = 9.0; int b = 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); } }

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

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

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 class WielkaLiczba{ public static void main(String[] args){ BigInteger wielkaLiczba = new BigInteger("12312312312312312312"); System.out.println(wielkaLiczba.toString()); } }

BigInteger wielkaLiczba = BigInteger.valueOf(123123); Najpierw tworzymy wielką liczbę typu, zauważ, że podajemy ją w formie Stringa. Jednak można również użyć innej formy. BigInteger wielkaLiczba = BigInteger.valueOf(123123); 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().

import java.math.BigInteger; public class WielkieLiczby{ public static void main(String[] args){ BigInteger a = new BigInteger("123123123123123123123123123123"); BigInteger b = new BigInteger("987654321987654321987654321987"); BigInteger suma = 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

Zadania 1. Napisz prosty kalkulator, w którym zainicjujesz dwie zmienne int a 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.

Rozwiązania import static java.lang.Math.*; public class Funkcje{ public static void main(String[] args){ int a = -125; int b = 3; System.out.println(pow(a, b)); System.out.println(abs(a)); System.out.println(sqrt(pow(a,b))); } }

Rozwiązania mport java.math.BigInteger; public class Funkcje{ public static void main(String[] args){ BigInteger a = new BigInteger("-123123123123123123123123123123"); BigInteger b = new BigInteger("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()); } }

File plik = new File("nazwa_pliku.txt"); 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");

Scanner odczyt = new Scanner(new File("nazwa_pliku.txt")); Na najprostszy odczyt danych pozwala już wcześniej poznana klasa Scanner. Aby utworzyć strumień, należy użyć takiej konstrukcji: Scanner odczyt = new Scanner(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.

String text = odczyt.nextLine(); 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:

Import java. io. File; import java. io Import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Odczyt{ public static void main(String[] args) throws FileNotFoundException{ File file = new File("ala.txt"); Scanner in = new Scanner(file); String zdanie = in.nextLine(); System.out.println(zdanie); } }

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

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