Programowanie obiektowe

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie obiektowe"

Transkrypt

1 Programowanie obiektowe I. Obiekty i klasy Małgorzata Prolejko OBI JA16Z03

2 Plan Klasy i obiekty Odnośniki (referencje) Używanie klas predefiniowanych Tworzenie własnych klas Relacje pomiędzy klasami: dziedziczenie i asocjacja Dostępność elementów klasy Enkapsulacja Konstruktory Konstruktor bezargumentowy. Konstruktory przeciążone, Wywołanie innego konstruktora Pola i metody Parametry metod Przeciążanie metod Inicjacja pól wartościami domyślnymi Pola i metody statyczne Stałe statyczne Metoda main() Metody fabryczne Niszczenie obiektów Pakiety Importowanie klas. Dodawanie klas do pakietu. Zasięg pakietu Dokumentacja Dokumentacja klas, metod i pól składowych Generowanie dokumentacji. Wskazówki dotyczące projektowania prostych klas

3 Klasy i obiekty Odnośniki (referencje) klasa definicja, projekt obiektu class Pracownik{ obiekt instancja klasy, zaalokowana pamięć o zdefiniowanej w klasie strukturze p = new Pracownik(); referencja wskaźnik na obiekt obszar pamięci gdzie znajduje się obiekt

4 Klasy i obiekty Używanie klas predefiniowanych import java.util.date; public class Test1 { public static void main(string[] args){ Date d = new Date(); System.out.println(d.getTime()); Import jednej klasy z pakietu Import pakietu Utworzenie obiektu Wywołanie metody import java.text.simpledateformat; import java.util.*;... Calendar c = new GregorianCalendar(2016,00,01); SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss"); System.out.println(sdf.format(c.getTime())); package test1

5 Klasy i obiekty Ćwiczenie 1. Napisz program wyświetlający na konsoli aktualną datę w formacie dd.mm.yyyy.

6 Klasy i obiekty Tworzenie własnych klas Definicja klasy powinna zaczynać się od słowa kluczowego public class, a następnie nazwa klasy pisana z wielkiej litery. Taką samą nazwę jak klasa powinien mieć plik.java w której się ona znajduje. public class Nazwa{ pole1; pole2;... konstruktor1 konstruktor2... metoda1 metoda2 W nawiasach klamrowych znajduje się ciało klasy. Kolejność elementów jest dowolna, ale należy przyjąć pewną konwencję i się jej trzymać, aby kod był bardziej czytelny. package test2

7 Klasy i obiekty Tworzenie własnych klas public class Pracownik{ private String nazwisko; public Pracownik(String n){ nazwisko = n; public String getnazwisko(){ return nazwisko; Pracownik p; p = new Pracownik("Nowak"); System.out.println(p.getNazwisko()); Deklaracja klasy Pole prywatne Konstruktor Metoda publiczna Deklaracja zmiennej Stworzenie obiektu Wywołanie metody package test2

8 Klasy i obiekty public class Ksiazka{ private String tytul; private String autor; private String issn; public Ksiazka(String t,string a, String i){ tytul = t; autor = a; issn = i; public String gettytul(){ return tytul; public void settytul(string t){ tytul=t; Tworzenie własnych klas public String getautor(){ return autor; public String getissn(){ return issn; package test2

9 Klasy i obiekty Ćwiczenie 2. Utwórz klasę obsługującą Przedmiot na studiach. Dodaj pola i metody, które uważasz za istotne. Stwórz 2 różne obiekty i wyświetl na ekranie informacje o nich.

10 Klasy i obiekty Relacje pomiędzy klasami: dziedziczenie i asocjacja Dziedziczenie - powielenie pól i metod klasy bazowej oraz rozszerzenie ich o nowe relacja JEST "Pracownik JEST iem" public class Pracownik extends { Pracownik

11 Klasy i obiekty Relacje pomiędzy klasami: dziedziczenie i asocjacja Dziedziczenie - powielenie pól i metod klasy bazowej oraz rozszerzenie ich o nowe relacja JEST "Pracownik JEST iem" public class Pracownik extends { Asocjacja - zawieranie w klasie pól będących referencjami do innych obiektów relacja MA (UŻYWA) " MA zarezerwowane książki" public class { private Ksiazka[] rezerwacjeksiazek; Książka

12 Klasy i obiekty Relacje pomiędzy klasami: Diagramy UML Dziedziczenie Agregacja całkowita Agregacja częściowa Asocjacja Zależność Pracownik public class Pracownik extends { Jeden obiekt JEST RODZAJEM innego. Pracownik JEST RODZAJEM a.

13 Klasy i obiekty Relacje pomiędzy klasami: Diagramy UML Dziedziczenie Agregacja całkowita Agregacja częściowa Asocjacja Zależność Pracownik public class Pracownik extends {

14 Klasy i obiekty Relacje pomiędzy klasami: Diagramy UML Dziedziczenie Agregacja całkowita Agregacja częściowa Asocjacja Zależność Pracownik Karta Jeden obiekt ZAWIERA inny, który nie może istnieć samodzielnie. ZAWIERA(posiada) Kartę. Karta nie może istnieć bez a.

15 Klasy i obiekty Relacje pomiędzy klasami: Diagramy UML Dziedziczenie Agregacja całkowita Agregacja częściowa Asocjacja Zależność Pracownik Karta public { private Karta kartabiblioteczna; public (){ kartabiblioteczna = new Karta();

16 Klasy i obiekty Relacje pomiędzy klasami: Diagramy UML Dziedziczenie Agregacja całkowita Agregacja częściowa Asocjacja Zależność Pracownik Karta Telefon Jeden obiekt ZAWIERA inny, który może istnieć samodzielnie. ZAWIERA(posiada) Telefon. Telefon może istnieć bez a.

17 Klasy i obiekty Relacje pomiędzy klasami: Diagramy UML Dziedziczenie Agregacja całkowita Agregacja częściowa Asocjacja Zależność Pracownik Karta Telefon public { private Telefon telefon; public (Telefon t){ telefon = t;

18 Klasy i obiekty Relacje pomiędzy klasami: Diagramy UML Dziedziczenie Agregacja całkowita Agregacja częściowa Asocjacja Zależność Pracownik Karta Telefon Książka Jeden obiekt KORZYSTA z innego niezależnego obiektu. KORZYSTA(wypożycza) Książki. Książki nie zależą od a.

19 Klasy i obiekty Relacje pomiędzy klasami: Diagramy UML Dziedziczenie Agregacja całkowita Agregacja częściowa Asocjacja Zależność Pracownik Karta Telefon Książka public { private List<Książka> wypozyczenia; public void wypozycz(ksiazka k){ wypozyczenia.add(k);

20 Klasy i obiekty Relacje pomiędzy klasami: Diagramy UML Dziedziczenie Agregacja całkowita Agregacja częściowa Asocjacja Zależność Pracownik Karta Telefon Książka Rezerwacja Jeden obiekt JEST ZALEŻNY od innego. JEST ZALEŻNY od(używa obiektu) Rezerwacji.

21 Klasy i obiekty Relacje pomiędzy klasami: Diagramy UML Dziedziczenie Agregacja całkowita Agregacja częściowa Asocjacja Zależność Pracownik Karta Telefon Książka Rezerwacja public { public void wypozycz(rezerwacja r){...

22 Klasy i obiekty Ćwiczenie 3. Utwórz klasy na podstawie poniższych diagramów relacji. Biblioteka Katalog Pracownik Student Książka

23 Klasy i obiekty Modyfikatory dostępu <brak> modyfikator pól, metod i klas domyślny: widoczność klas, metod i pól wewnątrz pakietu Dostępność elementów klasy private public protected modyfikator dla pól i metod prywatnych: widoczność wewnątrz metod danej klasy modyfikator dla pól, metod i klas publicznych: widoczność w dowolnym miejscu kodu modyfikator dla pól i metod chronionych: widoczność wewnątrz pakietu lub w podklasach

24 Klasy i obiekty Enkapsulacja Zasada enkapsulacji: Dostęp do stanu obiektu można uzyskać jedynie przez wywołanie metod dostęp do pól składowych mają mieć tylko metody danej klasy publiczne mogą być pola statyczne i finalne metody nieprzydatne w operowaniu obiektem powinny być prywatne wspólne pola i metody dwóch klas powinny znaleźć się w nadklasie Enkapsulacja pozwala na modyfikację wewnętrznej implementacji klas bez konieczności modyfikacji kodu wykorzystującego tą klasę. Zapobiega też niekontrolowanemu modyfikowaniu stanu obiektów.

25 Konstruktory Konstruktor bezargumentowy Konstruktor jest funkcją wywoływaną podczas tworzenia obiektu. Powinna ona ustawiać stan obiektu poprzez inicjację pól składowych. Jeżeli konstruktor nie zostanie zdefiniowany zostanie użyty domyślny konstruktor (bezargumentowy) inicjujący pola wartościami domyślnymi public class Pracownik{ private String nazwisko; public class Pracownik{ private String nazwisko; public Pracownik(){ nazwisko = null;

26 Konstruktory Konstruktor bezargumentowy Konstruktor jest funkcją wywoływaną podczas tworzenia obiektu. Powinna ona ustawiać stan obiektu poprzez inicjację pól składowych. Jeżeli konstruktor nie zostanie zdefiniowany zostanie użyty domyślny konstruktor (bezargumentowy) inicjujący pola wartościami domyślnymi liczby 0 wartości logiczne false obiekty null

27 Konstruktory Konstruktory przeciążone Obiekt może posiadać wiele konstruktorów o różnych listach parametrów. Metody posiadające więcej niż jedną implementację (sygnaturę) są przeciążone, a interpreter dobiera odpowiednią do wywołania. public class Pracownik{ private String nazwisko; public Pracownik(){ nazwisko = "<<nienazwany>>"; public Pracownik(String n){ nazwisko = n;... Pracownik p = new Pracownik(); Pracownik k = new Pracownik("A"); package test3

28 Konstruktory Konstruktory przeciążone Obiekt może posiadać wiele konstruktorów o różnych listach parametrów. Metody posiadające więcej niż jedną implementację (sygnaturę) są przeciążone, a interpreter dobiera odpowiednią do wywołania. Jeżeli nie zostanie zdefiniowany konstruktor bezargumentowy, ale będzie dowolny inny, to nie będzie można stworzyć obiektu za pomocą wywołania bezargumentowego (zniknie konstruktor domyślny). public class Pracownik{ private String nazwisko; public Pracownik(String n){ nazwisko = n; Pracownik p = new Pracownik(); Pracownik k = new Pracownik("A");

29 Konstruktory Wywołanie innego konstruktora Jeżeli klasa posiada wiele konstruktorów, wygodnie jest wywołać inny konstruktor zamiast powielać inicjowanie pól. public class Pracownik{ private String nazwisko; private String numertel; public Pracownik(String naz){ nazwisko = naz; public Pracownik(String naz,string num){ nazwisko = naz; numer = num;... Identyczna inicjalizacja pól w dwóch konstruktorach package test4

30 Konstruktory Wywołanie innego konstruktora Jeżeli klasa posiada wiele konstruktorów, wygodnie jest wywołać inny konstruktor zamiast powielać inicjowanie pól. public class Pracownik{ private String nazwisko; private String numertel; public Pracownik(String naz){ nazwisko = naz; public Pracownik(String naz,string num){ this(naz); numertel = num; Wywołanie konstruktora jednoargumentowego package test4

31 Konstruktory Ćwiczenie 4. Dodaj do swojej klasy Przedmiot wymagane konstruktory.

32 Pola i metody Parametry metod Parametry przekazywane są przez wartość (a nie referencję), co oznacza, że zmiana wartości parametru w ciele metody nie będzie widoczna na zewnątrz. public class Pracownik{ private String nazwisko; public void setnazwisko(string n){ n = "B"; nazwisko = n; String naz = "A"; Pracownik p = new Pracownik(); p.setnazwisko(naz); System.out.println(p.getNazwisko(), naz); Nadpisanie parametru Przypisanie wartości do pola "B" "A" package test5

33 Pola i metody Przeciążanie metod Sygnatura opis metody zawierający: typ zwracany, nazwę metody i listę typów parametrów (argumentów) Może być więcej niż jedna implementacja metody o zadanej nazwie. Sygnatura może się różnić jedynie listą typów argumentów, zatem nie można zaimplementować metody o takiej samej nazwie, ale różnym typie zwracanym.

34 Pola i metody Inicjacja pól wartościami domyślnymi Pola można inicjować wartościami domyślnymi na kilka sposobów: w konstruktorze, w deklaracji pola lub w kodzie klasy public class Pracownik{ private String nazwisko; public Pracownik(){ nazwisko = "";... public class Pracownik{ private String nazwisko = "";... public class Pracownik{ private String nazwisko; {nazwisko = "";... package test6

35 Pola i metody Pola i metody statyczne Niektóre pola powinny mieć jednakowe wartości dla wszystkich obiektów danej klasy. Takie pole jest statyczne. Pola statyczne przechowywane są w pamięci i są dostępne nawet gdy nie istnieje żaden obiekt. Pola statyczne powinny mieć modyfikator public. public class Pracownik{ private String nazwisko; public static int dlugoscwypozyczenia = 30; Pracownik.dlugoscWypozyczenia = 20; Pracownik p = new Pracownik(); System.out.println(p.dlugoscWypozyczenia); package test7

36 Pola i metody Pola i metody statyczne Statyczne mogą być również metody wtedy, gdy odwołują się wyłącznie do danych statycznych. Metody statyczne mogą być wywoływane bez konieczności tworzenia obiektu. public class Pracownik{ private String nazwisko; public static int dlugoscwypozyczenia = 30; public static void wydluz(int dw){ dlugoscwypozyczenia = dw * dlugoscwypozyczenia; Pracownik.wydluz(2); Pracownik p = new Pracownik(); System.out.println(p.dlugoscWypozyczenia); package test8

37 Pola i metody Stałe statyczne Pola statyczne mogą być opatrzone modyfikatorem final. Oznacza to, że wartość tego pola nie może ulec zmianie. Stałe statyczne zwykło się nazywać samymi wielki literami. public class Pracownik{ private String nazwisko; public static final int LICZBA_WYPOZYCZEN = 10; System.out.println(Pracownik.LICZBA_WYPOZYCZEN); public final class Math{ public static final double PI = System.out.println(Math.PI);

38 Pola i metody Ćwiczenie 5. W swojej klasie Przedmiot dodaj modyfikatory pól final tam gdzie powinny być oraz dodaj nowe pola i metody dla tej klasy opatrzone modyfikatorem static.

39 Metoda Funkcja main() umieszczana jest w pewnej dowolnej klasie jako metoda publiczna i statyczna. Oznacza to, że może zostać wywołana zanim zostanie stworzony jakikolwiek obiekt tej klasy. Uruchomienie programu Program.java polega na wywołaniu z linii poleceń java Program w tym momencie Wirtualna Maszyna wyszukuje metodą main() w klasie Program bez tworzenia jego obiektu. Każda klasa może posiadać tą metodę, dzięki czemu możliwe jest przetestowanie działania samej klasy.

40 Metoda Ćwiczenie 6. Dodaj metodę main() do klasy Przedmiot. Metoda ta powinna testować działanie konstruktorów oraz metod. Uruchom metodę main z klasy testującej i z klasy Pracownik

41 Metody fabryczne Statyczne metody, które zwracają obiekt danej klasy nazywają się fabrycznymi. Metody te wywoływane są zamiast konstruktora w celu utworzenia obiektu. int liczba = 100; NumberFormat formator1 = NumberFormat.getCurrencyInstance(); System.out.println(formator1.format(liczba)); NumberFormat formator2 = NumberFormat.getNumberInstance(); System.out.println(formator2.format(liczba)); Dzięki metodom fabrycznym można na różne sposoby tworzyć obiekt lub obiekty klas pochodnych przy tym samym zestawie argumentów. package test9

42 Metody fabryczne Ćwiczenie 7. Dodaj dwie metody fabryczne do klasy Przedmiot: - jedna stworzy przedmiot egzaminacyjny o zadanej nazwie, automatycznie wygeneruje jego skrót i doda 5 punktów ECTS - druga stworzy przedmiot zaliczeniowy o zadanej nazwie, automatycznie wygeneruje skrót i nada 4 punkty ECTS

43 Niszczenie obiektów W Javie nie ma zarządzania pamięcią przez programistę/użytkownika. Używany jest GarbageCollector, który oczyszcza pamięć z nieużywanych obiektów, ale nie ma nad nim kontroli. Gdy podczas niszczenia obiektów W klasach można implementować metodę finalize(), w której zapisywane są funkcje wywoływane pod koniec życia obiektów.

44 Pakiety Korzystanie z obcych klas java.util.date date = new java.util.date(); Importowanie całego pakietu, np. java.util import java.util.* Date date = new Date(); Importowanie jednej klasy z pakietu import java.util.date import java.util.date Importowanie klas

45 Pakiety plik pl/edu/pw.elka/klasaelkowa.java Dodawanie klas do pakietu package pl.edu.pw.elka public class KlasaElkowa{... plik pl/edu/pw.elka/drugaklasaelkowa.java package pl.edu.pw.elka public class DrugaKlasaElkowa{...

46 Pakiety Zasięg pakietu Każde dwa pakiety traktowane są rozłączne. Oznacza to, że korzystając z innego niż aktualny pakiet należy załączyć odpowiedni import. Nie ma tu znaczenia zawieranie się podpakietów w pakietach lub wspólne człony nazw.

47 Pakiety Ćwiczenie 8. Stwórz w projekcie pakiet dla ćwiczeń oraz pakiet dla prac domowych. Dodaj do pakietów dotychczasowe pliki.

48 Dokumentacja Javadoc Narzędzie do automatycznego generowania dokumentacji na podstawie komentarzy zapisanych w kodzie. Specjalne znaczniki pozwalają na opisywanie klas, pól i metod. /**. */ blok komentarza, który zostanie umieszczony w znaczniki opisów szczegółowych umieszczony w komentarzu parametry wartość wyrzucane wyjątki wyrzucane wyjątki Klasy i wersja

49 Dokumentacja Znaczniki "tekst" nie tworzy aktywnego <a href="url">tekst</a> - tworzy klink pakiet.klasa#element tekst tworzy link do elementu klasy z pakietu {@link pakiet.klasa#element tekst odnośnik który może występować wewnątrz innego znacznik przestarzałego kodu, w opisie powinno się znaleźć od której wersji i czego należy użyć w zamian

50 Dokumentacja Dokumentacja klas, metod i pól składowych /** * klasa reprezentujaza pracownika na dowolnym stanowisku Ten Autor 0.1 */ public class Pracownik{ /** * Nazwisko Pracownika w formacie <<Imię, Nazwisko>> */ private String nazwisko; /** * Konstruktor jednoargumentowy n nazwisko w formacie <<Imię, Nazwisko>> */ public Pracownik(String n){ nazwisko = n; /** * Konstruktor dwuargumentowy i - imię n nazwisko */ public Pracownik(String i, String n){ nazwisko = i + ", " + n; package test10

51 Dokumentacja /** * klasa reprezentujaza pracownika na dowolnym stanowisku Ten Autor 0.1 */ public class Pracownik{ /** * Nazwisko Pracownika w formacie <<Imię, Nazwisko>> /** */ private String nazwisko; /** * Konstruktor jednoargumentowy Ten Autor n nazwisko w formacie <<Imię, Nazwisko>> */ 0.1 public Pracownik(String n){ nazwisko = n; */ /** public class Pracownik * Konstruktor dwuargumentowy i - imię n nazwisko */ public Pracownik(String i, String n){ nazwisko = i + ", " + n; Dokumentacja klas, metod i pól składowych * klasa reprezentująca pracownika na dowolnym stanowisku

52 Dokumentacja /** * klasa reprezentujaza pracownika na dowolnym stanowisku Ten Autor 0.1 */ public class Pracownik{ /** * Nazwisko Pracownika w formacie <<Imię, Nazwisko>> */ private String nazwisko; /** * Konstruktor jednoargumentowy /** n nazwisko w formacie <<Imię, Nazwisko>> */ public Pracownik(String n){ nazwisko = n; */ /** private * Konstruktor String dwuargumentowy nazwisko; i - imię n nazwisko */ public Pracownik(String i, String n){ nazwisko = i + ", " + n; Dokumentacja klas, metod i pól składowych * Nazwisko Pracownika w formacie <<Imię, Nazwisko>>

53 Dokumentacja Dokumentacja klas, metod i pól składowych /** * klasa reprezentujaza pracownika na dowolnym stanowisku Ten Autor 0.1 */ public class Pracownik{ /** * Nazwisko Pracownika w formacie <<Imię, Nazwisko>> */ private String nazwisko; /** * Konstruktor jednoargumentowy n nazwisko w formacie <<Imię, Nazwisko>> */ public Pracownik(String n){ nazwisko = n; /** * /** * Konstruktor dwuargumentowy jednoargumentowy * i - imię * n n nazwisko nazwisko w formacie <<Imię, Nazwisko>> */ */ public Pracownik(String i, String n){ nazwisko = i + + n; public Pracownik(String n){

54 Dokumentacja /** * klasa reprezentujaza pracownika na dowolnym stanowisku Ten Autor 0.1 */ public /** class Pracownik{ /** * * Konstruktor Nazwisko Pracownika dwuargumentowy w formacie <<Imię, Nazwisko>> */ * String nazwisko; i - imię /** * Konstruktor n jednoargumentowy nazwisko n nazwisko w formacie <<Imię, Nazwisko>> */ */ public Pracownik(String n){ nazwisko = n; /** * Konstruktor dwuargumentowy i - imię n nazwisko */ public Pracownik(String i, String n){ nazwisko = i + ", " + n; Dokumentacja klas, metod i pól składowych public Pracownik(String i, String n){

55 Dokumentacja Generowanie dokumentacji w konsoli: javadoc [opcje] nazwa_pakietu javadoc [opcje] nazwa_pliku.java w Eclipse: Project -> Generate JavaDoc

56 Dokumentacja Ćwiczenie 9. Dodaj dokumentację do swoich klas. Opisz wszystkie pola, konstruktory i metody. Wygeneruj dokumentację w formie plików html.

57 Wskazówki Podczas projektowania wybierz rzeczowniki kluczowe dla problemu i utwórz dla nich klasy. W każdej klasie zastanów się jakie operacje będą na niej wykonywane i dodaj odpowiednie metody. W trakcie pracy dodawaj niezbędne pola. Zastanów się nad cechami wspólnymi wszystkich obiektów danej klasy i dodaj pola statyczne. Dodaj gettery i settery dla pól niefinalnych, które mogą być widziane/zmieniane na zewnątrz obiektu.

58 Praca domowa 1. Zaprojektuj klasy do systemu rezerwacji biletów lotniczych. Zdefiniuj rzeczowniki kluczowe, które będą odzwierciedlane w klasach. Dobierz pola, nadaj im odpowiednie modyfikatory. Dodaj konstruktory. Klasy uzupełnij metodami pozwalającymi na rezerwację biletu. Napisz kod testujący.

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

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

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Javadoc Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Wprowadzenie do Javadoc Treść prezentacji: http://students.mimuw.edu.pl/~as219669/javadoc.pdf Zadania: http://students.mimuw.edu.pl/~as219669/zadanie.rar

Bardziej szczegółowo

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

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 13 Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods

Bardziej szczegółowo

Enkapsulacja, dziedziczenie, polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm 17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc

Bardziej szczegółowo

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

Bardziej szczegółowo

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

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie

Bardziej szczegółowo

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt

Bardziej szczegółowo

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

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

Języki i metody programowania Java. Wykład 2 (część 2) Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

/** Program demonstrujący działanie klasy GregorianCalendar import java.util.*; public class TestKalendarza // zbuduj d i zainicjalizuj z aktualną datą GregorianCalendar d = new GregorianCalendar(); int

Bardziej szczegółowo

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

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

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne

Bardziej szczegółowo

Dziedziczenie. Tomasz Borzyszkowski

Dziedziczenie. Tomasz Borzyszkowski Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

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

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

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

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

Definiowanie własnych klas

Definiowanie własnych klas Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Wykład 2: Podstawy Języka

Wykład 2: Podstawy Języka Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

KLASY, INTERFEJSY, ITP

KLASY, INTERFEJSY, ITP KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/

Bardziej szczegółowo

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

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe 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

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

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

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów

Bardziej szczegółowo

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami

Bardziej szczegółowo

Dziedziczenie. dr Jarosław Skaruz

Dziedziczenie. dr Jarosław Skaruz Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,

Bardziej szczegółowo

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

Zaawansowane programowanie w języku C++ Klasy w C++ Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń

Bardziej szczegółowo

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

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Laboratorium 6 DIAGRAM KLAS (Class Diagram) Laboratorium 6 DIAGRAM KLAS (Class Diagram) Opisuje strukturę programu (a także zależności między nimi), co znajduje odzwierciedlenie w kodzie. Charakteryzuje zależności pomiędzy składnikami systemu: klasami,

Bardziej szczegółowo

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

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Podstawy Języka Java

Podstawy Języka Java Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących

Bardziej szczegółowo

Materiały do zajęć VII

Materiały do zajęć VII Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie teoretyczne. Rozważana

Bardziej szczegółowo

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

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

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

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Wykład 6: Dziedziczenie

Wykład 6: Dziedziczenie Wykład 6: Dziedziczenie Dziedziczenie Jeden z filarów obiektowości. Budowa jednej klasy na bazie drugiej, przez dodawanie/przesłanianie jej składowych: nad-klasa klasa bazowa pod-klasa klasa pochodna od

Bardziej szczegółowo

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub PWSG Ćwiczenia 12 Wszystkie ukończone zadania należy wysłać na adres: sara.m.jurczyk@gmail.com lub sarajurczyk@kul.lublin.pl Zadanie 1: Różnica między zwykłymi polami/metodami, a polami/metodami static

Bardziej szczegółowo

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

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

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

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

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

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń: Klasy Metody [ModyfikatorMetody] TypZwrotny Nazwa (Typ arg1, ) { // implementacja metody ModyfikatorMetody może być kombinacją wyrażeń: modyfikator widzialności public dostępna dla metod spoza klasy protected

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Języki i metody programowania Java Lab2 podejście obiektowe

Języki i metody programowania Java Lab2 podejście obiektowe Języki i metody programowania Java Lab2 podejście obiektowe https://docs.oracle.com/javase/tutorial/ http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/pojava/javazk4_2.pdf Zofia Kruczkiewicz 1 Zadanie

Bardziej szczegółowo

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

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017 Wykład 7 25 kwietnia 2017 Dokumentowanie kodu Program javadoc Java jest wyposażona w generator dokumentacji który na podstawie odpowiednio napisanych komentarzy w kodzie programu (które jednak nie sa konieczne),

Bardziej szczegółowo

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

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

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

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

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

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Dziedziczenie Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasy Student oraz Pracownik: class Student class Pracownik

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Definicje klas i obiektów. Tomasz Borzyszkowski

Definicje klas i obiektów. Tomasz Borzyszkowski Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy

Bardziej szczegółowo

Przypomnienie o klasach i obiektach

Przypomnienie o klasach i obiektach Wykład 14 Programowanie obiektowe ciąg dalszy, str 1 Przypomnienie o klasach i obiektach -5 należydo int 314 należy do double false należy do boolean {27, 314,-15 należy do double[] wartość należy do typ

Bardziej szczegółowo

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

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu. .NET Klasy, obiekty Klasa i obiekt Każdy obiektowy język programowania daje programiście możliwość tworzenia nowych typów danych. Nowy typ danych definiuje się poprzez zdefiniowanie klasy. Co to jest klasa?

Bardziej szczegółowo

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

Wykład 5: Więcej o Klasach i Metodach Wykład 5: Więcej o Klasach i Metodach Przeciążanie Metod Klasa posiada dwie lub więcej metod o tej samej nazwie ale różnych deklaracjach parametrów. Java używa liczby i typów argumentów by ustalić którą

Bardziej szczegółowo

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

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Polimorfizm. dr Jarosław Skaruz

Polimorfizm. dr Jarosław Skaruz Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody

Bardziej szczegółowo

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

Bardziej szczegółowo

Java Język programowania

Java Język programowania Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja

Bardziej szczegółowo

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Opis biznesowy świata rzeczywistego Wymagania funkcjonalne i niefunkcjonalne aplikacji Diagram przypadków życia Diagramy klas i sekwencji:

Bardziej szczegółowo

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

Wykład 3 Składnia języka C# (cz. 2) Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

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

Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów Obiekty W codziennym życiu mamy do czynienia z

Bardziej szczegółowo

Modelowanie obiektowe

Modelowanie obiektowe Modelowanie obiektowe ZPO 2018/2019 Dr inż. W. Cichalewski Materiały wykonane przez W. Tylman Diagramy klas Diagramy klas Zawiera informacje o statycznych związkach między elementami (klasami) Są ściśle

Bardziej szczegółowo

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki > C++ dziedziczenie Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1432108800 > Dziedziczenie Dziedziczenie C++ dziedziczenie 2 / 13 > Dziedziczenie Dziedziczenie * to

Bardziej szczegółowo

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

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

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

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak 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

Bardziej szczegółowo

Do czego służą klasy?

Do czego służą klasy? KLASY Dorota Pylak 2 Do czego służą klasy? W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można wykonywać

Bardziej szczegółowo

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

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Laboratorium 01: Poznanie środowiska programowania w języku Java [2h]

Laboratorium 01: Poznanie środowiska programowania w języku Java [2h] 1. Wprowadzenie do środowiska eclipse. Platforma ta najczęściej definiowana jest, jako środowisko służące programowaniu w języku Java, lecz jej dynamiczny rozwój przyczynił się do rozszerzenia jej możliwości

Bardziej szczegółowo

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

Składnia C++ Programowanie Obiektowe Mateusz Cicheński Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Konstruktory i destruktory

Bardziej szczegółowo

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

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) 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

Bardziej szczegółowo

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

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

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

2. Składnia, środowisko i konwencje w Javie Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,

Bardziej szczegółowo

Podstawy programowania III

Podstawy programowania III Podstawy programowania III Jan Kazimirski 1 Opis zajęć Zastosowanie funkcji i obiektów w PHP powtórzenie zagadnień. Dostęp do bazy danych PostgreSQL z poziomu skryptu PHP. Wprowadzenie do języka SQL. Przykłady

Bardziej szczegółowo

Wstęp do programowania obiektowego. Wykład 2

Wstęp do programowania obiektowego. Wykład 2 Wstęp do programowania obiektowego Wykład 2 1 CECHY I KONCEPCJA PROGRAMOWANIA OBIEKTOWEGO 2 Cechy programowania obiektowego Dla wielu problemów podejście obiektowe jest zgodne z rzeczywistością (łatwe

Bardziej szczegółowo