Krótka historia Java

Podobne dokumenty
Programowanie obiektowe

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java jako język programowania

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Podstawy języka Java. przygotował:

Multimedia JAVA. Historia

Programowanie obiektowe

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Java Język programowania

Wprowadzenie do języka Java

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Java EE produkcja oprogramowania

Wykład 8: Obsługa Wyjątków

Podstawy i języki programowania

Tworzenie aplikacji w języku Java

Ćwiczenie 1. Przygotowanie środowiska JAVA

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

WPROWADZENIE DO JĘZYKA JAVA

Wykład 2: Podstawy Języka

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Programowanie w Internecie. Java

1 Podstawy c++ w pigułce.

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie obiektowe zastosowanie języka Java SE

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Programowanie obiektowe

Programowanie obiektowe

Klasy i obiekty cz II

JAVA?? to proste!! Autor: wojtekb111111

Czym jest stos i sterta?

Programowanie wieloplatformowe w Java

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Spis treści. 1 Java T M

1 Atrybuty i metody klasowe

JDK można pobrać ze strony

Microsoft IT Academy kurs programowania

2. Składnia, środowisko i konwencje w Javie

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

WPROWADZENIE DO JĘZYKA JAVA

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Aplikacje w środowisku Java

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

1 Podstawy c++ w pigułce.

Metody Metody, parametry, zwracanie wartości

Programowanie obiektowe

Języki i metody programowania Java Lab2 podejście obiektowe

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196

Wykład 5 Okna MDI i SDI, dziedziczenie

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Dokumentacja do API Javy.

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

PARADYGMATY PROGRAMOWANIA Wykład 4

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.

Podstawy programowania obiektowego

Programowanie Obiektowe Ćwiczenie 4

Wykład 1: Wprowadzenie do technologii Java

Programowanie Komputerów

MATERIAŁY DO ZAJĘĆ II

Języki i metody programowania Java INF302W Wykład 2 (część 1)

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

Programowanie obiektowe. Wprowadzenie

Platformy Programistyczne Podstawy języka Java

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Aplikacje w środowisku Java

Wprowadzanie danych z klawiatury. Wyjątki związane z wprowadzaniem danych, przekroczeniem rozmiaru tablicy, dzieleniem przez zero itd.

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

Wykład 8: klasy cz. 4

Rozdział 4 KLASY, OBIEKTY, METODY

Wykład 4: Klasy i Metody

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Informatyka I. dr inż. Andrzej Czerepicki.

Podstawowe części projektu w Javie

Część 4 życie programu

Transkrypt:

Krótka historia Java Green Project (1991) Sun Microsystems Pierwotna nazwa: Oak W trakcie projektowania zmieniona na: Java Pierwsze publiczne wydanie 1995 Write Once, Run Anywhere

Co jest potrzebne? http://java.oracle.com Java SE (Standard Edition) obecnie wersja 8u65/66 JDK (Java Development Kit) wieloplatformowe (windows, linux, mac, solaris) Kompilator: javac, wirtualna maszyna: java IDE (najpopularniejsze: http://eclipse.org) Wieloplatformowa nakładka stworzona z myślą wspierania programowania w Języku JAVA, oraz wielu innych (obecna wersja neon ) Należy pobrać właściwą wersję instalacyjną (OS, 32- lub 64-bit)

Niezależność od platformy JAVA COMPILER (translator) JAVA BYTE CODE (ten sam dla wszystkich platform) JAVA INTERPRETER (na każdym z systemów) Windows Macintosh Solaris Linux

JAVA język kompilowany i interpretowany programista urządzenie + system operacyjny Kod źródłowy Kod bajtowy edytor kompilator interpreter plik.java plik.class notatnik, emacs, vi, eclipse javac java appletviewer przeglądarka

Architektura neutralna i przenośna Kompilator Java działa na kodzie źródłowym (pliki z rozszerzeniem.java) javac MojaKlasa.java Tworzy plik z kodem bajtowym, wykorzystywanym przez maszynę wirtualną java MojaKlasa.class Interpreter jest zależny od konkretnego środowiska i on decyduje jak zostanie wykonany ten sam kod bajtowy. Można rozwijać dwa rodzaje programów Java: - samodzielne aplikacje - interpreter - aplikacje webowe (aplety) przeglądarka z interpreterem

Java pierwszy program wszystko jest obiektem samodzielny program musi mieć funkcję main

Java argumenty i ich liczba

