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

Podobné dokumenty
Úvod do programovacích jazyků (Java)

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

Úvod do programovacích jazyků (Java)

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

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

Algoritmizace a programování

Algoritmizace a programování

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

Algoritmizace a programování

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

7. Datové typy v Javě

Úvod do programování v jazyce Java

Algoritmizace a programování

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

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

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

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

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

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

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

11. Přehled prog. jazyků

PŘETĚŽOVÁNÍ OPERÁTORŮ

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Seminář Java II p.1/43

Programování v Javě I. Leden 2008

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

Programovací jazyk C++ Hodina 1

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/

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

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

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

1. Programování proti rozhraní

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

Zápis programu v jazyce C#

Překladač a jeho struktura

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

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

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

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

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

PROGRAMOVÁNÍ V C++ CVIČENÍ

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

KTE / ZPE Informační technologie

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

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

Jazyk C# a platforma.net

Programovací jazyk Pascal

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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Algoritmizace. Cíle předmětu

Úvod do programování v jazyce Java

Výrazy, operace, příkazy

Abstraktní datové typy: zásobník

Datové typy strana 29

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

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

Objektově orientované programování

9. přednáška - třídy, objekty

Ukazka knihy z internetoveho knihkupectvi

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 C++ 1, 1. cvičení

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

Úvod do programování - Java

Opakování programování

Teoretické minimum z PJV

Programovací jazyk Java

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

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

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

6. Příkazy a řídící struktury v Javě

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

1 Nejkratší cesta grafem

3. Základy programovacího jazyka Java

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Java reprezentace dat, výrazy. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

PB161 Programování v jazyce C++ Přednáška 9

Výčtový typ strana 67

Sémantika Tabulka symbolů Intermediální kód Typová kontrola, přetypování Statická a dynamická sémantika. Sémantická analýza.

Algoritmizace a programování

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Úvod do programování. Lekce 1

ADT/ADS = abstraktní datové typy / struktury

Java/QE Akademie - Osnova

Základy programovaní 3 (Java)

Výrazy, operace, příkazy

Algoritmizace prostorových úloh

Řídicí struktury. alg3 1

Struktura programu v době běhu

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

První kapitola úvod do problematiky

Data, výrazy, příkazy

Úvod do programovacích jazyků (Java)

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

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

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Programování v jazyce JavaScript

Transkript:

Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 1/27

Michal Krátký Úvod do programovacích jazyků (Java) tel.: +420 596 993 239 místnost: A1004 mail: michal.kratky@vsb.cz web: http://www.cs.vsb.cz/kratky/ http://www.cs.vsb.cz/kratky/courses/ 2006-05/upr/ c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 2/27

Zápočet a zkouška Minimální počet bodů ze dvou semestrálních projektů 26b (z 50 možných). Z 1. projektu je nutné získat minimálně 8b (z 15), z 2. semestrálního projektu pak 18b (z 35). Projekty budou kontrolovány samostatným úkolem, jehož trvání bude časově omezeno. Předmět bude ukončen klasifikovaným zápočtem. Minimálně 25b z 50 možných. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 3/27

JDK a vývojová prostředí http://java.sun.com/ JDK Java Platforma, aktuální verze 1.5. http://java.sun.com/ NetBeans, vývojové prostředí. http://www.eclipse.org/ Eclipse, vývojové prostředí. http://jikes.sourceforge.net/ rychlý překladač. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 4/27

Literatura Úvod do programovacích jazyků (Java) R. Szturc: Introduction to Programming (Java). Department of Computer Science, VŠB Technical University of Ostrava, 2004, http://www.cs.vsb.cz/java/index.html B. Eckel: Thinking in Java. 2002, http://www.mindview.net/books/tij/ Sun MicroSystems: Sun Developer Network. 2005, http://java.sun.com/ c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 5/27

Příklad 1.1 Úvod do programovacích jazyků (Java) public class Example0101 { public s t a t i c void main ( S t r i n g [ ] args ) { System. out. p r i n t l n ( " Hello World1 \ n " ) ; } } c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 6/27

Překlad a spuštění Překlad: javac Example0101.java Spuštění: java Example0101 Spuštění s přesměrováním standardního výstupu do souboru file.txt: java Example0101 > file.txt c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 7/27

