1. Wprowadzenie do języka Java

Wielkość: px
Rozpocząć pokaz od strony:

Download "1. Wprowadzenie do języka Java"

Transkrypt

1 1. Języki Java, C# 2. Program w Javie (aplikacja, aplet) 3. Typy danych, zmienne i stałe 4. Operatory 5. Instrukcje sterujące 6. Obsługa wyjątków 1.1 Języki Java i C# Java i C# to dalszy "etap rozwoju" języka C++. Są to języki w pełni obiektowe, zasadniczo o interpretowanym kodzie, ze zintegrowaną biblioteką klas dla programowania zdarzeniowego, wielowątkowego, tworzenia GUI, obiektowej komunikacji rozproszonej, i innych. Główny cel powstania: uniwersalny (niezaleŝny od sprzętu) język programowania tzw. systemów "wbudowanych" (ang. embedded systems ) (do róŝnorodnych zastosowań - sterowania robotem, pralką, telefonia komórkowa, itd). Uniwersalność kodu uzyskano dzięki stworzeniu zaleŝnej od sprzętu (pośredniej) warstwy oprogramowania ( abstrakcyjnej maszyny ) (ang. Java Virtual Machine, C# MSIL). Ta "maszyna" interpretuje kod pośredni programu Javy wzgl. C#. Java szybko znalazła zastosowanie w programowaniu internetowym. RównieŜ C#.NET posiada juŝ tę funkcjonalność. W. Kasprzak: Programowanie zdarzeniowe 1-2

2 Zabezpieczenia zawarte w Javie poprawiły bezpieczeństwo dokumentów w Internecie. Zasadnicze cechy języka Java wzgl. C#: obiektowość - język zaprojektowany od początku jako obiektowy, notacja podobna do C/C++, obsługa sytuacji wyjątkowych - rozbudowana kontrola w czasie kompilacji i wykonania, pełnoprawny typ referencyjny - brak wskaźników, bardzo ograniczona niejawna konwersja typów danych; przenaszalność język pośredni - ścisła definicja wbudowanych typów danych, obiektowe programowanie wielowątkowe, wbudowane narzędzia programowania zdarzeniowego - z biblioteką graficzną dla GUI, program sterowany zdarzeniami. W. Kasprzak: Programowanie zdarzeniowe Program w Javie Bajtkod Javy - to instrukcje dla maszyny wirtualnej (JavaVM). W. Kasprzak: Programowanie zdarzeniowe 1-4

3 Platforma programowa Javy: Wirtualna maszyna Javy (Java VM) Interfejs programisty uŝytkowego (Java API) Java API: zbiór elementów programowych o szerokiej funkcjonalności (np. komponenty GUI, JDBC); pogrupowanych w biblioteki klas i interfejsów (tzw. pakiety). Java API i Java VM separują program od sprzętu: W. Kasprzak: Programowanie zdarzeniowe 1-5 KaŜda pełna implementacja platformy Java posiada: Język: obiekty, string, typy liczbowe, wątki, wejście I wyjście, struktury danych, systemowe własności, data i czas, itd. Aplety: konwencje stosowane przez aplety; API dla grafiki 2W i 3W, animacji, mowy, telefonii, itp. Sieciowe: URL, TCP (Transmission Control Protocol), UDP (User Datagram Protocol) gniazdka, adresy IP (Internet Protocol). Internacjonalizacja: automatyczne dostosowanie do regionu świata; Zabezpieczenia: podpis elektroniczny, klucze publiczne i prywatne, kontrola dostępu, certyfikaty. Komponenty programowe: JavaBeans; Serializacja i komunikacja obiektów: umoŝliwia trwałość obiektów i komunikację poprzez mechanizm Remote Method Invocation (RMI). Komunikacja z bazami danych - Java Database Connectivity (JDBC): W. Kasprzak: Programowanie zdarzeniowe 1-6

4 Środowisko programisty np. Sun J2SE 5.0: zawiera JRE ( Java 2 Runtime Environment ) (maszyna wirtualna Javy, główna hierarchia klas i pliki pomocnicze); i narzędzia do tworzenia programów kompilatory, debagery; W. Kasprzak: Programowanie zdarzeniowe 1-7 Kompilator w locie - Just-in-Time (JIT) - tłumaczy kod pośredni Javy na kod maszynowy podczas wykonania kodu. W. Kasprzak: Programowanie zdarzeniowe 1-8

