Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

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

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

Programowanie obiektowe

Programowanie obiektowe

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

Programowanie obiektowe. Wprowadzenie

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

Programowanie w Internecie. Java

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

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

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

Java jako język programowania

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

Programowanie obiektowe

Programowanie obiektowe

Multimedia JAVA. Historia

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

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

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

1 Atrybuty i metody klasowe

Programowanie obiektowe

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

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

Wprowadzenie do języka Java

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

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

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

Tworzenie aplikacji w języku Java

Java EE produkcja oprogramowania

Wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

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

Aplikacje w środowisku Java

Ćwiczenie 1. Przygotowanie środowiska JAVA

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

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

Podstawy programowania obiektowego

Klasy abstrakcyjne i interfejsy

Java Język programowania

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

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

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

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

Dokumentacja do API Javy.

Podstawy programowania. Wprowadzenie

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Programowanie obiektowe zastosowanie języka Java SE

Polimorfizm, metody wirtualne i klasy abstrakcyjne

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

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

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Java. Programowanie Obiektowe Mateusz Cicheński

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

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Programowanie obiektowe

KOTLIN. Język programowania dla Androida

Podstawy i języki programowania

Podstawy języka Java. przygotował:

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

Programowanie obiektowe

Laboratorium Programowania Kart Elektronicznych

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Tematy projektów C++ Programowanie obiektowe Mateusz Cicheński

Czym jest stos i sterta?

Programowanie obiektowe

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

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

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

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Aplikacje RMI

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

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

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

Współbieżność w środowisku Java

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

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

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

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

Podstawy otwartych języków programowania Przechowywanie danych

76.Struktura oprogramowania rozproszonego.

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

Wywoływanie metod zdalnych

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

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Klasy abstrakcyjne, interfejsy i polimorfizm

UML a kod. C++, Java i C#

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

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

Definicje klas i obiektów. Tomasz Borzyszkowski

Podstawy Języka Java

Programowanie i projektowanie obiektowe

Języki i paradygmaty programowania - 1

Programowanie i projektowanie obiektowe

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

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Języki i metody programowania Java INF302W. Wykład 1 (część 1) na podstawie Autor Dr inż. Zofia Kruczkiewicz

Programowanie współbieżne i rozproszone

Rozdział 4 KLASY, OBIEKTY, METODY

Transkrypt:

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 zajęć

Czym jest Java?

Java jest prosta! public class HelloWorld { public static void main(string[] args) { System.out.println("Hello world!"); } } Nie ma w niej: plików nagłówkowych i preprocesora, operacji arytmetycznych na wskaźnikach, struktur, unii, dziedziczenia wielobazowego, wzorców, niejawnej konwersji typów etc. Cechy charakterystyczne

Java jest zorientowana obiektowo! klasy i interfejsy! aplikacja to zbiór komunikujących się poprzez odpowiednie interfejsy klas kod źródłowy jest czytelniejszy i łatwiejszy w utrzymaniu i rozwoju oczywiście wszystko zależy od programisty! Cechy charakterystyczne

Java jest niezależna od architektury! Kompilator języka Java (ByteCode) Maszyna wirtualna Javy (interpreter lub JIT compiler) HelloWorld.java HelloWorld.class Hello world! Cechy charakterystyczne

Java jest wielowątkowa! wątki Javy w miarę możliwość są przekładane na wątki systemu wsparcie dla operacji synchronizacji (np. sekcja krytyczna) pomiędzy wątkami typy danych thread-safe bezpieczne w użyciu dla wielowątkowych aplikacji Cechy charakterystyczne

Java nadzoruje pamięć! brak wskaźników dostęp do obiektów przez referencje zarządca pamięci GarbageCollector zwalnia pamięć zajętą przez nieużywane obiekty osobny wątek obiekty przypisywane są do kolejnych epok życia lub usuwane w przypadku braku odniesień do tych obiektów Cechy charakterystyczne

Java jest odporna na błędy i bezpieczna! ściśle określona forma kodu pośredniego kontrola dostępów do pamięci obsługa błędów przez wyjątki ograniczenie dostępu do zasobów (sandbox) Cechy charakterystyczne

Java jest szybka! jak na język interpretowany ;) wolniejsza od języków kompilowanych do native code JVM może kompilować bytecode do natywnego kodu żeby poprawić efektywność szybkość może nie mieć znaczenia jeśli mamy sporo operacji blokujących działanie programu (komunikacja sieciowa, czekanie na interakcję z użytkownikiem) Cechy charakterystyczne

