Úvod do programování v jazyce Java



Podobné dokumenty
Úvod do programování v jazyce Java

Základy programovaní 3 (Java)

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Algoritmizace. Cíle předmětu

Úvod do programovacích jazyků (Java)

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Úvodní informace. Petr Hnětynka 2/2 Zk/Z

Úvodní informace. Petr Hnětynka 2/2 Zk/Z

Úvodní informace. Petr Hnětynka 2/2 Zk/Z

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

Úvod do programování - Java. Cvičení č.4

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Algoritmizace a programování

8 Třídy, objekty, metody, předávání argumentů metod

Část 1 Organizace předmětu. Základní pojmy. Část 2 Programování a výpočty. Část 3 Programovací jazyk Java

Řídicí struktury. alg3 1

Programování 1 - Java

Java [džava] nebo [džáva] v americkém slangu "kafe" Sun Microsystems nyní Oracle

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci

JAVA. Další jazyky kompilovatelné do Java byte-code

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

Úvod do programovacích jazyků (Java)

6 Příkazy řízení toku

Programování v Javě I. Únor 2009

NPRG031 Programování II --- 2/2 Z, Zk

3. Základy programovacího jazyka Java

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Programování v Javě I. Leden 2008

Skriptovací jazyky. Obsah

Objektově orientované programování

Zápis programu v jazyce C#

První kapitola úvod do problematiky

7. Datové typy v Javě

Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1

KTE / ZPE Informační technologie

Podmínky na zápočet. Java, zimní semestr

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

Programovací jazyk C++ Hodina 1

Iterator & for cyklus

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Java a XML. 10/26/09 1/7 Java a XML

Abstraktní datové typy: zásobník

Vytváření a použití knihoven tříd

Program. Organizace semináře Základní principy OOP Úvod do programovacího jazyka Java Distribuce

Výčtový typ strana 67

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Paměť počítače. alg2 1

Jazyk C# a platforma.net

Pokročilé programování na platformě Java. Úvod

Seminář Java II p.1/43

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

1. Programování proti rozhraní

IUJCE 07/08 Přednáška č. 1

Programovací jazyk Java

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

PREPROCESOR POKRAČOVÁNÍ

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Příkazy a řídicí struktury v Javě. Tomáš Pitner, upravil Marek Šabo

Java/QE Akademie - Osnova

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Úvod do programování - Java

Programování v C++ 1, 1. cvičení

11. Přehled prog. jazyků

Generické programování

Matematika v programovacích

Algoritmizace a programování

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

5 Přehled operátorů, příkazy, přetypování

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

3 KTE / ZPE Informační technologie

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

URČITÝM ZPŮSOBEM PODOBNÉ

ADT/ADS = abstraktní datové typy / struktury

KTE / ZPE Informační technologie

NPRG031 Programování II 1 / :47:55

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Programování v jazyce JavaScript

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

NMIN201 Objektově orientované programování 2016/17 1 / :03:29

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

typová konverze typová inference

Třídy, polymorfismus. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady

knihovna programátora

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Studijní zdroje. Studijní zdroje. Studijní zdroje. Podmínky ukončení předmětu. Vlastnosti a použití jazyka Java. Semestrální projekt

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Transkript:

Úvod do programování v jazyce Java Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 5. říjen, 2011 Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 1 / 17

Organizační informace email: petr.krajca@upol.cz konzultační hodiny úterý 15:00 16:00 středa 15:00 16:00 www: http://phoenix.inf.upol.cz/~krajca/ slidy budou k dispozici online, ale... pro udělení zápočtu je potřeba vyřešit všechny úkoly zadané na cvičení nejpozději do jednoho týdne od zadání implementovat netriviální projekt v jazyce Java (lze použít i ročníkový projekt) plagiátorství, vydávání cizích výsledků za vlastní je zakázano a bude řešeno dle vnitřních směrnic UP Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 2 / 17

Literatura Eckel B. Mysĺıme v jazyce Java - příručka programátora. Grada Publishing, 2000. Bloch J. Java efektivně 57 zásad softwarového experta. Grada Publishing. Lewis J., Loftus W. Java Software Solutions, Foundations of Program Design. Addison Wesley Longman Ltd., 2000. Gosling J., Joy B., Steele G., and Bracha G. The Java Language Specification, Third Edition. SUN. Java Tutorial. 2010. Herout P. Učebnice jazyka Java. Kopp, 2000. Kiszka B. 1001 tipů a triků pro programování v jazyce Java. Computer Press, 2003. Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 3 / 17

Java jako programovací jazyk objektově orientovaný jazyk (dědičnost s jedním rodičem) syntaxí podobný C/C++ (není to C/C++!) portabilita (Write-Once-Run-Anywhere) snaha o omezení chyb automatická správa paměti silně a staticky typový jazyk (není to CommonLisp!) omezení dostupných prvků jazyka na ty bezpečné systém vyjímek kontrola mezí poĺı Další vlastnosti několik nezávislých implementací (Oracle/SUN, IBM, IcedTea, GCJ, Harmony) rozsáhlá standardní knihovna, řada API množství dostupných knihoven a nástrojů třetích stran (Apache Foundation) Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 4 / 17