5 Przykład 1.1 Aplikacja "HelloWorld": /** * Wyświetla napis "Hello World!" na standardowym wyjściu. */ public class HelloWorldApp { public static void main(string[ ] args) { System.out.println("Hello World!"); // Komentarze /** komentarz */ - ten komentarz wykorzysta javadoc tworząc dokumentację // komentarz - komentarz do końca wiersza /* komentarz */ komentarz przez wiele wierszy Metoda main - jest to punkt wejścia do programu Javy. W. Kasprzak: Programowanie zdarzeniowe 1-9 Wywołanie kompilatora: javac HelloWorldApp.java Kompilator generuje plik z kodem pośrednim: HelloWorldApp.class Wykonanie aplikacji: java HelloWorldApp Przykład 1.2. Aplet "Hello World" import java.applet.*; import java.awt.*; /** Klasa HelloWorld implementuje aplet który * wyświetla napis "Hello World!". */ public class HelloWorld extends Applet { public void paint(graphics g) { g.drawstring("hello world!", 50, 25); Utworzymy podany kod w pliku HelloWorld.java. W. Kasprzak: Programowanie zdarzeniowe 1-10

6 Potrzebny nam jest odpowiedni plik HTML o nazwie Hello.html: <HTML> <HEAD><TITLE> Pierwszy Program</TITLE> </HEAD> <BODY> <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML> Kompilacja pliku źródłowego: javac HelloWorld.java Uruchamiamy aplet wywołując przeglądarkę lub appletviewer : appletviewer Hello.html Instrukcja import (dołącz klasy lub pakiety): import java.applet.applet; // importuj klasę import java.awt.graphics; // importuj klasę public class HelloWorld extends Applet { public void paint(graphics g) { g.drawstring("hello world!", 50, 25); W. Kasprzak: Programowanie zdarzeniowe 1-11 Alternatywna postać bez instrukcji "import": public class HelloWorld extends java.applet.applet { public void paint (java.awt.graphics g) { g.drawstring("hello world!", 50, 25); Dzięki "import" moŝemy odwoływać się do klas "Applet" i "Graphics" bez przedrostków (podając ich proste nazwy). java.applet i java.awt to pakiety zawarte w Java API; java.applet zawiera klasy istotne dla działania apletów; java.awt - klasy z "Abstract Window Toolkit" (AWT) dla tworzenia GUI. Klasa System zawarta jest w pakiecie java.lang, automatycznie importowanym do kaŝdego programu w Java. W. Kasprzak: Programowanie zdarzeniowe 1-12

7 Importowanie pakietu: import java.applet.*; // importuj pakiet import java.awt.*; // importuj pakiet public class HelloWorld extends Applet { public void paint(graphics g) { g.drawstring("hello world!", 50, 25); - KaŜda klasa naleŝy do jakiegoś pakietu. Jeśli plik z definicją klasy nie deklaruje na górze do którego pakietu klasa naleŝy, to naleŝy ona do "domyślnego" pakietu. - Klasy naleŝące do tego samego pakietu mogą odwoływać się do siebie bez konieczności stosowania nazw kwalifikowanych (bez przedrostka). W. Kasprzak: Programowanie zdarzeniowe 1-13 Definicja klasy pochodnej od Applet import java.applet.applet; import java.awt.graphics; public class HelloWorld extends Applet { // Początek definicji klasy public void paint(graphics g) { g.drawstring("hello world!", 50, 25); extends wskazuje, Ŝe HelloWorld jest klasą pochodną klasy Applet. Implementacja metod klasy Applet import java.applet.applet; import java.awt.graphics; public class HelloWorld extends Applet { public void paint(graphics g) { // Implementacja metody paint g.drawstring("hello world!", 50, 25); W. Kasprzak: Programowanie zdarzeniowe 1-14

8 KaŜdy aplet musi implementować jedną lub więcej z metod: init, start, paint. Poza tym aplety mogą implementować metody: stop, destroy (przeznaczone do zakończenia współpracy strony z apletem), a takŝe szereg innych metod. Obiekt klasy Graphics reprezentuje kontekst ekranu dla pracy metody paint naszego apletu: pierwszy argument podaje tekst do wyświetlenia, argumenty (x,y) podają pozycję lewego dolnego rogu tekstu na ekranie w układzie współrzędnych kontekstu graficznego g. W. Kasprzak: Programowanie zdarzeniowe 1-15 Wywołanie apletu <HTML> <HEAD> <TITLE> Prosty program </TITLE> </HEAD> <BODY> <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML> Blok <APPLET> podaje nazwę apletu HelloWorld.class, związuje z nim kontekst graficzny - jego pozycję i rozmiary na ekranie. Przeglądarka przeszukuje katalog z plikiem.html, załadowuje plik z klasą apletu przez sieć na własny komputer i tworzy instancję klasy. Atrybuty WIDTH i HEIGHT podają szerokość i wysokość w pikselach obszaru graficznego związanego z apletem na ekranie. W. Kasprzak: Programowanie zdarzeniowe 1-16

9 1.3 Typy danych, zmienne i stałe Typy danych w Javie dzielimy na: typy wbudowane i typy tworzone (definiowane) przez programistę klasy, typy przeliczeniowe ("enum"). Wbudowane typy danych: (1) Typy dla wartości - ("value-type") - typy proste: zmienne tych typów posiadają wartości tych samych typów. (2) Typy referencyjne: zmienne tych typów referują tablice lub obiekty klas; wartością zmiennej jest odniesienie do tablicy lub obiektu. W. Kasprzak: Programowanie zdarzeniowe 1-17 Wbudowane typy proste: Nazwa Opis Format (całkowite) byte Byte integer 8-bitowy kod U2 short Short integer 16-bitowy kod U2 int Integer 32-bitowy kod U2 long Long integer 64-bitowy kod U2 (zmiennoprzecinkowe) float Single-precision 32-bit IEEE 754 double Double-precision 64-bit IEEE 754 (inne) char Pojedynczy znak 16-bitowy znak Unikodu boolean Wartość logiczna true, false W. Kasprzak: Programowanie zdarzeniowe 1-18

10 Zmienna to jednostka danych przechowująca stan (wielkość) określonego typu, ma przyporządkowane miejsce pamięci i opatrzona jest nazwą (identyfikatorem zmiennej). Ze zmienną związane są: Typ (wyznacza rodzaj danych i operacji na nich) Nazwa (sekwencja znaków Unikodu), Wartość (aktualny stan obiektu); Zasięg definicji (zakres widoczności) (zakres programu w którym odwołujemy się do zmiennej poprzez jej prostą nazwę); Czas Ŝycia. Aby nadać zmiennej typ i nazwę wykonujemy instrukcję definicji: typ nazwa Pierwszą wartość zmiennej nadaje się podczas definicji połączonej z inicjalizacją lub w wyniku instrukcji przypisania. Wartości mogą być zmienianie w wyniku instrukcji przypisania. W. Kasprzak: Programowanie zdarzeniowe 1-19 Przykład 1.3. Definicje 8 zmiennych. public class MaxVariablesDemo { public static void main (String args[]) { // typy całkowite byte largestbyte = Byte.MAX_VALUE; short largestshort = Short.MAX_VALUE; int largestinteger = Integer.MAX_VALUE; long largestlong = Long.MAX_VALUE; // typy zmienno-przecinkowe (podzakres liczb rzeczywistych) float largestfloat = Float.MAX_VALUE; double largestdouble = Double.MAX_VALUE; // inne typy char achar = 'S'; boolean aboolean = true; //... W. Kasprzak: Programowanie zdarzeniowe 1-20

11 Uwagi: MAX_VALUE to stałe zdefiniowane w osobnych klasach liczb. Największa liczba typu byte to 127 Największa liczba typu short to Największa liczba typu integer to Największa liczba typu long to Największa liczba typu float to e+38 Największa liczba typu double to e+308 W. Kasprzak: Programowanie zdarzeniowe 1-21 Stałe (literały, stałe symboliczne) : - przeznaczone do inicjalizacji zmiennych; - kaŝda stała posiada typ i wartość. Literał (stała bez nazwy) - typ danych wynika niejawnie ze sposobu zapisu. Przykład 1.4. Przykłady literałów i ich typów: Literal Typ danych 178 int 8864L long double D double F float 26.77e3 double ' c ' char true boolean false boolean W. Kasprzak: Programowanie zdarzeniowe 1-22

12 Stałe symboliczne - to stałe opatrzone nazwą i jawnym typem. Definicja stałej symbolicznej: final typ NAZWASTALEJ = wartość; Np. final float PI = ; final int MAXSIZE = 40000; final PersonalDB DIAPERS = new PersonalDB(); Konwencja: w nazwach stałych symbolicznych stosujemy duŝe litery. Lokalną stałą symboliczną moŝna zainicjować później - najpierw sama deklaracja a później przypisanie pierwszej (i ostatecznej) wartości. Np. final int STAŁA_CZYSTA; // Deklaracja tzw. "czystej" stałej... STAŁA_CZYSTA = 0; // Inicjalizacja czystej stałej W. Kasprzak: Programowanie zdarzeniowe 1-23 Referencja to dana, której wartością jest adres. Typy referencyjne: tablice, klasy, interfejsy. Zmienna referencyjna odnosi się do miejsca pamięci, w którym pomieszczono daną lub wektor danych reprezentowanych tą zmienną. Nie ma typu wskaźnikowego, tzn. jawnego korzystania z adresów. Prosta nazwa zmiennej składa się z pojedynczego identyfikatora. Kwalifikowana nazwa zmiennej zawiera więcej niŝ jeden identyfikator. Identyfikator (nazwa) zmiennej: 1. Nieograniczony ciąg znaków Unikodu rozpoczynający się od litery; 2. Nie będący słowem kluczowym ani teŝ: true, false, null. 3. Unikalny w swoim zasięgu interpretacji nazw. W. Kasprzak: Programowanie zdarzeniowe 1-24

13 Konwencja: - nazwa zmiennej rozpoczyna się małą literą, ale nazwa klasy - duŝą; - drugie słowo w nazwie rozpoczyna się juŝ duŝą literą, np. isvisible; - znak podkreślenia (_) jest wprawdzie poprawny w nazwie, ale powinien być uŝywany jedynie w nazwach stałych (tam są wyłącznie duŝe litery). Zasięg zmiennej - obszar programu, w którym do zmiennej odwoływać się moŝemy poprzez jej nazwę - wyznacza teŝ czas Ŝycia zmiennej. Inicjalizacja zmiennych wg kategorii ich zasięgów: Lokalna zmienna i składowa klasy mogą być inicjowane w miejscu deklaracji. Parametery metod i obsługi wyjątków są inicjowane w procesie wywołania tych metod wzgl. procedur obsługi wyjątków. W. Kasprzak: Programowanie zdarzeniowe 1-25 Kategorie zasięgu (zakresu interpretacji) zmiennej: Zasięgi: składowej klasy parametru metody, lokalnej zmiennej parametru obsługi wyjątków W. Kasprzak: Programowanie zdarzeniowe 1-26

14 1.4 Operatory Operator - operacja (funkcja) podana w notacji operatorowej - z 1, 2 lub 3 argumentami (operandami). Jedyny operator 3-arg. to:?: 1-argumentowe operatory mogą być przedrostkowe i przyrostkowe: operator operand // Notacja przedrostkowa operand operator // Notacja przyrostkowa 2-argumentowe operatory występują pomiędzy swoimi operandami. operand1 operator operand2 // 3-argumentowy operator: operand1? operand2 : operand3 // Operatory arytmetyczne Za wyjątkiem operatora + uŝywanego teŝ do łączenia napisów operatory arytmetyczne są przeznaczone tylko dla liczbowych danych. W. Kasprzak: Programowanie zdarzeniowe 1-27 Operator WyraŜenie Opis + op1 + op2 dodawanie op1 i op2 - op1 - op2 odejmowanie op2 od op1 * op1 * op2 mnoŝenie op1 przez op2 / op1 / op2 dzielenie op1 przez op2 % op1 % op2 reszta z dzielenia op1 przez op2 Operator zwraca wynik określonego typu. Gdy typy operandów są róŝne konwersja niejawne (poszerzanie typu) podczas obliczania wyraŝeń: Typ wyniku Typy argumentów: long nie są typu float ani double; co najmniej jeden jest typu long int nie są typu float ani double; Ŝaden nie jest typu long double co najmniej jeden jest typu double float co najmniej jeden jest typu float; Ŝaden nie jest double W. Kasprzak: Programowanie zdarzeniowe 1-28

15 1-argumentowe wersje operatorów + i - : Operator WyraŜenie Opis + +op Poszerza op do int jeśli op jest typu byte,short,char. - -op Arytmetyczna negacja op. Przed- i przyrostkowe operatory ++ i --. przedrostkowe ++op, --op : zwróć wartośc operanda po operacji; przyrostkowe op++, op--: zwróć wartość operanda sprzed operacji. Operatory porównań (relacji) Operator WyraŜenie Wynik jest "true" gdy: > op1 > op2 op1 większe niŝ op2 >= op1 >= op2 op1 większe lub równe op2 < op1 < op2 op1 mniejsze niŝ op2 <= op1 <= op2 op1 mniejsze lub równe op2 == op1 == op2 op1 i op2 są równel!= op1!= op2 op1 i op2 są nierówne W. Kasprzak: Programowanie zdarzeniowe 1-29 Operatory logiczne (dla argumentów typu boolean) Operator WyraŜenie Wynik jest "true" gdy: && op1 && op2 op1 i op2 są prawdziwe op1 op2 op1 lub op2 jest prawdziwe!! op op jest fałszywe & op1 & op2 op1 i op2 są prawdziwe op1 op2 op1 lub op2 jest prawdziwe ^ op1 ^ op2 op1 i op2 są róŝne Uwaga: 0 <= index && index < NUM_ENTRIES Gdy pierwszy operand zostanie obliczony jako false, drugi operand nie będzie juŝ interpretowany, gdyŝ wynik i tak będzie false. W. Kasprzak: Programowanie zdarzeniowe 1-30

16 Operatory bitowe przesunięć Operator WyraŜenie Operacja >> op1 >> op2 przesuń op1 w prawo o op2 bitów (zachowuje znak liczby) << op1 << op2 przesuń op1 w lewo o op2 bitów >>> op1 >>> op2 przesuń op1 w prawo o op2 bitów z wypełnieniem zerami (liczba bez znaku) Operatory bitowe logiczne Operator WyraŜenie Operacja & op1 & op2 bitowe AND op1 op2 bitowe OR ^ op1 ^ op2 bitowe XOR ~ ~op2 bitowa negacja W. Kasprzak: Programowanie zdarzeniowe 1-31 Operatory przypisania Podstawowy = : op1 = op2 Rozszerzone operatory przypisania: Operator WyraŜenie RównowaŜne z: += op1 += op2 op1 = op1 + op2 -= op1 -= op2 op1 = op1 - op2 *= op1 *= op2 op1 = op1 * op2 /= op1 /= op2 op1 = op1 / op2 %= op1 %= op2 op1 = op1 % op2 &= op1 &= op2 op1 = op1 & op2 = op1 = op2 op1 = op1 op2 ^= op1 ^= op2 op1 = op1 ^ op2 <<= op1 <<= op2 op1 = op1 << op2 >>= op1 >>= op2 op1 = op1 >> op2 >>>= op1 >>>= op2 op1 = op1 >>> op2 W. Kasprzak: Programowanie zdarzeniowe 1-32

17 Inne operatory Operator WyraŜenie Opis?: op1? op2 : op3 gdy op1 jest "true" zwraca op2, w przeciwnym razie zwraca op3 [] typ [] Deklaracja tablicy elementów typu typ. [] typ[ op1 ] Utworzenie tablicy o liczbie op1 elementów typu typ operatorem new. [] op1[ op2 ] Pobranie elementu o indeksie op2 w tablicy op1.. op1.op2 Odwołanie do składowej op2 z op1. () op1(param) Deklaracja lub wywołanie metody op1 z listą parametrów (argumentów) param. (typ) (typ) op1 Konwersja wyraŝenia op1 do typu typ. new new op1 Utworzenie obiektu lub tablicy. instanceof op1 instanceof Zwraca "true" gdy obiekt op1 jest op2 instancją klasy op2 W. Kasprzak: Programowanie zdarzeniowe 1-33 Tabela operatorów według priorytetów - im wyŝej połoŝony wiersz tym wyŝszy priorytet: Przyrostkowe operatory []. (param) wyraŝ++ wyraŝ-- 1-arg. operatory ++wyraŝ --wyraŝ +wyraŝ -wyraŝ ~! Konstrukcja, konwersja new (typ)wyraŝ Arytm. multiplikatywne * / % Arytm. addytywne + - Przesunięć < Porównania < > <= >= instanceof Porówn. równościowe ==!= Bitowe AND & Bitowe exclusive OR ^ Bitowe OR Logiczne AND && Logiczne OR Warunkowy? : Przypisania = += -= *= /= %= &= ^= = <<= >>= >>>= W. Kasprzak: Programowanie zdarzeniowe 1-34

18 1.5 Instrukcje sterujące UmoŜliwiają zmianę sekwencyjnego sposobu wykonania programu. Rodzaj instrukcji pętla warunek obsługa wyjątku skok Slowa kluczowe while, do-while, for if-else, switch-case try-catch-finally, throw break, continue, etykieta:, return while (wyraŝenie) { instrukcje // Wykonuj petlę gdy wyraŝenie jest prawdziwe ( true). do { instrukcje while (wyraŝenie); // Sprawdzenie warunku następuje po zakończeniu pętli. W. Kasprzak: Programowanie zdarzeniowe 1-35 for (inicjalizacja; warunek; inkrementacja) { instrukcje // Wszystkie trzy wyraŝenia są opcjonalne: // MoŜe być: for( ; ; ) if (wyraŝenie) { instrukcje W. Kasprzak: Programowanie zdarzeniowe 1-36 if ( flaga == OK) { // akcja "OK." else { // akcja "Cancel" switch (miesiąc) { case 1: System.out.println("Styczeń"); break; //... case 12: System.out.println("Grudzień"); break; default: System.out.println("Błędny miesiąc!"); break;

19 Obsługa sytuacji wyjątkowych try { instrukcje // tu moŝe wystąpić throw catch (typ_wyjątku nazwa) { // obsługa wyjątku danego typu instrukcje finally { // wykonywana zawsze niezaleŝnie od wyjątku instrukcje Instrukcje skoków - Etykietowana instrukcja: etykietainstrukcji: pewnainstrukcja; - Instrukcja break bez etykiety - kończy wykonywanie aktualnej wewnętrznej instrukcji sterującej: switch, for, while, do-while. break; W. Kasprzak: Programowanie zdarzeniowe Instrukcja break z etykietą - kończy wykonywanie zewnętrznego switch, for, while, do-while o podanej etykiecie: break etykietainstrukcji; - Instrukcja continue kończy bieŝącą iterację wewnętrznej pętli : continue; - Instrukcja continue z etykietą kończy bieŝącą iterację zewnętrznej instrukcji pętli o podanej etykiecie: continue etykietainstrukcji; - Instrukcja return - powrót z wykonywanej metody. return wyraŝenie; // Typ wyniku musi odpowiadać deklaracji. return; // W metodzie o wyniku typu void W. Kasprzak: Programowanie zdarzeniowe 1-38

20 1.6 Obsługa sytuacji wyjątkowych Wyjątek - przerwanie normalnego wykonania programu, na skutek jakiegoś błędu lub nadzwyczajnej sytuacji w programie. Np.: błąd działania sprzętu, brak wystarczającej pamięci, brak dostępu do zasobów, itp. Zalety stosowania mechanizmu obsługi sytuacji wyjątkowych. 1. Oddzielenie kodu obsługi błędu od "normalnego kodu" Np. mamy normalny pseudo-kod wykonania: void readfile { otwórz plik; określ rozmiar pliku; alokuj pamięci odpowiednio do rozmiaru pliku; wczytaj plik do pamięci; zamknij plik; Teraz naleŝy uwzględnić moŝliwe błędy programu. Dojdziemy do pewnego pseudo-kodu z wymieszanym "normalnym kodem" i W. Kasprzak: Programowanie zdarzeniowe 1-39 "sprawdzaniem błędów": errorcodetype readfile { errorcode = 0; otwórz plik; if (plikjestotwarty) { określ rozmiar pliku; if (mamrozmiarpliku) { alokuj pamięć o rozmiarze pliku; if (jestwystarczającapamięc) { wczytaj plik do pamięci; if (odczytbłędny) { errorcode = -1; else { errorcode = -2; else { errorcode = -3; zamknij plik; if (plikniezamykasię) { errorcode = -4; else { errorcode = -5; return errorcode; Oryginalny przepływ programu nie jest juŝ widoczny w nowym kodzie. Wykorzystując mechanizm obsługi wyjątków nasz pseudo-kod wyglądać W. Kasprzak: Programowanie zdarzeniowe 1-40

21 będzie duŝo czytelniej: void readfile { try { otwórz plik; określ rozmiar pliku; alokuj pamięci odpowiednio do rozmiaru pliku; wczytaj plik do pamięci; zamknij plik; catch (PlikNieotwarty) { obsłuŝpliknieotwarty; catch (BrakRozmiaru) { obsłuŝbrakrozmiaru; catch (BrakPamięci) { obsłuŝbrakpamięci; catch (OdczytNieudany) { obsłuŝodczytnieudany; catch (PlikNiezamkniety) { obsłuŝplikniezamkniety; 2. MoŜliwość kontrolowanego propagowania błędów przez hierarchię wywołań Np. mamy wywołania: metoda 1 woła metodę 2 ta metodę 3 a ta readfile. Niech jedynie metoda 1 jest zainteresowana błędami W. Kasprzak: Programowanie zdarzeniowe 1-41 powstałymi podczas wykonania readfile. W normalnym kodzie propagacje błędu wstecz musiałyby być jawnie rozpatrywane w kodzie: void metoda1() { errorcodetype error; error = metoda2(); if (error) obsłuŝbłąd; else kontynuuj; errorcodetype metoda2() { errorcodetype error; error = metoda3(); if (error) return error; else kontynuuj; errorcodetype metoda3() { errorcodetype error; error = readfile(); W. Kasprzak: Programowanie zdarzeniowe 1-42

22 if (error) return error; else kontynuuj; System obsługi wyjątków umoŝliwia automatyczny powrót do miejsca, w którym odbędzie się rozpoznanie i obsługa wyjątku: void metoda1() { try { metoda2(); catch (wyjatek) { obslugabłedu; void metoda2() throws wyjatek { metoda3(); void metoda3() throws wyjatek { readfile(); Zaleta 3. Grupowanie błędów i ich obsługi. W Javie wszystkie zgłaszane wyjątki są obiektami klas: obiektem klasy Throwable lub jej klasy pochodnej. W. Kasprzak: Programowanie zdarzeniowe 1-43 Sprawdzalne wyjątki Java wymaga aby metody obsługiwały lub specyfikowały wszystkie sprawdzalne wyjątki, które mogą wystąpić podczas wykonania metody. Wyjątki, które są typowe dla środowiska czasu wykonania, nie są sprawdzalne przez kompilator. Nie ma wymogu ich obsługi lub deklarowania ich wystąpienia. Np. są nimi: wyjątki arytmetyczne (np. dzielenie przez zero), wyjątki wskazań (np. próba odwołania do obiektu poprzez zerową referencję), wyjątki indeksowania (np. odwołanie do elementu tablicy poprzez zły indeks). Sprawdzane wyjątki to takie, których obsługę lub deklarowanie sprawdza kompilator. Przykład 1.5 Klasa InputFile obejmuje FileReader i posiada metodę getword, dla odczytu słowa z obiektu odczytywanego (tzw. reader). import java.io.*; public class InputFile { W. Kasprzak: Programowanie zdarzeniowe 1-44

23 private FileReader in; public InputFile(String filename) { in = new FileReader(filename); public String getword() { int c; StringBuffer buf = new StringBuffer(); do { c = in.read(); if (Character.isWhitespace((char)c)) return buf.tostring(); else while (c!= -1); return buf.tostring(); buf.append((char)c); Program ignoruje moŝliwość zgłoszenia wyjątku przez konstruktor FileReader() jak teŝ metodę read(). Kompilator zgłosi dwa błędy: InputFile.java:4: Warning: Exception java.io.filenotfoundexception W. Kasprzak: Programowanie zdarzeniowe 1-45 must be caught, or it must be declared in throws clause of this method. in = new FileReader(filename); InputFile.java:9: Warning: Exception java.io.ioexception must be caught, or it must be declared in throws clause of this method. c = in.read(); W. Kasprzak: Programowanie zdarzeniowe 1-46

24 Obsługa wyjątków Przykład 1.6. Nasza klasa ListOfNumber wywołuje dwie metody klas Javy, które mogą zgłaszać wyjątki. // Uwaga: Ten program nie skompiluje się! import java.io.*; import java.util.vector; public class ListOfNumbers { private Vector victor; private static final int size = 10; public ListOfNumbers () { victor = new Vector(size); for (int i = 0; i < size; i++) victor.addelement( new Integer(i)); public void writelist() { PrintWriter out = new PrintWriter ( new FileWriter("OutFile.txt")); W. Kasprzak: Programowanie zdarzeniowe 1-47 for (int i = 0; i < size; i++) out.println("value at: " + i + " = " + victor.elementat(i)); out.close(); Metoda writelist wywołuje dwie metody, które mogą zgłaszać wyjątki: konstruktor klasy FileWriter zgłosi IOException, jeśli nie moŝna otworzyć podanego pliku: out = new PrintWriter(new FileWriter("OutFile.txt")); metoda elementat klasy Vector zgłosi ArrayIndexOutOfBoundsException, jeśli przekazany jej indeks jest poza zakresem elementów obiektu klasy Vector: out.println("value at: " + i + " = " + victor.elementat(i)); Kompilator sprawdza tylko istnienie obsługi lub deklaracji wyjątku IOException, ale nie sprawdza wyjątku czasu wykonania - ArrayIndexOutOfBoundsException. W. Kasprzak: Programowanie zdarzeniowe 1-48

25 Blok try Kod metody writelist ujmiemy w blok try - aktywacji śledzenia wyjątków: PrintWriter out = null; try { System.out.println("Początek bloku try"); out = new PrintWriter( new FileWriter("OutFile.txt")); for (int i = 0; i < size; i++) out.println("value at: " + i + " = " + victor.elementat(i)); Po bloku try musi wystąpić przynajmniej jeden blok catch lub blok finally. Np. try {... catch (ArrayIndexOutOfBoundsException e) { W. Kasprzak: Programowanie zdarzeniowe 1-49 System.err.println("Wyjątek: ArrayIndexOutOfBoundsException: " + e.getmessage()); catch (IOException e) { System.err.println("Wyjątek: IOException: " + e.getmessage()); Obsługa wyjątków typu klasy bazowej moŝe obsłuŝyć teŝ wyjątki typu klas pochodnych. Np.: try {... catch (Exception e) { System.err.println("ObsłuŜono: " + e.getmessage()); Teraz w jednym bloku ogólnym obsłuŝymy wyjątki IOException i ArrayIndexOutOfBoundsException, ale tez szereg dalszych. W. Kasprzak: Programowanie zdarzeniowe 1-50

26 Blok finally UmoŜliwia kontrolowane "opuszczenie" fragmentu programu, niezaleŝnie od tego czy w bloku try wystąpił wyjątek, czy teŝ nie. Np. w naszym przykładzie 1.6 stosujemy blok finally w metodzie writelist dla zamknięcia obiektu PrintWriter. finally { if (out!= null) { System.out.println("Zamykanie PrintWriter"); out.close(); else { System.out.println("PrintWriter nie jest otwarty"); Korzyść z bloku try - oddzielenie fragmentu planowego zwalniania zasobów programu od normalnego kodu, wykonanie tego fragmentu niezaleŝnie od tego, czy wystąpił błąd czy tez nie. Np. bez bloku try musielibyśmy stworzyć we writelist następujący kod: try {... out.close(); // kod ten będzie powtórzony poniŝej W. Kasprzak: Programowanie zdarzeniowe 1-51 catch (ArrayIndexOutOfBoundsException e) { out.close(); // powtórzenie kodu System.err.println("ObsłuŜono: ArrayIndexOutOfBoundsException: " + e.getmessage()); catch (IOException e) { System.err.println("ObsłuŜono IOException: " + e.getmessage()); Przykład 1.7. Cała metoda writelist() po modyfikacjach potrzebnych dla obsługi wyjątków wygląda teraz następująco: public void writelist() { PrintWriter out = null; try { System.out.println("Początek bloku try"); out = new PrintWriter( new FileWriter("OutFile.txt")); for (int i = 0; i < size; i++) out.println("value at: " + i + " = " + victor.elementat(i)); W. Kasprzak: Programowanie zdarzeniowe 1-52

27 catch (ArrayIndexOutOfBoundsException e) { System.err.println("Obsługa: ArrayIndexOutOfBoundsException:" + e.getmessage()); catch (IOException e) { System.err.println("ObsłuŜono: IOException: " + e.getmessage()); finally { if (out!= null) { System.out.println("Zaykanie PrintWriter"); out.close(); else { System.out.println("PrintWriter nie jest otwarty"); Uwagi: 1. Jeśli metoda writellist nie posiadałyby bloku catch obsługującego sprawdzalny wyjątek IOException, to naleŝałoby zadeklarować go w liście wyjątków tej metody, np.: W. Kasprzak: Programowanie zdarzeniowe 1-53 public void writelist() throws IOException, ArrayIndexOutOfBoundsException { 2. Wyjątek ArrayIndexOutofBoundsException nie jest sprawdzalny przez kompilator i nie musi być tu deklarowany. Zgłaszanie wyjątków throw pewienthrowableobject; Jako wyjątek moŝe być zgłoszony jedynie obiekt klasy Throwable lub klasy pochodnej od Throwable. W innym razie wystąpi błąd kompilacji: testing.java:10: Cannot throw class java.lang.integer; it must be a subclass of class java.lang.throwable. throw new Integer(4); ^ Np. public Object pop() throws EmptyStackException { Object obj; if (size == 0) throw new EmptyStackException(); W. Kasprzak: Programowanie zdarzeniowe 1-54

28 obj = objectat(size - 1); setobjectat(size - 1, null); size--; return obj; Hierarchia klas wyjątków Error. Błąd dynamicznej konsolidacji programu lub inny "cięŝki" błąd w JVM. Programy w Javie nie powinny obsługiwać ani zgłaszać takich wyjątków. Exception. To jest klasa bazowa wyjątków w programach Javy. Są juŝ W. Kasprzak: Programowanie zdarzeniowe 1-55 liczne klasy pochodne tej klasy, np. IllegalAccessException, NegativeArraySizeException. Runtime Exception Specialna klasa pochodna od Exception, która dotyczy wyjątków zgłaszanych w Java virtual machine (czyli podczas wykonania programu). Np. NullPointerException. Tworzenie własnych klas wyjątków Dla naszej klasy powinniśmy utworzyć klasy ewentualnych wyjątków, które mogą być zgłaszane w jej metodach. Nasz główna klasa wyjątków powinna dziedziczyć z klasy Exception. Dziedziczenie z klasy RuntimeException, mimo iŝ kusi brakiem konieczności deklarowania wyjątków w metodach, powinniśmy zostawić środowisku czasu wykonania, czyli JVM. Konwencja - nazwy klas dziedziczących z Exception kończą się na "Exception". W. Kasprzak: Programowanie zdarzeniowe 1-56

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

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

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

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

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

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

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

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

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

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

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

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

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

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

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 3 Java podstawy Przygotował: Jacek Sroka 2 Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo

Bardziej szczegółowo

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

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

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

Wykład 8: Obsługa Wyjątków Wykład 8: Obsługa Wyjątków Wyjątki Wyjątek to sytuacja nienormalna, która pojawia się w trakcie wykonania programu. W językach bez obsługi wyjątków, błędy są wykrywane i obsługiwane ręcznie, zwykle przez

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

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

Języki i metody programowania Java INF302W Wykład 3 (część 1) Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

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

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Tworzenie aplikacji w języku Java

Tworzenie aplikacji w języku Java Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009

Bardziej szczegółowo

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

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Ćwiczenie 1. Przygotowanie środowiska JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.

Bardziej szczegółowo

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

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu. WYJĄTKI Klasa Throwable Exception Error Klasy dziedziczące po klasie Exception są typami wyjątków, które automatycznie obsługuje Java lub program przy jawnym przechwytywaniu i obsłudze wyjątków w blokach

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

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

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

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

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

Bardziej szczegółowo

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy PODSTAWOWE ELEMENTY JĘZYKA JAVA TYPY DANYCH, OPERATORY I INSTRUKCJE 1. Definicja klasy, dziedziczenie, implementowanie metod interfejsów class nazwa_klasy //ciało klasy Klasa: przed słowem class moŝe wystąpić

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa

Bardziej szczegółowo

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

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

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5. Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Wprowadzenie do języka Java

Wprowadzenie do języka Java WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Platformy Programistyczne Podstawy języka Java

Platformy Programistyczne Podstawy języka Java Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo

Bardziej szczegółowo

Podstawowe części projektu w Javie

Podstawowe części projektu w Javie Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych

Bardziej szczegółowo

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

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

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

2. Składnia, środowisko i konwencje w Javie Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

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

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Java podstawy jęyka Wykład 2 Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Wyjątki: obsługa błędów Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 12.03.2015

Bardziej szczegółowo

Odczyt danych z klawiatury Operatory w Javie

Odczyt danych z klawiatury Operatory w Javie Odczyt danych z klawiatury Operatory w Javie Operatory W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ II

MATERIAŁY DO ZAJĘĆ II MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych

Bardziej szczegółowo

KOTLIN. Język programowania dla Androida

KOTLIN. Język programowania dla Androida KOTLIN Język programowania dla Androida Historia Kotlin został opracowany przez firmę JetBrains Prace rozpoczęto w 2011 r., od 2012 r. dostępny na licencji Apache 2. Nazwa pochodzi od wyspy koło Petersburga

Bardziej szczegółowo

Obsługa błędów za pomocą wyjątków. Paweł Motofa (140746)

Obsługa błędów za pomocą wyjątków. Paweł Motofa (140746) Obsługa błędów za pomocą wyjątków Paweł Motofa (140746) Co zrobić, gdy wystąpi błąd Przykład Co zrobić, gdy wystąpi błąd Co zrobić, gdy wystąpi błąd Co zrobić, gdy wystąpi błąd Jak wyglądałaby funkcja

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński Java - wprowadzenie Programowanie Obiektowe Mateusz Cicheński O języku Czym jest Java Cechy charakterystyczne języka Przykładowe zastosowania Składnia języka Podstawowe typy Wybrane słowa kluczowe Plan

Bardziej szczegółowo

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

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196 Wyjątki 180 / 196 Wyjątki W Javie istnieje mechanizm tzw. wyjątków (ang. exception), który pozwala na przechwytywanie błędów pojawiających się w programie. Kompilacja tab [ 1 0 ] = 100; spowoduje powstanie

Bardziej szczegółowo

Wykład 2: Podstawy Języka

Wykład 2: Podstawy Języka Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo

Dziedziczenie. Tomasz Borzyszkowski

Dziedziczenie. Tomasz Borzyszkowski Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów

Bardziej szczegółowo

Java Podstawy. Michał Bereta

Java Podstawy. Michał Bereta Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 9: Wyjątki 5/5/2013 S.Deniziak:Programowanie obiektowe - Java 1 Co to jest wyjątek? błąd wykonania: InputFile.java:8: Warning: Exception java.io.filenotfoundexception must

Bardziej szczegółowo

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x()

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x() Wykład 3. Wyjątki 1) Obsługa wyjątków system czasu przebiegu Javy przerwanie programu class Wyjatek_1 //plik Proba_1.java int x; Wyjatek_1(int x_) x = x_; int iloraz() int p = 45/x; //generowanie wyjątku

Bardziej szczegółowo

Dawid Gierszewski Adam Hanasko

Dawid Gierszewski Adam Hanasko Dawid Gierszewski Adam Hanasko Chcemy stworzyć klasę w której możemy przechowywać dwie zmienne dowolnych typów Tworzymy tyle różnych klas ile potrzeba: Class ParaInt{ int pierwszy; Int drugi; Class ParaButow{

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

Programowania w Javie

Programowania w Javie Programowania w Javie Działanie kaŝdego programu polega na przetwarzaniu danych. Zaczniemy więc od zapoznania się z typami danych Javy. Aby przetwarzać dane, trzeba umieć na nich operować. Do tego słuŝą

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

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

Języki i metody programowania Java. Wykład 2 (część 2) Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego

Bardziej szczegółowo

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1 PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Operatory. Składnia. Typy proste. Znaki specjalne

Operatory. Składnia. Typy proste. Znaki specjalne Składnia Operatory komentarze // /* */ /** */ litery A.. Z, a.. z, \udddd dddd>00c0 identyfikatory pierwszy znak= _, lub litera, następne dodatkowo 0.. 9 liczby dziesiętne Ddddd (D 0) liczby ósemkowe 0dddd

Bardziej szczegółowo

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy? Zad.28. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( ) ; public void pisz ( ) ; Zad.29. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( int l i c z b a ) ; public

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo

Programowanie Obiektowe Ćwiczenie 4

Programowanie Obiektowe Ćwiczenie 4 Programowanie Obiektowe Ćwiczenie 4 1. Zakres ćwiczenia wyjątki kompozycja 2. Zagadnienia Założeniem, od którego nie należy odbiegać, jest by każdy napotkany problem (np. zatrzymanie wykonywanej metody)

Bardziej szczegółowo

Java Język programowania

Java Język programowania Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

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

Języki i metody programowania Java INF302W Wykład 2 (część 1) Języki i metody programowania Java INF302W Wykład 2 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 2, część 1 1 Struktura wykładu 1. Identyfikacja

Bardziej szczegółowo

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

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop. 2016 Spis treści Przedmowa 1 Stosowana notacja 1 1. Wprowadzenie 3 1.1. Konsola interaktywna języka Scala 3 1.2. Zmienne 5 1.3. Wartości

Bardziej szczegółowo

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń: Klasy Metody [ModyfikatorMetody] TypZwrotny Nazwa (Typ arg1, ) { // implementacja metody ModyfikatorMetody może być kombinacją wyrażeń: modyfikator widzialności public dostępna dla metod spoza klasy protected

Bardziej szczegółowo

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Materiały pomocnicze do wykładu 3 - Elementy języka Java Materiały pomocnicze do wykładu 3 - Elementy języka Java 1) Typy danych Typy całkowite Typ Rozmiar Zakres przechowywanych danych byte 8 bitów -128 do 127 short 16 bitów -32768 do 32767 int 32 bity -2147483648

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

Powtórka algorytmów. Wprowadzenie do języka Java.

Powtórka algorytmów. Wprowadzenie do języka Java. Powtórka algorytmów. Wprowadzenie do języka Java. BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż 10! ) END. Ważne terminy: Java DevelopRment

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

Podstawy otwartych języków programowania Język Java

Podstawy otwartych języków programowania Język Java Podstawy otwartych języków programowania Język Java Wiktor Wandachowicz Platforma Java Stworzona przez Sun Microsystems, Inc. J2SE Java 2 Standard Edition (platforma ogólnego przeznaczenia/desktop) J2EE

Bardziej szczegółowo

Programowanie obiektowe. Wprowadzenie

Programowanie obiektowe. Wprowadzenie 1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Obsługa wyjątków. Rysunek 2-4 Hierarchia dziedziczenia klas wyjątków

Obsługa wyjątków. Rysunek 2-4 Hierarchia dziedziczenia klas wyjątków Obsługa wyjątków Podczas działania programu mogą wystąpić róŝne sytuacje specjalne, do których naleŝą m.in. wystąpienia błędu polegającego na próbie otwarcia pliku, który nie istnieje. Java posiada zapoŝyczony

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo