JAVA – wstęp.

Slides:



Advertisements
Podobne prezentacje
Programowanie w Java.
Advertisements

Wstęp do strumieni danych
C++ wykład 9 ( ) Szablony.
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
Programowanie obiektowe
Wzorce.
Języki programowania C++
PROGRAMOWANIE STRUKTURALNE
Tworzenie i obsługa programów – przykład 3 uwagi cd. Wykorzystując różne klasy biblioteki języka Java należy pamiętać w jakim pakiecie się znajdują. Wszystkie.
Nguyen Hung Son Uniwersytet Warszawski
Programowanie obiektowe w Javie
Podstawy języka Java Nguyen Hung Son Uniwersytet Warszawski.
Tablice.
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
C++ wykład 2 ( ) Klasy i obiekty.
Wykład 2 struktura programu elementy języka typy zmienne
Project made by Bartosz Rumiński Kl. III i rok 2007/2008.
Java – programowanie obiektowe
dr Anna Kwiatkowska Instytut Informatyki
Dr Anna Kwiatkowska JAVA dr Anna Kwiatkowska
Wprowadzenie do programowania w języku Turbo Pascal
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. 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ć
Tworzenie aplikacji mobilnych
Programowanie obiektowe III rok EiT
Programowanie Windows na przykładzie C# część 1
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.
Programowanie obiektowe III rok EiT
STEROWANIE Ale nie tylko
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Inicjalizacja i sprzątanie
JAVA.
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
C# Platforma .NET CZ.3 Kuba Ostrowski.
Java 3 MPDI Programowanie obiektowe W5. Java - obiektowy język programowania stworzony przez firmę Sun Microsystems. Java jest językiem tworzenia programów.
Podstawy informatyki 2013/2014
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
OCPJP Inner classes.
Kurs języka C++ – wykład 9 ( )
Programowanie w języku C++
Podstawy języka Instrukcje - wprowadzenie
Podstawy programowania
Programowanie strukturalne i obiektowe C++
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Podstawy języka skryptów
Podstawy programowania
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
Podstawowe konstrukcje języka Java Bartosz Walter InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin.
Programowanie Obiektowe – Wykład 6
Programowanie Obiektowe – Wykład 2
Programowanie obiektowe – zastosowanie języka Java SE
Dane, zmienne, instrukcje
Założenia projektowe Javy
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Programowanie w Javie 1 Dr Robert Kowalczyk
Zapis prezentacji:

JAVA – wstęp

Java - wstęp Java jest to język programowania, który powstał w roku 1991. Na początku jego nazwa była inna niż obecnie, nazywał się bowiem Oak (Dąb). Jest to język programowania, którego składnia jest niezwykle podobna do innego popularnego języka programowania, czyli C++. Java jest także językiem, który jest prawie całkowicie obiektowy, co oznacza, że wszystko co się w nim znajduje jest obiektem, natomiast wyjątek od tej reguły stanowią tylko i wyłącznie zmienne. Pierwszym projektem, w którym wykorzystano język Java, był projekt zwany “Green”. Java została stworzona przez działającą do dzisiaj amerykańską firmę Sun Microsystems z Patrickiem Naughtonem oraz Jamesem Goslingiem na czele, którzy postanowili stworzyć prosty i niewielki język, który mógłby być uruchamiany na wielu platformach z różnymi parametrami.

Java – wstęp Początkowo zespół ludzi rozwijających język Java miał na celu zaprojektowanie oprogramowania do sprzętu elektronicznego. Szybko zorientowano się, że istniejące języki, takie jak C lub C++, nie nadają się do tego celu. Pomysł rozwijano i doprowadzono do stworzenia pionierskiego języka uruchamianego kodu pośredniego na wirtualnej maszynie. Pozwoliło to na uruchamianie jednego kodu na wielu urządzeniach wyposażonych w interpreter języka. Około 1993 roku World Wide Web przemieniał się z formy tekstowej prezentacji danych na graficzną i przyciągał coraz większą uwagę. Twórcy języka Java błyskawicznie zdali sobie sprawę, że ich nowostworzony język będzie idealny do aplikacji sieciowych, działających przecież na różnych komputerach. Stworzyli zatem pierwszą przeglądarkę internetową, nazwaną WebRunner. Później zmieniono nazwę na HotJava, aby zachować znak firmowy.

Java - wstęp HotJava, jako pierwsza obsługiwała applety. Była ona ważnym krokiem w rozwoju aplikacji internetowych. Internet łączy w sobie różne typy komputerów i platform systemowych. Dlatego, żeby Java działał na każdej z nich, zastosowano następujące rozwiązanie. Najpierw kompilacja tworzy nam w efekcie tzw. B–kod (kod pośredni), a następnie Java Virtual Machine (program uzależniony od konkretnej platformy systemowej) dokonuje jego interpretacji. Co prawda nadal trzeba posiadać odpowiednią dla swojego systemu operacyjnego wersję JVM, ale jest ona w większości obecnych systemów operacyjnych zaimplementowana.

