Programowanie obiektowe

Podobne dokumenty
Wykład 4: Klasy i Metody

Podstawy programowania obiektowego

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

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

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

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

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

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

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

Programowanie obiektowe

Programowanie obiektowe

Definicje klas i obiektów. Tomasz Borzyszkowski

Aplikacje w środowisku Java

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

Zaawansowane programowanie w języku C++ Klasy w C++

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

Enkapsulacja, dziedziczenie, polimorfizm

Wykład 2: Podstawy Języka

Definiowanie własnych klas

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Programowanie obiektowe

Materiały do zajęć VII

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

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

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

Wykład 5: Klasy cz. 3

Wykład 8: klasy cz. 4

Programowanie obiektowe

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

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

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

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

PARADYGMATY PROGRAMOWANIA Wykład 2

Dokumentacja do API Javy.

Platformy Programistyczne Podstawy języka Java

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

Polimorfizm, metody wirtualne i klasy abstrakcyjne

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

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

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

Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów

Programowanie obiektowe

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

Java Język programowania

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

Wykład 6: Dziedziczenie

Przypomnienie o klasach i obiektach

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

Rozdział 4 KLASY, OBIEKTY, METODY

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

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Programowanie w Javie - wykład 2

PARADYGMATY PROGRAMOWANIA Wykład 4

Wykład 02. Programowanie obiektowe. Maciej Wołoszyn 10 marca Spis treści.

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

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

Programowanie obiektowe

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

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

Programowanie obiektowe

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

Dziedziczenie. dr Jarosław Skaruz

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Programowanie obiektowe

Obiektowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

KLASY, INTERFEJSY, ITP

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

Wstęp do ruby dla programistów javy

Wprowadzenie do języka Java

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

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

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

Programowanie obiektowe

Java: interfejsy i klasy wewnętrzne

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

Wyliczanie wyrażenia obiekty tymczasowe

Wykład 7: Pakiety i Interfejsy

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

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

1 Atrybuty i metody klasowe

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

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

Plik klasy. h deklaracje klas

Programowanie w Javie wykład 7 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Bloki inicjalizacyjne

Tworzenie aplikacji w języku Java

Programowanie Komputerów

Programowanie urządzeń mobilnych

Spis treści. 1 Java T M

Programowanie obiektowe

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

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

Metody Metody, parametry, zwracanie wartości

Podstawowe części projektu w Javie

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

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

Klasy i obiekty cz II

Podstawy Języka Java

Transkrypt:

