Programowanie i projektowanie obiektowe

Podobne dokumenty
Podstawy i języki programowania

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

Programowanie obiektowe

Java Podstawy. Michał Bereta

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Definiowanie własnych klas

Programowanie obiektowe

Języki i techniki programowania Ćwiczenia 2

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Wprowadzenie do języka Java

Platformy Programistyczne Podstawy języka Java

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

Podstawy programowania obiektowego

Programowanie i projektowanie obiektowe

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

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

Technologie i usługi internetowe cz. 2

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

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

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

Modelowanie i Programowanie Obiektowe

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

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

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

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

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

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

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

Programowanie obiektowe

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

Programowanie obiektowe

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

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

Podstawowe części projektu w Javie

Definiowanie własnych klas


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

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

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

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

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

Metody Metody, parametry, zwracanie wartości

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

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

KOTLIN. Język programowania dla Androida

Programowanie i projektowanie obiektowe

Przypomnienie o klasach i obiektach

Java: interfejsy i klasy wewnętrzne

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

1 Powtórzenie wiadomości

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

Aplikacje w środowisku Java

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java:

Microsoft IT Academy kurs programowania

Polimorfizm. dr Jarosław Skaruz

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

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

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

Język ludzki kod maszynowy

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

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Podstawy Języka Java

Programowanie, algorytmy i struktury danych

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

Podstawy Programowania Obiektowego

Kurs programowania. Wykład 9. Wojciech Macyna

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

Programowanie obiektowe

Klasy i obiekty cz II

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

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

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

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

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

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Programowanie Komputerów

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

MATERIAŁY DO ZAJĘĆ II

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Dokumentacja do API Javy.

Programowanie obiektowe

DYNAMICZNE PRZYDZIELANIE PAMIECI

Wykład 4: Klasy i Metody

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski

Programowanie komputerowe. Zajęcia 4

Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany

KLASY, INTERFEJSY, ITP

Programowanie RAD Delphi

Podstawy Programowania.

Programowanie obiektowe

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

Java Język programowania

Podstawy i języki programowania

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

Programowanie obiektowe

Programowanie w Internecie. Java

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Programowanie obiektowe

Szablony funkcji i szablony klas

Transkrypt:

Programowanie i projektowanie obiektowe Klasy i obiekty Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 1 / 13

Typy danych (w Javie) Typy pierwotne typ wartości logicznych: boolean typy całkowitoliczbowe: byte, short, int, long, char typy zmiennopozycyjne: float, double P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 2 / 13

Typy danych (w Javie) Typy pierwotne typ wartości logicznych: boolean typy całkowitoliczbowe: byte, short, int, long, char typy zmiennopozycyjne: float, double Typy referencyjne typy klas typy interfejsów typy tablic P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 2 / 13

Typy pierwotne Zmienna typu pierwotnego zawiera pojedynczą wartość. int i; double f=0.5; typ wartości boolean true, false byte 128 127 short 32, 768 32, 767 int 2, 147, 483, 648 2, 147, 483, 647 long 9, 223, 372, 036, 854, 775, 808 9, 223, 372, 036, 854, 775, 807 char 0 255 float double P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 3 / 13

Typy referencyjne Zmienna typu referencyjnego ma wartość null lub wskazuje na wartość odpowiedniego typu. Wartości typów referencyjnych mogą się zmieniać w czasie. int i,j; i = 5; j = i; System.out.format("i: %d j: %d\n", i, j); j = 3; System.out.format("i: %d j: %d\n", i, j); i: 5 j: 5 i: 5 j: 3 P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 4 / 13