Java - wstęp Pierwsza wersja Javy ukazała się w 1996 roku w wersji 1.0. Niestety nie osiągnęła ona wielkiego rozgłosu z czego inżynierowie firmy Sun dokładnie zdawali sobie sprawę. Na szczęście dosyć szybko poprawiono błędy i uzupełniono ją o nowe biblioteki, model zdarzeń GUI, a także poprawiono mechanizm refleksji. W Java 1.2, opublikowanej w 1998 roku największą zmianą była zmiana nazwy na dumnie brzmiący: Java 2 Standard Edition Development Kit version 1.2 – platforma przeznaczona głównie do standardowych zastosowań komputerów personalnych i serwerów. Opracowano wtedy także dwa inne wydania Javy, doskonale znana prawie każdemu z nas wersja Micro Edition, przeznaczona na urządzenia mobilne, oraz Enterprise Edition wykorzystywana przede wszystkim w programowaniu aplikacji klient-serwer. Kolejne edycje Javy aż do 6, to przede wszystkim dodawanie nowych funkcjonalności oraz prace nad wydajnością bibliotek standardowych.

Program w JAVIE Każdy program w Javie jest zestawem klas. Klasa jest podstawową jednostką enkapsulacji.( nie można pisać kodu poza definicją klasy) Pisany przez nas program może być zapamiętany w jednym lub wielu plikach źródłowych o rozszerzeniu „java”. Nazwa klasy powinno być zgodna z nazwą pliku, który przechowuje program.

Główne cechy języka java to: prostota bezpieczeństwo przenośność wielowątkowość neutralność architektury interpretowalność wysoka wydajność rozproszenie dynamika

Wersja tego języka (J2SE 5), wniosła wiele nowości typy sparametryzowane metadane automatyczne otaczanie i wydobywanie typów prostych wyliczenia zmienna liczba argumentów pętla for-each import statyczny formatowane wejście-wyjście unowocześnienie interfejsu programistycznego narzędzia związane ze współbieżnością

Pierwszy program – „Hello World” Programem w języku Java jest to aplikacja (application) lub aplet (applet). Aplikacja jest programem samodzielnym, zaś aplet jest programem wbudowanym (np. w przeglądarkę WWW). Każda aplikacja musi zawierać dokładnie jeden moduł źródłowy nazywany modułem głównym aplikacji, którego klasa publiczna zawiera publiczną funkcję klasy (funkcje takie są poprzedzane słowem kluczowym static) main. Tekst źródłowy najprostszego programu może mieć postać:

Pierwszy program – „Hello World” Dla skompilowania powyższego programu jego tekst źródłowy należy umieścić w pliku o nazwie Hello.java. Zakładając, że dysponujemy systemem JDK z kompilatorem javac, program skompilujemy poleceniem: javac Hello.java Udana kompilacja wygeneruje plik z B-kodem o nazwie Hello.class, zawierający sekwencję instrukcji dla interpretatora JVM. Kod ten wykonujemy przez wywołanie interpretatora o nazwie java poleceniem: java Hello Interpretator wyszuka plik o nazwie Hello.class, ustali, czy klasa Hello zawiera publiczną metodę statyczną main i wykona instrukcje zawarte w bloku main.

Pierwszy program – „Hello World” Public class Hello {     public static void main(String args[])     {      System.out.print("Hello, World!\n");     } } Oczywiście po kompilacji i uruchomieniu tego programu pojawi się na konsoli „Hello, World!” W jaki sposób?

Pierwszy program – „Hello World” Omówmy teraz składnię naszego pierwszego programu: public class Hello Jest to nic innego jak publiczna klasa o nazwie Hello, która pełni w naszym programie główny wątek.

public static void main(String args[]) Jest to metoda publiczna, gdyż musi być dostępna dla JVM do rozpoczęcia wykonywania programu. Jest to metoda statyczna, gdyż rozpoczyna wykonywanie, gdy nie istnieje jeszcze żaden obiekt. W nawiasie podane są arguemnty w postawi tablicy zmienny String, jako parametr funkcji main. Args[0] to tablica elementów typu String, która zawiera parametry, wysyłane do programu, podczas jego uruchamiania. Wartością parametru args[0] jest jest pierwszy po nazwie programu spójny ciąg znaków. Bez tej metody w głównej klasie programu (public class Hello), program nie uruchomiłby się.