Java zarządzanie pamięcią Java zarządza pamięcią automatycznie GC (Garbage Collector) odśmiecacz jest częścią JVM i działa zwykle jako niezależny wątek, jest procesem bardzo autonomicznym Zmienne Javy tworzone na stercie Dopóki jest jakieś powiązanie z obiektem, nie zostaje on usunięty Gdy wszystkie dowiązania do obiektu się kończą, może on być skasowany przez GC Zmienne lokalne funkcji lub bloku kodu kończą się wraz z wykonaniem funkcji, wyjściem z bloku Można też ustawić zmienną na null (wtedy jej zasób kwalifikuje się dla GC)

Każda klasa w osobnym pliku. Klasy i obiekty

Wszystko jest obiektem Funkcjonalnie to samo: Zamiana tablicy znaków w obiekt String Można zrobić odwrotne przekształcenie

Typy zmiennych w Java Zmienne proste: - Wielkości numeryczne (całkowite i zmiennoprzecinkowe) - Pojedyncze znaki (characters) - Zmienne logiczne (true/false) Zmienne złożone: - Strings - Dates - cokolwiek - klasy: nazwa z wielkiej litery - zmienna: nazwa z małej litery

Proste zmienne i konwersje Zmienne i ich zakresy oraz... klasy pomocnicze: Wykonujemy konwersję poprzez stworzenie obiektu i metody: Brak inicjalizacji prostej zmiennej domyślna wartość 0.

Problemy z precyzją Na wyjściu: 1115.3699999999998908606357872486114501953125 dołączamy odpowiednią bibliotekę (Eclipse potrafi nas o tym poinformować) Na wyjściu: Wartosc to 1115.37

Konwersja stratna i przekręcanie licznika (rzutowanie)

Operatory Java ma bardzo podobne operatory jak inne języki (np. C lub C++). Są jednak ciekawostki: Jest też wersja: equalsignorecase Trzeba też uważać, co się porównuje (po lewej obiekty, a nie ich zawartość).

Zmienne znakowe char klasa pomocnicza Klasy pomocnicze dostarczają szereg użytecznych funkcji statycznych (takich, które można wołać za pomocą klasy, bez konieczności tworzenia obiektu klasy).

Zmienne logiczne (boolean) klasa pomocnicza }

Drukowanie na ekranie różnych zmiennych Zmienne prostych typów korzystają z metody tostring (w klasie pomocniczej).

Czytanie zmiennych Czytanie odbywa się w tej funkcji. Ponadto Java obsługuje wyjątki.

Kopiowanie pliku bajt po bajcie Czytanie i zapis wykonamy na porcjach 1024 bajtów oraz z użyciem obiektów FileInputStream oraz FileOutputStream Bloki try { } catch ( ) { } to obsługa sytuacji wyjątkowych. Zostaną omówione dalej.

Struktury warunkowe switch Logika działania switch taka sama jak np. w C++ ale dodatkowo kluczem może być zmienna typu String.

Warto używać enum enum (typ wyliczeniowy) podobnie jak w innych językach:

Różnego rodzaju pętle (for, while)

Refaktoryzacja

Prosty kalkulator Za chwilę to proste działanie (dodawanie) zamienimy automatycznie na funkcję. Przy okazji: Funkcje mogą mieć dowolną liczbę argumentów (tego samego typu).

Prosty kalkulator refaktoryzujemy kilka działań Uwaga nt sposobu przekazywania parametrów do wnętrza funkcji: - proste typy są przekazywane przez kopię - złożone typy (np. tablice) są przekazywane przez referencję - String przez kopię

Szybkie definiowanie metod Eclipse bardzo ułatwia pisanie kodu, tam gdzie brakuje definicji jakiejś metody, proponuje rozwiązanie i utworzenie szkieletu brakującej funkcji. Dzięki temu nudne operacje pisania kodu są dla nas wykonane, a my możemy skupić się na zawartości!

Obiekty String są niezmienialne, więc Uwaga: Jest też StringBuffer (adekwatny w przypadku środowiska wielowątkowego). Kilka użytecznych operacji na łańcuchach znakowych typu String

Kilka manipulacji z datami i formatami Korzystajmy z podpowiedzi Eclipse, który wskazuje jakie pakiety muszą być (na początku) dołączone.

Tablice