Překlad a spuštění ve vývojovém prostředí Ve vývojovém prostředí je často nutné založit projekt a do něj vkládat příslušné třídy. Jedna třída je tzv. spouštěcí, tj. její metoda main() spouští program. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 8/27

Ladění (debugging) - efektivní hledání chyb Ladění je jediný rozumný prostředek hledaní chyb v kódu. Můžeme použít řádkový debugger nebo ladění ve vývojových prostředích. Na významné řádky vkládáme breakpointy, chod programu se na těchto řádcích zastaví. Funkce: Step Into - zanoření do metody, Step Over - přechod na další řádek bez možného zanoření, Run - rozběhnutí programu až do nalezení dalšího breakpointu, Step Out - opuštění aktuální funkce. Můžeme sledovat: Stack Trace - zásobník volání metod, hodnoty lokálních proměnných i proměnných instancí a tříd. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 9/27

James Gosling, Sun Microsystems, 1990. Původní název Oak, v roce 1993 přejmenován na Java. V roce 1996 vyšla první implementace (JDK 1.0). Rysy jazyka Java: Objektově-orientovaný jazyk. Silně typovaný jazyk. Obsahuje garbage collector. Podporuje paralelní běh vláken. Podporuje výjimky. Bezpečný programovací jazyk. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 10/27

Překlad vs interpretace kódu Překladač zdrojový kód je přeložen do spustitelného souboru. Interpret vykonává jednotlivé příkazy ze zdrojového kódu. Java kombinuje oba způsoby. Kód (*.java) je přeložen do bytekódu (*.class) a ten je interpretován v java virtuálním stroji (javavm). Virutální stroj je reprezentován spustitelným souborem java. Veškeré využívané knihovny (jar archívy) musí být uvedeny v proměnné CLASSPATH. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 11/27

Java platforma Úvod do programovacích jazyků (Java) Platforma hardwarové a softwarové prostředí ve kterém program běží. Java platforma softwarová platforma nad daným hardwarem. Java API Java virtuální stroj Operační systém Hardware Java platforma Java API kolekce tříd vstupy/výstupy, práce se sítí, databázemi apod. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 12/27

Syntaxe a sémantika Syntaxe - popisuje jaké konstrukce jsou v jazyce možné. Jaký program je korektně napsaný a jaký ne. Sémantika - popisuje co které konstrukce znamenají. Např. co se provede při nějakém příkazu. Rozlišujeme mezi dvěma typy chyb: Chyby při překladu - hlášeny překladačem. Syntaktické - např. chybějící ; Sémantické - např. přiřazení mezi nekompatibilními datovými typy. Chyby při běhu programu - hlášeny virtuálním strojem při běhu programu. Můžeme zachytávat pomocí výjimek. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 13/27

Syntaxe jazyka Java Program se skládá ze tříd. Každá třída se skládá z definic dat a operací pracujícími nad těmito daty. Atributy: data objektu. Methody: operace nad těmito daty. Metody se skládají z hlavičky, definující jméno, parametry a návratový typ, a těla obsahující příkazy. Příkazy manipulují s proměnnými (atributy nebo lokálními proměnnými). Provádění příkazu zahrnuje vyhodnocování výrazů. Každá proměnná, hodnota nebo výraz je nějakého typu. Na nejnižší úrovni je program posloupnost lexikálních symbolů. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 14/27

Příklad 1.2 Úvod do programovacích jazyků (Java) public class Example0102 { public s t a t i c void main ( S t r i n g [ ] args ) { i n t i = 5 ; i n t j = i + 3 ; System. out. p r i n t l n ( " i = " + i + ", j = " + j + " \ n " ) ; } } c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 15/27

Lexikální symboly Bílé znaky a poznámky: Bílé znaky: space (SP), horizontal tab (HT), form feed (FF), newline (LF), carriage return (CR). Komentáře: /* komentář */ // komentář Základní typy lexikálních symbolů: identifikátory: i j System9 number_of_elements klíčová slova: while float int public class literály: 124 true d "hello" oddělovače: ( ) { } [ ] ; :,. operátory: + - * / && = *= <»= c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 16/27

Příklad 1.3 Úvod do programovacích jazyků (Java) / Trida Example0102 Author : Date : / public class Example0102 { public s t a t i c void main ( S t r i n g [ ] args ) { / / v y p o c i t e j 5 + 3 i n t i = 5 ; i n t j = i + 3 ; / / vypis vysledek System. out. p r i n t l n ( " i = " + i + ", j = " + j + " \ n " ) ; } } c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 17/27