Pierwszy program – „Hello World” System.out.print(„ Hello, World!\n”); Słowo System jest nazwą klasy w standardowym środowisku języka. Klasa System zawiera statyczny obiekt składowy typu PrintStream o nazwie out; wywołanie System.out oznacza pisanie do standardowego strumienia wyjściowego. Klasa PrintStream zawiera szereg przeciążeń metody o nazwie print. Jedno z nich przyjmuje parametr String. Kompilator automatycznie tłumaczy literał stały "Hello, World\n" na odpowiedni obiekt klasy String; odniesienie (referencja) do tego obiektu jest przekazywane do metody System.out.print(). Metoda print generuje jeden wiersz wyjściowy i powraca do metody main, która kończy wykonanie.

Pierwszy program – „Hello World” Kilka słów o argumencie metody main: public static void main(String args[]) Każda zmienna String w tablicy args[], jest nazwana argumentem z wiersza. (ang. command-line argument) Elementy tej tablicy pozwalają użytkownikowi mieć wpływ na operacje w wykonywam programie bez rekompilacji. Użytkownik ma dostęp do elementów tablicy args[] w obrębie funkcji main, może ich używać etc. Jeśli chcemy, aby nasz argument składał się z wielu słów należy go objąć cudzosłowiem. Przykład ->

