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



Podobne dokumenty
Programowanie urządzeń mobilnych

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

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

Wykład 4: Klasy i Metody

Wykład 2: Podstawy Języka

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

Programowanie obiektowe

Java: interfejsy i klasy wewnętrzne

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Podstawy programowania obiektowego

Wprowadzenie do języka Java

Java Język programowania

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

Programowanie obiektowe

Java EE produkcja oprogramowania

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

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

Tworzenie aplikacji w języku Java

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

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

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

Podstawy i języki programowania

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

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

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

Podstawowe części projektu w Javie

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

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

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

Dokumentacja do API Javy.

Programowanie obiektowe

Platformy Programistyczne Podstawy języka Java

Programowanie w Internecie. Java

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

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

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

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

Programowanie obiektowe

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

KOTLIN. Język programowania dla Androida

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

Programowanie obiektowe

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

Programowanie obiektowe zastosowanie języka Java SE

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

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

Polimorfizm. dr Jarosław Skaruz

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

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

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

Rozdział 4 KLASY, OBIEKTY, METODY

Multimedia JAVA. Historia

Wykład 5: Więcej o Klasach i Metodach

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

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

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

Java jako język programowania

Programowanie wieloplatformowe w Java

1 Atrybuty i metody klasowe

Podstawy Programowania Obiektowego

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Programowanie, algorytmy i struktury danych

Microsoft IT Academy kurs programowania

Programowanie 2. Język C++. Wykład 3.

Programowanie obiektowe i język Java

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

Definiowanie własnych klas

Wykład 5: Klasy cz. 3

Spis treści. 1 Java T M

Definicje klas i obiektów. Tomasz Borzyszkowski

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Języki i techniki programowania Ćwiczenia 2

Wykład 8: klasy cz. 4

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

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

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

Programowanie współbieżne i rozproszone

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Programowanie obiektowe

Java-wykład. Dorota Pylak

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

Wykład 7: Pakiety i Interfejsy

Java EE produkcja oprogramowania

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

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Pytania sprawdzające wiedzę z programowania C++

Java niezbędnik programisty spotkanie nr 3. Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja...

Klasy abstrakcyjne i interfejsy

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Język ludzki kod maszynowy

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Materiały do zajęć VII

Programowanie obiektowe - 1.

Programowanie w Javie - wykład 2

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Dziedziczenie. dr Jarosław Skaruz

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

Wykład 2 Składnia języka C# (cz. 1)

Transkrypt:

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 poziomu, w pełni obiektowym, przenośnym między platformami. 2

Paradygmat programowania obiektowego 1. Wszystko jest obiektem. 2. Program jest zbiorem obiektów mówiących sobie nawzajem co mają robić poprzez wysyłanie wiadomości. 3. Każdy obiekt składa się z innych obiektów. 4. Każdy obiekt ma określony typ. 5. Wszystkie obiekty tego samego typu mogą otrzymywać takie same wiadomości. [Alan Kay - jeden z twórców języka SmallTalk] Obiekt posiada stan, zestaw zachowań oraz tożsamość. [Grady Booch - jeden z twórców języka UML] 3

class najważniejsze słowo w języku Java Słowo class wprowadza do programu nowy, abstrakcyjny typ danych nazywany klasą. Klasa: opisuje grupę obiektów mających identyczną charakterystykę, zawiera: zestaw atrybutów opisujących dany obiekt, interfejs klasy - metody (funkcje składowe) pozwalające wpływać na stan obiektu. 4

Obiekt instancja klasy Obiekt opisuje konkretnego przedstawiciela klasy. Każdy obiekt należy do określonej klasy opisującej jego charakterystykę i zachowanie. Każdy obiekt posiada swój własny stan (wartości pól składowych). Może istnieć dowolna liczba obiektów danej klasy. 5

Lampka przykład klasy i jej interfejsu Nazwa klasy: Lampka Atrybuty (pola składowe) klasy: wlaczona - wartość logiczna producent - tekst jasnosc - liczba zarowka - obiekt innej klasy Interfejs (metody) klasy: wlacz() wylacz() rozjasnij() sciemnij() 6

Typy proste wyjątek od obiektowości boolean (Boolean) false char - 2 bajty (Character) \u0000 byte - 1 bajt (Byte) 0 short - 2 bajty (Short) 0 int - 4 bajty (Integer) 0 long - 8 bajtów (Long) 0L float - 4 bajty (Float) 0.0f double - 8 bajtów (Double) 0.0d void (Void) Brak typów unsigned. Wielkość typów niezależna od platformy. Każdy typ prosty ma odpowiednik w postaci klasy opakowującej typ prosty. Java udostępnia dwa typy przeznaczone do obliczeń wysokiej precyzji: BigInteger oraz BigDecimal. Nie są to jednak typy proste, ale klasy. Typy proste użyte jako pola klasy są automatycznie inicjowane wartościami domyślnymi, natomiast zmienne lokalne nie są automatycznie inicjowane. 7