Java jako platforma Infrastruktura Edice Java Development Kit (JDK): překladač, knihovny + související nástroje Java Virtual Machine (JVM): vykonává kód vygenerovaný překladačem (Java Byte Code) Java Runtime Environment (JRE): běhové prostředí (JVM, knihovny, atd.) Java Applety propojení JRE s prohĺıžečem JavaScript vůbec nesouvisí s Javou s JDK/JRE: lze provozovat další jazyky, např. Scala, Groovy, Clojure, Jython, JRuby Java ME mobilní zařízení (definuje řadu omezení) Java SE nejčastěji používaná Java EE jako SE + knihovny a rozhraní Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 5 / 17

Historický přehled 1990 původně vyvíjeno SUN Microsystems jako projekt OAK 1996 JDK 1.0 (první verze) 1997 JDK 1.1 1998 J2SE 1.2 (JIT překlad, kolekce) = Java2 (J2SE) 2000 J2SE 1.3 (HotSpot JIT překladač) 2002 J2SE 1.4 (řada nových API) 2005 J2SE 5.0 (řada rozšíření generické typy, metadata, for-each, atd.) 2006 Java SE 6 (nové API, vylepšení JVM) 2010 SUN je koupen Oraclem 2011 Java SE 7 (mírné úpravy jazyka, rozšířené API) Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 6 / 17

Konvence, IDE Konvence důraz na čitelnost kódu (konvence vynucené standardem, zaběhlá praxe, návrhové vzory) každá veřejná třída v samostatném souboru, rozdělení baĺıčků do adresářů (požadavek jazyka) projekt má typicky tři podadresáře (src/, bin/ lib/) zaužívaný coding style: class NazevTridy { int lokalnipromenna = 1; int a = b + (x / 2); void metodafoo(object object) { IDE Eclipse Netbeans IntelliJ IDEA proprietární: JBuilder, JDeveloper, XCode,... Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 7 / 17

Základní datové typy (1/2) Primitivní datové typy (hodnotové) čísla: byte, short, int, long (velikost 1, 2, 4, 8 bytů); neexistují unsigned varianty čísla s plovoucí řádovou čárkou: float, double (4, 8 bytů; jednoduchá/dvojitá přesnost) pravdivostní hodnoty: boolean (může mít hodnoty true, false) znaky: char (pole znaků!= řetězec!, char!= byte) implicitní inicializace (překladač může neinicializaci označit za chybu) operátory jako v C: +, -, *, /, +=, -,..., ++, --, &, ==,!=, >, <, <=, &&, Ostatní datové typy (referenční) neexistují ukazatele pole (indexovány od 0, kontrola hranic) řetězce (neměnitelné), spojení řetězců operátorem + = nově alokovaný řetězec objekty Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 8 / 17

Základní datové typy (2/2) byte a = 1; int b = 42 + 2; char c = a ; boolean d = true; float f = 12; int[] e = new int[3]; e[0] = 1; String s = "Foo"; StringBuilder stringbuilder = new StringBuilder("Foo"); Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 9 / 17

Obligatní Hello World package cz.upol.lecture01; public class Lecture01 { public static void main(string[] args) { System.out.println("Hello World!"); Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 10 / 17

Větvení programu (1/X) téměř identické jako v C blok { if prikaz_1; prikaz_2;... if podminka1 prikaz_1; if podminka2 prikaz_2; else prikaz_3; Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 11 / 17

Větvení programu (2/X) int a = 2; int b; if (a == 42) { System.out.println("Promenna a obsahuje tajemstvi vesmiru!"); if (a == 42) b = 10; else b = a + 1; b = (a == 42)? 10 : a + 1; if (a) b = 10; // NEJDE!!! Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 12 / 17

Větvení programu (3/X) switch switch (celočíselný_výraz){ case konstanta_1: příkazy_1 break;... case konstanta_n: příkazy_n break; default: příkazy_default_větve od Java 7 lze použít i řetězce Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 13 / 17

Větvení programu (3/X) int month = 8; String monthstring; switch (month) { case 1: monthstring = "January"; break; case 2: monthstring = "February"; break; case 3: monthstring = "March"; break; case 4: monthstring = "April"; break; case 5: monthstring = "May"; break; case 6: monthstring = "June"; break; case 7: monthstring = "July"; break; case 8: monthstring = "August"; break; case 9: monthstring = "September"; break; //... case 12: monthstring = "December"; break; default: monthstring = "Invalid month"; break; System.out.println(monthString); Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 14 / 17

Cykly (1/X) for for (inicializace; podmínka; inkrementace) { příkazy while (podmínka) { příkazy do { příkazy while (podmínka); cyklus jde přerušit příkazem break, popř. přeskočit na začátek smyčky příkazem continue Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 15 / 17

Cykly (3/X) for for(int i = 0; i < 10; i++){ System.out.println("Hodnota i : " + i); int i = 0; while (i < 10) { System.out.println("Hodnota i : " + i); i++; int i = 0; do { System.out.println("Hodnota i : " + i); i++; while (i < 10); Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 16 / 17

Podrobněji rozebraná problematika http://download.oracle.com/javase/tutorial/java/nutsandbolts/index.html Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 17 / 17