Typy referencyjne c.d. class Test { int val; Test obi = new Test(); obi.val = 5; Test obj = obi; System.out.format("obI.val: %d obj.val: %d\n", obi.val, obj.val obj.val = 3; System.out.format("obI.val: %d obj.val: %d\n", obi.val, obj.val obi.val: 5 obj.val: 5 obi.val: 3 obj.val: 3 P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 5 / 13

Programowanie obiektowe Cel Typy pierwotne (i tablice) są niewygodne do opisywania rzeczywistości. Obiekty odpowiadają rzeczywistym bytom. Podobne obiekty grupowane są w klasy. Forma i materia klasa i obiekty. Historia Simula 67 opracowana do modelowania statków (Norsk Regnesentral) Smalltalk pierwszy nowoczesny język obiektowy (dziedziczenie) (Palo Alto Research Center) C++, Java, Objective-C P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 6 / 13

Programowanie obiektowe c.d. Najważniejsze cechy Obiekty oprócz atrybutów zawierają metody. Dziedziczenie Polimorfizm P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 7 / 13

Przykład polimorfizm abstract class Animal { String talk(); class Cat extends Animal { String talk() { return "Meow!"; class Dog extends Animal { String talk() { return "Woof!"; static void write(animal a) { System.out.println(a.talk()); static void main() { write(new Cat()); write(new Dog()); P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 8 / 13

Klasy w Javie class Pusta { P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 9 / 13

Klasy w Javie class Pusta { Atrybuty class Osoba { String imię; String nazwisko; P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 9 / 13

Klasy w Javie class Pusta { Atrybuty class Osoba { String imię; String nazwisko; Metody class Osoba { String imię; String nazwisko; String imię() { return imię; String nazwisko() { return nazwisko; P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 9 / 13

Klasy w Javie c.d. Konstruktor class Osoba { String imię; String nazwisko; Osoba(String imię, String nazwisko) { this.imię = imię; this.nazwisko = nazwisko; String imię() { return imię; String nazwisko() { return nazwisko; P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 10 / 13

Zadanie 1 Stos/kolejka Zadanie Zaimplementuj kolejkę/stos liczb całkowitych (typu int) o pojemności 100 (można użyć tablicy). P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 11 / 13

Zadanie 1 Stos/kolejka Zadanie Zaimplementuj kolejkę/stos liczb całkowitych (typu int) o pojemności 100 (można użyć tablicy). Wskazówki Trzeba zaimplementować metody void enqueue(int i)/int dequeue() (dla kolejki), albo void push(int i)/int pop() dla stosu. P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 11 / 13

Zadanie 1 Stos/kolejka Zadanie Zaimplementuj kolejkę/stos liczb całkowitych (typu int) o pojemności 100 (można użyć tablicy). Wskazówki Trzeba zaimplementować metody void enqueue(int i)/int dequeue() (dla kolejki), albo void push(int i)/int pop() dla stosu. Modyfikacje Użyj list, aby uzyskać nieograniczoną pojemność. P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 11 / 13

Zadanie 2 Wielkie liczby Zadanie Zdefiniuj klasę Liczba, która przechowuje w tablicy cyfry liczby dziesiętnej. Zdefiniuj operacje wypisywania liczby, nadawania jej wartości (w postaci konstruktora przyjmującego liczbę typu long) oraz mnożenia przez liczbę typu int. W przypadku gdy w czasie mnożenia okaże się, że tablica jest za mała, procedura mnożąca powinna kopiować jej zawartość do większej. Zdefiniuj wreszcie metodę silnia, która policzy silnię zadanej jako parametr liczby typu int. Wskazówki Długość tablicy przechowującej cyfry można podwajać, kiedy się kończy. Warto zrobić do tego oddzielną metodę. P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 12 / 13

Zadanie 3 Drzewo wyszukiwania binarnego Zadanie Zaimplementować drzewo wyszukiwania binarnego, do którego można: 1 wkładać liczby całkowite (void insert(int val)), 2 sprawdzać czy i na jakiej głębokości liczba występuje w drzewie (int search(int val)), 3 znajdować najmniejszą i największą liczbę w drzewie (int min(), int max()), 4 znajdować największą liczbę należącą do drzewa, która jest mniejsza od zadanej (int upper(int val)), 5 znajdować najmniejszą liczbę należącą do drzewa, która jest większa od zadanej (int lower(int val)). Wskazówki Drzewo może być puste. P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 13 / 13