Typy, hodnoty a proměnné V proměnných jsou uložena data. Každá proměnná je specifikována jménem a datovým typem (deklarace). Rozlišujeme dvě skupiny datových typů:. Proměnná primitivního datového typu obsahuje jednu hodnotu příslušné velikosti: boolean b = true; // booleovský typ int i = 456; // celé číslo float f = 2.71828; // reálné číslo Reference Adresa objektu (instance třídy) nebo pole. Hashtable h = new Hashtable(); int[] a = new int[20]; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 18/27

Celočíselné datové typy 1/2 Typ Rozsah Velikost v bitech byte -128..127 8 short -32768..32767 16 int -2147483648..2147483647 32 long -9223372036854775808..9223372036854775807 64 char 0..65535 16 c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 19/27

Celočíselné datové typy 2/2 Operátory: Porovnání: <, <=, >, >=, ==,!= Unární plus a mínus: +, - Binární aritmetické operátory: +, -, *, /, % Prefixové a postfixové operátory pro dekrementaci a inkrementaci: ++, Znaménkové a neznaménkové operátory posuvu: <<, >>, >>> Bitový doplněk: ~ Bitové operátory: & (AND), (OR), ^(XOR) c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 20/27

Příklad 1.4 Úvod do programovacích jazyků (Java) public class Example0104 { public s t a t i c void main ( S t r i n g [ ] args ) { i n t i = 5 ; i + + ; / / i = 6 i n t j = i + 3; / / i = 5, j = 9 j = i + 3 ; / / i = 4, j = 7 j + = 6 ; / / j = 1 3 boolean b = ( j = = 1 ) ; / / b = f a l s e ; System. out. p r i n t l n ( " i = " + i + ", j = " + j + ", b= " + b + " \ n " ) ; } } c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 21/27

Příklad 1.5 Úvod do programovacích jazyků (Java) public class Example0105 { public s t a t i c void main ( S t r i n g [ ] args ) { i n t i = 1 ; / / i = 0001 i = i < < 1 ; / / i = 2 ( 0 0 1 0 ) i n t j = 1 ; i n t k = i j ; / / k = 3 ( 0 0 1 1 ) k = i & j ; / / k = 0 System. out. p r i n t l n ( " i = " + i + ", j = " + j + ", k= " + k + " \ n " ) ; } } c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 22/27

Reálné datové typy 1/2 Čísla tvaru s m 2 exp. Typ s m exp Velikost v bitech float {-1,1} 0.. 2 24 1-149..104 32 double {-1,1} 0.. 2 53 1-1075..970 64 Typ Min. hodnota Max. hodnota float 1.40239846e-45f 3.40282347e+38f double 4.94065645841246544e-324 1.79769313486231570e+308 c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 23/27

Reálné datové typy 2/2 Operátory: Porovnání: <, <=, >, >=, ==,!= Unární plus a mínus: +, - Binární aritmetické operátory: +, -, *, /, % Prefixové a postfixové operátory pro dekrementaci a inkrementaci: ++, c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 24/27

Booleovský datový typ Booleovský datový typ má dvě možné hodnoty: true a false. Operátory: Porovnání: ==,!= Logický doplněk:! Binární logické operátory: &,, ^ Podmínkové AND resp. OR operátory: &&, Ternární podmínkový operátor:?: Booleovské výrazy určují řízení vykonávání v příkazech: if while do for c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 25/27

Příklad 1.6 1/2 public class Example0106 { public s t a t i c void main ( S t r i n g [ ] args ) { boolean f l a g = true ; f l a g =! f l a g ; / / f l a g = f a l s e boolean bvar = true ; boolean r1 = f l a g bvar ; / / r1 = t r u e boolean r2 = f l a g & bvar ; / / r2 = f a l s e i f ( r1 r2 ) / / t r u e or f a l s e = t r u e { System. out. p r i n t l n ( " r1 or r2 equals t r u e " ) ; } c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 26/27

Příklad 1.6 2/2 } } double f V a l = r1? 1. 0 : 2. 0 ; / / f V a l = 1. 0 System. out. p r i n t l n ( " f l a g = " + f l a g + ", bvar= " + bvar + ", f V a l = " + f V a l + " \ n " ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 27/27