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

Podobne dokumenty
Programowanie obiektowe

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

Wykład 2: Podstawy Języka

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

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

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

Programowanie obiektowe

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

Przykład -

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

Tworzenie aplikacji w języku Java

Java: interfejsy i klasy wewnętrzne

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

Programowanie wieloplatformowe w Java

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

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

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

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

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

Programowanie obiektowe

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

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

Enkapsulacja, dziedziczenie, polimorfizm

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

Polimorfizm. dr Jarosław Skaruz

1 Atrybuty i metody klasowe

Operatory. Składnia. Typy proste. Znaki specjalne

Programowanie, algorytmy i struktury danych

Materiały do zajęć III

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

Programowanie obiektowe

Programowanie obiektowe

Dokumentacja do API Javy.

Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne

Wykład 04. Programowanie obiektowe. Maciej Wołoszyn 17 marca Spis treści

Java Język programowania

Aplikacje w środowisku Java

Dawid Gierszewski Adam Hanasko

Charakterystyka języka Smalltalk. Programowanie w Java. Interfejs obiektu OOP. Boch: An object has state, behavior and identity

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

Microsoft IT Academy kurs programowania

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

Programowanie obiektowe

Laboratorium Programowania Kart Elektronicznych

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

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

Programowanie w języku Java WYKŁAD

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Wykład 7: Pakiety i Interfejsy

Podejście obiektowe. Tablice (1) obiektów

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

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

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

Podstawowe części projektu w Javie

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

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

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Programowanie obiektowe

Konwencje obsługi błędów

Programowanie obiektowe

Podstawy Języka Java

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Programowanie urządzeń mobilnych

Platformy Programistyczne Podstawy języka Java

1. Co można powiedzieć o poniższym kodzie (zakładając, że znajduje się on w jednym pliku A.java)?

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Programowanie współbieżne Laboratorium nr 11

Wprowadzenie do programowaia w języku Java. dr Dariusz Pałka dpalka@up.krakow.pl

Programowanie obiektowe

Programowanie obiektowe i zdarzeniowe

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

Programowanie w Internecie. Java

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Podstawy programowania obiektowego

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

MAS dr. Inż. Mariusz Trzaska. Realizacja różnych modeli dziedziczenia w obiektowych językach programowania

Wykład 4: Klasy i Metody

Wprowadzenie do języka Java

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

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

Programowanie obiektowe

Programowanie w Java

Programowanie Obiektowe Ćwiczenie 4

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

Programowanie obiektowe i język Java

Przypomnienie o klasach i obiektach

Programowanie obiektowe

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

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

KLASY, INTERFEJSY, ITP

Programowanie w Javie wykład 9 Klasy wewnętrzne, klasy anonimowe Klasy opakowujące

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

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusz Mikoda

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?

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

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

Transkrypt:

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 we/wyj o Wydajność o Podsumowanie Wykorzystano materiały z Thinking in Java (3rd edition) autorstwa Bruce a Eckel a http://www.mindview.net/books/tij Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 2

Typy podstawowe Primitive type Size Minimum Maximum Wrapper type boolean Boolean char 16-bit Unicode 0 Unicode 2 16-1 Character byte 8-bit -128 +127 Byte short 16-bit -2 15 +2 15 1 Short int 32-bit -2 31 +2 31 1 Integer long 64-bit -2 63 +2 63 1 Long float 32-bit IEEE754 IEEE754 Float double 64-bit IEEE754 IEEE754 Double void Void Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 3

Obiekty, a referencje o Typ podstawowy int a = 5; Int b = 7; 5 7 o Obiekt dostępny przez referencję Person p = new Person(); :Person Jan Kowalski Person p2 = p; Person p3 = p; p p2 p3 Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 4

Klasy opakowujące (wrapper) o char c = 'x'; o Character C = new Character(c); o Character C = new Character('x'); o Powody opakowywania? Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 5