Pierwszy program – „Hello World” -> public class Echo { public static void main (String[] args){ for (String s: args) { System.out.println(s); }

Podstawowa składnia języka Java posiada kilka typów zmiennych: Zmienne statyczne (ang. Static variables,claas variables) – zmienna zadeklarowana z modyfikatorem static. Jest to pole klasy wspólne dla wszystkich obiektów tej klasy np. static counter = 0; Zmienne niestatyczne (ang. Instance variables) – zmienna zadeklarowana np. w klasie, każdy obiekt posiada swój unikalny egzemplarz tego pola. Zmienne lokale – czyli po prostu zmienne, zadeklarowane w jakimś bloku kodu między klamrami {}, w bloku jakiejś metody itp. Parametry – zmienne wysłane jako argumenty do funkcji.

Nazywanie zmiennych i obiektów W Javie odróźnia się wielkie od małych liter w nazwach obiektów, zmiennych, nazw funkcji, klas itp. Można używać liter, cyfr oraz znaku ‘_’ a także ‘$’. Zaleca się, aby zmienną zawierającą jedno słowo w nazwie pisać małymi literami, jeśli nazwa składa się z kilku słów, to każde kolejne powinno być pisane z wielkiej litery. String nazwa; String dwuczlonowaNazwa; Należy pamiętać, że istnieją również zarezerwowane słowa w języku, które mają specjalne znaczenie dla kompilatora – słowa kluczowe (ang. keywords) ->

Słowa kluczowe abstract byte class continue else finally for import long new public strictfp switch throws volatile assert case const default enum float goto instanceof native package return super synchronized transient while boolean catch do extends if int in private short outer this try future break char inner double final virtual implements interface cast protected static generic throw void var

Typy zmiennych Typy podstawowe: char capitalC = 'C'; byte b = 100; byte – 8 bitowa liczba całkowita ze znakiem short - 16 bitowa liczba całkowita ze znakiem int - 32 bitowa liczba całkowita ze znakiem long - 64 bitowa liczba całkowita ze znakiem float - 32 bitowa liczba rzeczywista double - 64 bitowa liczba rzeczywista boolean - zmienna logiczna (true,false) char - zmienna znakowa Przykład: boolean result = true; char capitalC = 'C'; byte b = 100; short s = 10000; int i = 100000;

Klasy opakowujące (ang. wrapper classes) Ważnym aspektem w języku java są klasy opakowujące. Oprócz zwykłych zmiennych (np. int, double) możemy deklarować również egzemplarze klas opakowujących. Klasy opakowujące dziedziczą z klasy Number:

Klasy numeryczne (ang. wrapper classes) Typ podstawowy Klasa numeryczna byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean

Klasy opakowujące (ang. wrapper classes) Obiekty tych klas reprezentują (w sposób obiektowy) dane odpowiednich typów. Np. obiektowy odpowiednik liczby 5 typu int możemy uzyskać tworząc obiekt klasy Integer: Integer a = new Integer(5); Klasy opakowujące nie dostarczają żadnych metod do wykonywania operacji na liczbach. Z obiektu takiej klasy musimy liczbę "wyciągnąć" za pomocą odpowiednich metod, np. int i = a.intValue(); Można zadać sobie pytanie po co używać takich klas? Otuż czasem przydają się nam metody z klas opakowujących, szczególnie dlatego, że zawierają szereg przydatnych konwersji.

Operatory Operator Nazwa Przykład . Selektor obiektu obiekt.nazwa_elementu [] Indeks tablicy tablica[nuner_elementu] () Wywołanie funkcji nazwa_funkcji(lista_elementów) ++ Przyrostkowy operator inkrementacji zmienna++ Przedrostkowy operator inkrementacji ++zmienna -- Przyrostkowy operator dekrementacji zmienna-- Przedrostkowy operator dekrementacji --zmienna ~ Operator uzupełnienia jedynkowego ~wyrażenie ! Operator negacji logicznej !wyrażenie instanceof Operator występowania if(obiekt instanceof nazwa_klasy) new Operator przydziału pamięci new typ_zmiennej * Operator mnożenia wyrażenie * wyrażenie

Operatory Operator Nazwa Przykład / Operator dzielenia wyrażenie / wyrażenie % Operator modulo wyrażenie % wyrażenie + Operator dodawania wyrażenie + wyrażenie - Operator odejmowania wyrażenie - wyrażenie << Operator przesunięcia w lewo wyrażenie << wyrażenie >> Operator przesunięcia w prawo wyrażenie >> wyrażenie >>> Operator przesunięcia w prawo z wypełnieniem zerami wyrażenie >>> wyrażenie < Operator mniejszości wyrażenie < wyrażenie > Operator większości wyrażenie > wyrażenie

Operatory Operator Nazwa Przykład <= Operator mniejszości lub równości wyrażenie <= wyrażenie >= Operator większości lub równości wyrażenie >= wyrażenie = = Operator równości wyrażenie = = wyrażenie != Operator nierówności wyrażenie != wyrażenie & Operator iloczynu bitowego wyrażenie & wyrażenie ^ Operator bitowej różnicy symetrycznej (XOR) wyrażenie ^ wyrażenie | Operator sumy bitowej wyrażenie | wyrażenie && Operator iloczynu logicznego (AND) wyrażenie && wyrażenie || Operator sumy logicznej (OR) wyrażenie || wyrażenie ?: Operator if - else (wyrażenie_logiczne) ? wyrażenie_true : wyrażenie_false = Operator przypisania zmienna = wyrażenie;

Instrukcje sterujące wykonywaniem programu W języku Java istnieje standardowy zestaw instrukcji umożliwiających sterowanie kolejnością wykonywania programu, podobny jak w C lub C++. Istnieje jednak kila istotnych różnic, które wynikają chociażby z innego zestawu typów dostępnego w Javie. W języku Java, jak można oczekiwać, istnieje konstrukcja if-then-else. Główną różnicą pomiędzy tą i odpowiadającą instrukcją w C jest to, że w Javie warunek musi zwracać wartość logiczną. Nie można używać zera do oznaczania fałszu lub innej wartości niż zero do oznaczania prawdy. if (boolean) {      /* instukcje */ } else {      /* instrukcje */ }

Pętla do while Pętle while oraz do-while są identyczne jak odpowiednie pętle w języku C (także i tutaj warunek musi zwracać wartość logiczną): while (boolean) {      /* instrukcje */ } do {      /* instrukje */ } while (boolean);

Pętla for Pętla for jest podobna do takiej samej pętli w C++: for (int i=0; i<10 ; i++) {      /* instrukcje */ } Oczywiście zmienna zadeklarowna w pętli obejmują swym zasięgiem tylko ciało pętli for i zmienna ta nie jest widoczna poza pętlą. Odwołanie się do tej zmiennej poza pętlą byłoby więc błędem.

Instrukcja switch Składnia konstrukcji switch jest identyczna do składni w języku C: switch ( wyrażenie) {      case Wartosć1 :  /* ... */                                    break;      case Wartosć2 :  /* ... */                                    break;      default :            /* ... */                                    break; }

Instrukcje break i continue Java posiada jeszcze dwie instrukcje zmieniające przebieg wykonywania programu: break i continue, które mogą mieć argument będący etykietą. Jeśli są używane bez etykiety, to ich znaczenie jest takie samo jak w języku C. Jeśli odwołują się do etykiety, to sterowanie programu zostanie przekazane do miejsca opatrzonego etykietą. Poniższy przykład ilustruje użycie instrukcji continue z etykietą: nazewnątrz:      for (int j=1; j<10; j++) {        for (int i=1; i<20; i++) {           if (i=15) {                continue nazewnątrz;            } }

Instrukcje break i continue Użycie instrukcji break może być użyteczne, jeśli używamy instrukcji switch wewnątrz pętli for, ponieważ break ma szczególne znaczenie w instrukcji switch. Dodanie etykiety pozwala wyskoczyć z instrukcji switch wewnątrz pętli for. LoopStart: for (int i=1; i<10; i++) {       switch (i) {           case 4 :  break;          default : if ((i%2) == 0) break LoopStart;            break;     } }

Koniec