Programowanie obiektowe Wykład 3: Tworzenie i usuwanie obiektów 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 1 Deklaracje pól klasy class Klasa1 { int i; Klasa2 k = new Klasa2(); char c= x ; byte h=0xa5; 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 2 1

Deklaracje metod klasy class Klasa1 { int metoda1(char p1, int p2) { int i; return i; void metoda2(float p1) { 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 3 Pola i metody statyczne static element (pole lub metoda) jest elementem klasy (a nie obiektu) Przykład: class Klasa1 { int poleobiektu=0; int metodaobiektu (){ return poleobiektu; static int poleklasy=0; static int metodaklasy(){ return poleklasy; Klasa1 o1=new Klasa1(); Klasa1 o2=new Klasa1(); o1.poleobiektu++; o1.metodaobiektu(); 1 o2.poleobiektu++; o2.metodaobiektu(); 1 o1.poleklasy++; o1.metodaklasy(); 1 o2.poleklasy++; o2.metodaklasy(): 2 Klasa1.poleKlasy++; Klasa1.metodaKlasy(); 3 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 4 2

Zasady stosowania elementów statycznych Metody i pola statyczne można wywoływać z klasy, Metody statyczne mogą się odwoływać tylko do pól i metod statycznych, Pola statyczne są wspólne dla wszystkich instancji danej klasy, Pola statyczne są inicjowane wcześniej niż inne pola (przy pierwszym odwołaniu do klasy). 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 5 Konstruktor Metoda wywoływana przy tworzeniu każdego obiektu: nazwa identyczna jak nazwa klasy nie zwraca żadnej wartości konstruktor domyślny bez parametrów 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 6 3

Przykład class Tree { int size; Tree(int i) { size=i; new Tree(5); new Tree(); new Tree(true); 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 7 Po co konstruktor? class Data { int rok, miesiac, dzien; Data(int r,m,d) { rok=r; miesiac = m dzien = d; Data dd = new Data(2010, 3, 8); Data dd = new Data(2010, 2, 30);??? 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 8 4

Po co konstruktor? class Data { int rok, miesiac, dzien; Data(int r,m,d) { if (r>0) rok=r; else blad(); if (m>=1 && m<=12) miesiac = m; else blad(); if (d>=1) if (m==2) if( przestepny(r) && d<=29) d<=28 ) dzien=d; else blad(); else if (d<=30) dzien =d; else if ((m==1 m==3 m==5 m==7 m==8 m==10 m==12 ) && d<=31) dzien = d; else blad(); else blad() Data dd = new Data(2010, 2, 30); blad()!!! Ale: dd.dzien=29;??? 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 9 Przeciążanie nazw metod (Overloading) Kilka metod o takiej samej nazwie, różniących się: liczbą argumentów typem argumentów typem zwracanym Np. int m1(int i) int m1(long i) m1(5) m1(5l) Dotyczy również konstruktorów!!! 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 10 5

this adres obiektu w którym jest użyte Np. public class Leaf{ int i=0; Leaf increment() { i++; return this; 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 11 Przykład 1 public class Kwiat { int liczbaplatkow = 0; String s = new String(""); Kwiat(int platki) { liczbaplatkow = platki; System.out.println( Konstruktor 1: LiczbaPlatkow=" + liczbaplatkow); Kwiat(String ss) { System.out.println( Konstruktor 2: s=" + ss); s = ss; Kwiat(String s, int platki) { this(platki); this.s = s; System.out.println( Konstruktor 3"); Kwiat() { this( aster", 47); System.out.println( Konstruktor domyslny"); void print() { System.out.println( LiczbaPlatkow = " + liczbaplatkow + " s = "+ s); public static void main(string[] args) { Kwiat x = new Kwiat(); x.print(); 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 12 6

Przykład 2 class K1 { static int i; static m1(int i) { this.i=i; 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 13 Usuwanie obiektów Garbage collection: System.gc() metoda finalize(): System.runFinalization() Przykład: O1 o; o=new O1(); o=new O1(); o=null; o O1 O1 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 14 7

Przykład class Book { boolean checkedout = false; Book(boolean checkout) { checkedout = checkout; void checkin() { checkedout = false; public void finalize() { if(checkedout) System.out.println("Error: checked out"); public class TerminationCondition { public static void main(string[ ] args) { Book novel = new Book(true); novel.checkin(); // Teraz można usunąć novel= new Book(true); novel=null; // Teraz będzie sygnalizowany błąd: System.gc(); 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 15 Inicjalizacja pól Inicjalizacja domyślna: pola liczbowe: 0, 0.0 boolean: false char: \0 zmienne obiektowe: null Inicjalizacja w deklaracjach: class Cinit { int i=5; int j=f(i); Obj o=new Obj(); 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 16 8

Podsumowanie Tworzenie obiektów Rola konstruktora: kontrola + inicjalizacja Inicjalizacja Kolejność inicjalizacji: domyślna, w deklaracjach, w konstruktorze Najpierw pola statyczne Nie są inicjalizowane zmienne lokalne Usuwanie obiektów Nie ma destruktora w Javie! 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 17 Pytania 1. Omówić znaczenie zmiennych i metod statycznych. 2. Omówić rolę konstruktora w klasach. 3. Na czym polega i czego dotyczy przeciążenie nazw. 4. Omówić sposoby inicjalizacji pól w obiektach. 5. Omówić zasady inicjalizacji obiektów. 6. Co oznacza słowo this. Podać przykłady zastosowania. 7. Omówić cel i zasady stosowania metody finalize(). 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 18 9

Koniec 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 19 10