Refaktoryzacja kodu kilka klas import java.io.*; public class Calculator2 { public static void main(string[] args) { String s1 = getinput("enter a numeric value: "); String s2 = getinput("enter a numeric value: "); String op = getinput("enter 1=Add, 2=Subtract, 3=Multiply, 4=Divide"); int opint = Integer.parseInt(op); double result = 0; switch (opint) { case 1: case 2: case 3: case 4: default: incorrect value"); } result = addvalues(s1, s2); break; result = subtractvalues(s1, s2); break; result = multiplyvalues(s1, s2); break; result = dividevalues(s1, s2); break; System.out.println("You entered an return; private static double multiplyvalues(string s1, String s2) { double d1 = Double.parseDouble(s1); double d2 = Double.parseDouble(s2); double result = d1 * d2; return result; } private static double subtractvalues(string s1, String s2) { double d1 = Double.parseDouble(s1); double d2 = Double.parseDouble(s2); double result = d1 - d2; return result; } private static double addvalues(string s1, String s2) throws NumberFormatException { double d1 = Double.parseDouble(s1); double d2 = Double.parseDouble(s2); double result = d1 + d2; return result; } private static String getinput(string prompt) { BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in)); System.out.print(prompt); System.out.flush(); System.out.println("The answer is " + result); } private static double dividevalues(string s1, String s2) { double d1 = Double.parseDouble(s1); double d2 = Double.parseDouble(s2); double result = d1 / d2; return result; } } } try { return stdin.readline(); } catch (Exception e) { return "Error: " + e.getmessage(); }

Tworzymy dodatkowe klasy Tworzymy klasę MathOp i przenosimy do niej (copy/paste z zamianą private na public) metody. Następnie odpowiednio modyfikujemy kod w klasie podstawowej.

Tworzymy dodatkowe klasy Tworzymy klasę InputOp i przenosimy do niej (copy/paste z zamianą private na public) metodę GetInput, zmieniamy kod w klasie Hello. Odpowiednie import w pliku InputOp pojawią się same. W pliku Hello.java można usunąć (uporządkować) niepotrzebne import: Ctrl+Shift+O (Organize imports).

Obsługa błędów - wyjątki Dwa rodzaje błędów błędy kompilacji (składniowe) i błędy wykonania. Gdy nastąpi ten drugi błąd, w Java tworzony jest obiekt wyjątku, który można przechwycić i obsłużyć. Powyższy program powoduje wyjście indeksu tablicy poza zakres.

Obsługa błędów wyjątki dodajemy blok try / catch

Obsługa błędów wyjątki obsługa Z informacji drukowanej widać, że program dalej działa, że metoda printstacktrace() drukuje użyteczną informację i np. można podmienić ogólny typ wyjątku Exception na szczegółowy np. ArrayIndexOutOfBoundsException Oczywiście programista musi sam usunąć błąd (niepoprawne działanie programu, wyjście indeksu poza zakres tablicy!)

Obsługa błędów wyjątki deklaracja Zróbmy małą refaktoryzację kodu, wydzielając metodę i deklarując, jaki rodzaj wyjątku może ona zgłosić. Eclipse znacząco pomaga w wyborze (Ctrl+Spacja). Potem zaznaczamy metodę getarrayindex i opakowujemy w try/catch (Alt+Shift+Z).

Pakiety Pakiety fizycznie są podkatalogami. Dobrze jest organizować kod w ten sposób, że tworzymy Przemyślaną strukturę pakietów. Zmodyfikujemy teraz nasz kod kalkulatora, w którym były 3 klasy, tworząc nowy pakiet i robiąc refaktoryzację (Alt+Shift+T) lub od razu (przenosząc) (Alt+Shift+V) do nowego pakietu. Każda klasa w pakiecie innymi niż domyślny (default) wymaga deklaracji w jakim pakiecie się znajduje, np. W głównym programie też muszą się pojawić wtedy odpowiednie import (Eclipse wstawia je automatycznie za pomocą Ctrl+Shift+O)

Przykład programu z klasami, składowymi, metodami Rozwińmy klasę Osoba i zobaczmy jak prosto dodać funkcje typu get i set : W Java nie ma const jest za to final.

Przykład programu klasa Osoba i Klasa

Przykład programu główny program Zwróćmy uwagę na to, jak Eclipse sprawnie dodaje / zmienia potrzebne import

Dziedziczenie i polimorfizm Język Java pozwala na pojedyncze dziedziczenie. Na klasę nadrzędną mówi się zwykle superclass, a na klasę dziedziczącą subclass. Polimorfizm działa podobnie jak w C++. Warto metodę z klasy bazowej oznaczyć @Override pisząc jej wersję specjalizowaną w klasie potomnej.

Aplety Aplety to programy Java ale wykonywane w JVM w przeglądarce (najczęściej webowej). Analogiczny przykład: http://journals.ecs.soton.ac.uk/java/tutorial/getstarted/applet/ W sieci można znaleźć tysiące samouczków, dzięki którym można rozwinąć i pogłębić swoją wiedzę na temat programowania. Najbardziej efektywnym sposobem jest zdobywanie doświadczenia, poprzez nieustanne wprawki, ćwiczenia samodzielne pisanie kodu. P o w o d z e n i a!