Zakres { int x = 12; // Tylko x jest dostępny { int q = 96; // x & q dostępne // Tylko x jest dostępny { String s = new String("a string"); // koniec zakresu Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 6

class ClassName { /* Ciało klasy */ Klasy class DataOnly { int i; float f; boolean b; // Stworzenie obiektu DataOnly d = new DataOnly( ); Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 7

Klasy (2) o Dostęp do pól d.i = 47; d.f = 1.1f; d.b = false; Primitive type boolean char byte Default false \u0000 (null) (byte)0 short (short)0 o Inicjalizacja - konstruktor int 0 long 0L float 0.0f double 0.0d Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 8

Metody o Składnia returntype nazwametody( /* Argumenty*/ ) { /* Ciało */ o Metoda pobiera string, a zwraca int: int storage(string s) { return s.length( ) * 2; o Wiele argumentów dla metody objectname.methodname(arg1, arg2, arg3); Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 9

Pierwszy program // HelloDate.java (1) import java.util.*; (2) public class HelloDate { // metoda startowa public static void main(string[] args) { System.out.println("Hello, it's: "); System.out.println(new Date( )); Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 10

Komentarze /* To jest komentarz zawierający wiele linii. */ // A to jest komentarz w jednej linii o Dokumentowanie kodu źródłowego (javadoc) /** Opis klasy */ public class DocTest { /** opis atrybutu */ public int i; /** Opis metody */ public void f( ) { Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 11

o Nazwy: Klas Metod Zmiennych Jakość kodu o Podział na mniejsze fragmenty o Samodokomentujący/czytelny kod o Konwencje o Formatowanie kodu źródłowego Wcięcia tabs vs spaces Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 12

Rzutowanie (casting) o Po co? o Przykład void casts( ) { int i = 200; long l = (long)i; long l2 = (long)200; Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 13

Kontrola sterowania o If if(boolean-expression) else o return statement statement o Iteracja while(boolean-expression) statement Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 14

o do-while do statement Kontrola sterowania (2) while(boolean-expression); o break, continue o for for(initialization; Boolean-expression; step) statement Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 15

Kontrola sterowania (4) o switch switch(integral-selector) { case integral-value1 : statement; break; case integral-value2 : statement; break; case integral-value3 : statement; break; case integral-value4 : statement; break; case integral-value5 : statement; break; //... default: statement; Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 16

Interfejsy o o Cel Przykład interface Instrument { // Stała: // static & final int I = 5; // tylko deklaracja // metoda publiczna void play(note n); String what(); void adjust(); Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 17

Implementacja interfejsu Interfejsy (2) o class Wind implements Instrument { // wind instrumenty dęte public void play(note n) { System.out.println("Wind.play() " + n); public String what() { return "Wind"; public void adjust() { class Brass extends Wind { public void play(note n) { System.out.println("Brass.play() " + n); public void adjust() { System.out.println("Brass.adjust()"); class Woodwind extends Wind { public void play(note n) { System.out.println("Woodwind.play() " + n); public String what() { return "Woodwind"; Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 18

Interfejsy (3) o Wykorzystanie interfejsów Instrument currentinstrument = null; currentinstrument = new Brass(); currentinstrument.play(1); currentinstrument = new Woodwind(); currentinstrument.play(1); o Rozwiązanie z: Klasą bazową, Interfejsami. Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 19

o Błędy: Kompilacji, Czasu wykonania Obsługa błędów o Jak to robiono kiedyś? Ustawianie zmiennej globalnej, Zwracanie specjalnej wartości (jakiej?) o Współczesne podejście wyjątki Zalety Wady (?) Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 20

o Klasa Wyjątki o Dziedziczenie z klasy Exception o Argumenty o Łapanie wyjątków i ich obsługa try { // kod, który może spowodować wyjątek catch(type1 id1) { // Obsługa wyjątków typu Type1 catch(type2 id2) { // Obsługa wyjątków typu Type2 Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 21

Wyjątki (2) o Metoda, która nie rzuca wyjątków na zewnątrz i obsługuje je wewnątrz void f( ) { //... o Metoda, która ostrzega, że może rzucić wyjątek void f( ) throws TooBigException,DivZeroException { //... o Które podejście jest lepsze? Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 22

Wyjątki (3) o Łapanie wszystkich wyjątków catch(exception e) { System.err.println("Caught an exception"); o Ponowne rzucanie wyjątku catch(exception e) { System.err.println("An exception was thrown"); throw e; o Specjalny przypadek NullPointerException person.showname(); Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 23

o Sprzątanie z finally try { Wyjątki (4) // Chroniony region: spodziewamy się wyjątków: // A, B, lub C catch(a a1) { // Obsługa A catch(b b1) { // Obsługa B catch(c c1) { // Obsluga C finally { // Wykonywany zawsze! Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 24

o Różne zastosowania Używanie stałych o Rozwiązanie klasyczne (nie polecane!) public class MainMenu { public static final int MENU_FILE = 0; public static final int MENU_EDIT = 1; public static final int MENU_FORMAT = 2; public static final int MENU_VIEW = 3; o Nowe rozwiązanie z typem wyliczeniowym (enum) public enum MainMenu {FILE, EDIT, FORMAT, VIEW; Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 25

Ciąg dalszy na następnym wykładzie Modelowanie i Analiza Systemów Informacyjnych (MAS), wykład 2 26