Klasy opakowujące sposób na referencje do typów podstawowych Klasa opakowująca typ prosty pozwala tworzyć obiekty tego typu oraz referencje do tych obiektów. Klasy opakowujące są klasami finalnymi - wartości obiektów tych klas nie mogą być zmieniane. Każda modyfikacja wartości powoduje utworzenie nowego obiektu. Integer a = 1; Integer b = a; Integer c = b; // a, b i c wskazują na ten sam obiekt a = 5; // tworzony jest nowy obiekt inicjowany wartością 5 (a=5,b=c=1) b++; // tworzony jest nowy obiekt inicjowany wartością 2 (a=5,b=2,c=1) // a, b, c wskazują na inne obiekty! 8

Tworzenie klas i obiektów definiowanie nowych typów danych Utworzenie klasy: class NazwaKlasy { /* metody i pola składowe */ } Utworzenie instancji klasy (obiektu): NazwaKlasy a = new NazwaKlasy(); Słowo new powoduje utworzenie nowego obiektu typu NazwaKlasy. a to referencja do tego obiektu. NazwaKlasy b = a; // a i b wskazują na ten sam obiekt! Nie ma konieczności jawnego zwalniania pamięci przydzielonej przez new! 9

Atrybuty pola składowe klasy class A { int p1; // typ prosty zainicjowany wartością domyślną 0 int p2 = 10; // typ prosty zainicjowany liczbą 10 Integer p3; // referencja do obiektu zainicjowanego wartością domyślną } Integer p4 = new Integer(10); // referencja do obiektu zainicjowanego wartością 10 B p6; // równoznaczne z: B p5 = new B(); Dostęp do pól składowych odbywa się poprzez podanie nazwy obiektu oraz nazwy pola połączonych kropką. A a = new A(); a.p1 = 20; 10

Metody funkcje składowe klasy class A{ void f1(){ /* instrukcje */ } int f2(int x, Integer y, B b){ /* instrukcje */ } B f3(){ /* instrukcje */ } } Aby wysłać wiadomość (żądanie wykonania metody) do obiektu należy użyć nazwy obiektu oraz nazwy metody połączonych kropką. A a = new A(); a.f1(); // wysłanie do obiektu a żądania wykonania metody f1 int i = a.f2(10,20,new B()); B b = a.f3(); W Javie funkcje mogą być tworzone tylko wewnątrz klasy! Funkcje nie mogą mieć domyślnych wartości parametrów. 11

this dostęp do atrybutów wewnątrz metod Wewnątrz metod klasy dostępna jest zmienna this będąca referencją do obiektu na rzecz którego wywoływana jest metoda. Dostęp do pól klasy możliwy jest za pomocą zmiennej this lub bezpośrednio poprzez nazwę pola klasy. class A { int p; void f1(){ & & p = 1; & & this.p = 2; & & System.out.println(p); // 2 & & int p = 3; & & System.out.println(p); // 3 & & System.out.println(this.p); // 2 } } System.out.print( ) - wypisanie na ekran wartości przekazanej jako parametr. System.out.println( ) - wypisanie i przejście do nowej linii. 12

C++ vs. Java co wolno w C++, a w Javie nie przesłanianie zmiennych - C++ OK, Java błąd { } int x = 12; { } int x = 96; // błąd użycie niezainicjalizowanych zmiennych - C++ OK, Java błąd podczas kompilacji! int x; int y=x; // błąd zwalnianie pamięci - w Javie nie ma konieczności jawnego zwalniania przydzielonej pamięci. Zajmuje się tym odśmiecacz (ang. garbage collector), który zlicza referencje do obiektu i jeśli już żadna nie wskazuje na obiekt zwalnia pamięć. Brak wycieków pamięci! 13

Instrukcje sterujące czyli nic nowego... Instrukcje warunkowe: if ( warunek ) instrukcje; else instrukcje; switch ( zmienna ) { case wartość: instrukcje; break; default: instrukcje; } Pętle: do { instrukcje } while ( warunek ) while ( warunek ) { instrukcje } for ( inicjalizacja; warunek; krok ) { instrukcje } W języku Java warunek musi być wyrażeniem typu logicznego. Nie jest wykonywana konwersja typów. if ( i = 10 ) // błąd int a = 0; if ( a ) // błąd 14

Witaj obiektowy świecie! pierwszy program w Javie public class Witaj { & public static void main(string[] args) { & & /* Tu program rozpoczyna swoje działanie*/ & & System.out.print("Witaj obiektowy świecie!"); & } } Nazwa pliku taka sama jak nazwa klasy! Witaj.java 15

Kompilacja i uruchamianie Pliki źródłowe w języku Java: nazwa pliku identyczna jak nazw klasy publicznej rozszerzenie.java Kompilacja: javac Witaj.java Pliki wykonywalne: rozszerzenie.class Uruchamianie programu: java Witaj Programy stworzone w Javie podlegają kompilacji do bytecode u i są uruchamiane w maszynie wirtualnej Javy 16