Java jest rozszerzalna i dynamiczna! liczne biblioteki rozszerzające możliwości języka (w tym także napisane w innym języku) możliwość załadowania brakujących bibliotek w trakcie działania aplikacji Cechy charakterystyczne

Realizacja projektów na studia Implementacja strony serwerowej aplikacji (tzw. backend) Implementacja platform developerskich (JavaFX) Oprogramowanie urządzeń mobilnych (Android) Tworzenie aplikacji webowych (skalowalne, stabilne i niezawodne) Przykładowe zastosowania

Bardzo podobna do języka C++ Różnice w notacji, np.: C++: class A : public B Java: class A extends B Język zorientowany obiektowo, więc przykładowo nie możemy zmieniać widoczności metod/pól obiektu, po którym dziedziczymy, bo ograniczylibyśmy jego możliwości (innymi słowy obiekt klasy A musi dostarczać tego samego interfejsu co obiekty klasy B, ale może go rozszerzać) Składnia języka

Typy pierwotne boolean, byte, short, int, long, char, float, double Typy referencyjne klasy (w tym także Boolean, Integer etc.) interfejsy tablice null obiekt bez typu (trivia: I call it my billion-dollar mistake., Tony Hoare) Podstawowe typy danych

abstract =0; w C++ import #include<> w C++ interface oznaczenie interfejsu package oznaczenie pakietu (analogicznie do namespace w C++) super wywołanie konstruktora klasy nadrzędnej (lub metody tej klasy jeśli jest ona przeciążona przez klasę potomną) volatile wymusza sprawdzenie wartości w pamięci zamiast pobrania jej z cache wątku Wybrane słowa kluczowe

assert testowanie założeń programu instanceof sprawdzenie czy obiekt jest wystąpieniem danej klasy implements wskazanie implementowanych interfejsów synchronized wskazanie sekcji krytycznej dla kodu wielowątkowego transient wskazanie pól nieserializowanych Wybrane słowa kluczowe c.d.

Pytania? http://bit.ly/oop2015

Tematy projektów Java Programowanie obiektowe Mateusz Cicheński

Projekt z Javy składa się z dwóch etapów: Realizacja wybranej przez siebie gry dla dwóch graczy Napisanie sztucznej inteligencji w celu maksymalizacji wyniku / wygrania gry Zespół składa się z ~5 osób. Pierwszy etap jest realizowany wspólnie, drugi etap indywidualnie. Opis projektu

Terminy realizacji: Do 7 grudnia 2015 podział na grupy i wybranie tematów Do północy, 21 grudnia 2015 przesłanie sprawozdania (i najlepiej działający prototyp) Do dnia 18 stycznia 2016 przesłanie działającej aplikacji oraz indywidualnych algorytmów (ewentualnie paczki z algorytmami grupy wraz z grą) i oddanie projektów w trakcie zajęć tego dnia Harmonogram

Finalny projekt etapu pierwszego powinien zawierać: Kod źródłowy aplikacji Uruchamialny plik.jar Sprawozdanie Imiona i nazwiska twórców Podział pracy nad aplikacją na członków zespołu (najlepiej w postaci wykonanych zadań) Opis działania aplikacji Projekt algorytmu etapu drugiego to: Kod źródłowy zaimplementowanego algorytmu Sprawozdanie opisujące strategię Wymagania

Zespół powinien podzielić się na następujące role: Kierownik projektu jest odpowiedzialny za komunikację z prowadzącym i wyjaśnianie wszelkich wątpliwości Projektanci aplikacji [2 osoby] ich zadanie to przygotowanie projektu aplikacji diagram klas/interfejsów wraz z umiejętnością wytłumaczenia co/jak/dlaczego zostało zrealizowane Programiści [2 osoby] Programista GUI jest odpowiedzialny za przygotowanie graficznego interfejsu dla aplikacji (Projektanci aplikacji powinni uwzględnić jego potrzeby!) Sposób realizacji

Programiści Prowadzący Kierownik/programista GUI Projektanci Przykład podziału na role

Sprawozdanie Czy posiada wszystkie wymagane elementy? Dokładność opisu aplikacji i późniejsza zgodność z przedstawionym projektem Realizacja projektu Czy aplikacja działa? Rozliczenie poszczególnych osób względem ich zadań i wykonania (specyficzne dla ról) Dodatkowe punkty za pozycję w rankingu po wykonaniu turnieju każdy z każdym w ramach danego zespołu Oceniane aspekty