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

Podobne dokumenty
Metody Metody, parametry, zwracanie wartości

Klasy i obiekty cz II

Rozdział 4 KLASY, OBIEKTY, METODY

Wykład 4: Klasy i Metody

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

Wykład 5: Klasy cz. 3

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

Dokumentacja do API Javy.

Wykład 8: klasy cz. 4

Programowanie obiektowe

Programowanie obiektowe

Enkapsulacja, dziedziczenie, polimorfizm

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

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

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

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

Definiowanie własnych klas

Aplikacje w środowisku Java

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

Programowanie obiektowe

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

1 Atrybuty i metody klasowe

Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26

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

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

Programowanie obiektowe

PARADYGMATY PROGRAMOWANIA Wykład 4

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

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

Programowanie w Javie

Builder (budowniczy) Cel: Przykład:

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

Programowanie komputerowe. Zajęcia 7

Programowanie obiektowe

TEMAT : KLASY DZIEDZICZENIE

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

Klasy abstrakcyjne, interfejsy i polimorfizm

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

Serwery aplikacji. dr Radosław Matusik. radmat

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

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

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

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

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

C++ Przeładowanie operatorów i wzorce w klasach

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Podstawy Programowania Obiektowego

Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach

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

Programowanie obiektowe zastosowanie języka Java SE

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 12

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

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Laboratorium 1 - Programowanie proceduralne i obiektowe

PHP 5 język obiektowy

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

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

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Wykład 2: Podstawy Języka

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

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

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

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

Programowanie obiektowe - 1.

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Szablony klas, zastosowanie szablonów w programach

Podstawy programowania obiektowego

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.

Materiały do zajęć VII

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

Programowanie obiektowe

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

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

Technologie obiektowe

Kurs WWW. Paweł Rajba.

Przypomnienie o klasach i obiektach

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

Wykład 6: Dziedziczenie

Technologie i usługi internetowe cz. 2

Programowanie obiektowe

Podstawy Języka Java

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

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

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

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

Programowanie w Javie 1 Wykład i Ćwiczenia 2 Przegląd podstawowych klas w Javie (elementy programowania obiektowego) Płock, 16 października 2013 r.

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

Aplikacje RMI

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

OBIEKTY PHP. G. Panuś

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

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

Programowanie obiektowe i zdarzeniowe

Laboratorium nr 10. Temat: Funkcje cz.2.

Obiekty: co i jak. Wykonał: Piotr Pięda dla koła naukowego KNI

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

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Transkrypt:

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 różnego rodzaju obiektami, jak np. zwierzęta, samochody, czy telefony komórkowe mają one swoje cechy, właściwości oraz mogą wykonywać (być użyte do wykonania) pewne czynności WŁAŚCIWOŚCI/CECHY/DANE: marka model numer kontakty kolor... CZYNNOŚCI: dzwonienie odbieranie połączeń wysyłanie SMS odbieranie SMS wyszukiwanie kontaktów dodawanie kontaktów...

Obiekty Przenosząc obraz rzeczywistych (lub wymyślonych) obiektów w świat programu, odwzorowujemy: właściwości/cechy/dane na pola (dane, składowe) czynności na metody WŁAŚCIWOŚCI/CECHY/DANE: marka model numer kontakty kolor... CZYNNOŚCI: dzwonienie odbieranie połączeń wysyłanie SMS odbieranie SMS wyszukiwanie kontaktów dodawanie kontaktów... POLA: marka model numer kontakty kolor... METODY: zadzwon() odbierzpołączenie() wyslijsms() odbierzsms wyszukajkontakt() dodajkontaktów()...

Tworzymy klasę Pierwszym krokiem do utworzenia wirtualnego telefonu jest napisanie klasy, umieśćmy go w pakiecie telefony: public class Telefon { String marka; String model; int numer; String kontakty; String kolor; POLA public void zadzwon(int nr){ System.out.println("Dzwonię z nr: "+numer); System.out.println("Na nr: "+nr); public void odbierzpolaczenie(int nr) { System.out.println("Odbieram połączenie od nr: "+nr); public void wyslijsms(int nr, String tekst) { System.out.println("Wysyłam SMS na nr: "+nr); System.out.println("O treści: "+tekst); public String odbierzsms() { String tekstsms="witaj telefonie!"; return tekstsms; METODY

Klasy i obiekty Klasa to jednak nie jest jeszcze wirtualny telefon Na podstawie klasy tworzy się dopiero obiekty Klasa jest więc formą, planem czy też szablonem na podstawie którego tworzy się obiekty Obiekty posiadają konkretne właściwości i wykonują poszczególne czynności.

Klasy i obiekty Telefon KLASA: Telefon1 Telefon2 Telefon3 OBIEKTY:

Tworzymy obiekty i używamy ich Tworzenie obiektu: Telefon tel1 = new Telefon(); Ustawianie wartości pola obiektu (bezpośrednie): tel1.kolor="niebieski"; Pobranie wartości pola obiektu (bezpośrednie): tel1.kolor; Wywołanie metody obiektu i pobranie zwracanej przez nią wartości: String sms = tel1.odbierzsms(); Wywołanie metody obiektu i przekazanie parametrów metodzie: tel1.wyslijsms(333444, "Cześć! To ja!");

Tworzymy obiekty i używamy ich W tym samym pakiecie, tworzymy klasę z metodą main() o treści: public class Telefony { public static void main(string[] args) { Telefon tel1 = new Telefon(); Telefon tel2 = new Telefon(); tel1.marka="motorola"; tel1.numer=123456; tel1.kolor="niebieski"; tel2.marka="nokia"; tel2.numer=789000; tel2.kolor="czarny"; System.out.println("Marka telefonu 1: "+tel1.marka); System.out.println("Numer telefonu 1: "+tel1.numer); System.out.println("Kolor telefonu 1: "+tel1.kolor); System.out.println("Marka telefonu 2: "+tel2.marka); System.out.println("Numer telefonu 2: "+tel2.numer); System.out.println("Kolor telefonu 2: "+tel2.kolor); tel1.zadzwon(222333); tel2.wyslijsms(333444, "Cześć! To ja!"); String sms = tel2.odbierzsms(); System.out.println("Odebrałem SMS o treści: "+sms); tel1.wyslijsms(tel2.numer, "Jaki ja?"); Tworzymy dwa obiekty typu Telefon Przypisujemy wartości wybranym składowym (polom) obu obiektów Odwołujemy się do wybranych pól obu obiektów. Wywołujemy wybrane metody obu obiektów.

Wynik działania programu: Telefon tel1 = new Telefon(); Telefon tel2 = new Telefon(); tel1.marka="motorola"; tel1.numer=123456; tel1.kolor="niebieski"; tel2.marka="nokia"; tel2.numer=789000; System.out.println("Marka telefonu 1: "+tel1.marka); System.out.println("Numer telefonu 1: "+tel1.numer); System.out.println("Kolor telefonu 1: "+tel1.kolor); System.out.println("Marka telefonu 2: "+tel2.marka); System.out.println("Numer telefonu 2: "+tel2.numer); System.out.println("Kolor telefonu 2: "+tel2.kolor); tel1.zadzwon(222333); tel2.wyslijsms(333444, "Cześć! To ja!"); String sms = tel2.odbierzsms(); System.out.println("Odebrałem SMS o treści: "+sms); tel1.wyslijsms(tel2.numer, "Jaki ja?"); Marka telefonu 1: Motorola Numer telefonu 1: 123456 Kolor telefonu 1: Niebieski Marka telefonu 2: Nokia Numer telefonu 2: 789000 Kolor telefonu 2: Czarny Dzwonię z nr: 123456 Na nr: 222333 Wysyłam SMS na nr: 333444 O treści: Cześć! To ja! Odebrałem SMS o treści: Witaj telefonie! Wysyłam SMS na nr: 789000 O treści: Jaki ja?

Niektóre obserwacje: Na podstawie klasy można stworzyć wiele obiektów Możemy ustawiać wartości pól, i wywoływać metody Utworzone obiekty są niezależne od siebie - posiadają własne wartości pól, ich metody działają niezależnie

Wartości domyślne Często chcemy ustawić w nowo utworzonym obiektom jakieś wartości domyślne. Można bezpośrednio po deklaracji przypisać zmiennym domyślne wartości (String marka="nieznana";). Można też utworzyć w klasie odpowiednią metodę, np: public void ustawdanedomyslne() { marka="nieznana"; model="niewiadomy"; numer=0; kolor="czarny"; Po utworzeniu obiektu, można ją wywołać, wtedy obiekt przyjmie wartości domyślne: tel1.ustawdanedomyslne(); Jeśli teraz odwołamy się do pól, otrzymamy: System.out.println("Marka telefonu 1: "+tel1.marka); System.out.println("Numer telefonu 1: "+tel1.numer); System.out.println("Kolor telefonu 1: "+tel1.kolor); Marka telefonu 1: Nieznana Numer telefonu 1: 0 Kolor telefonu 1: czarny Dane domyślne można później zmienić

Konstruktory Zwykle jednak w celu ustawienia wartości domyślnych oraz przeprowadzenia innych operacji wstępnych stosuje się specjalne metody zwane konstruktorami. Konstruktory mają taką samą nazwę jak klasa, nie umieszczamy w nagłówku słowa void ani nie deklarujemy rodzaju zwracanej wartości. Konstruktory są uruchamiane, gdy obiekt jest tworzony, nie trzeba więc wywoływać specjalnie metody. Konstruktor będzie więc wyglądał np. tak: public Telefon() { marka="nieznana"; numer=0; kolor="czarny";

Konstruktory, przeciążanie Klasa może posiadać kilka konstruktorów, mają taką samą nazwę, różnią się przekazywanymi parametrami - w ten sposób program domyśla się którego konstruktora użyć. Jest to tzw. przeciążanie metod. Można więc dopisać konstruktor: public Telefon(String mar, int num, String kol ) { marka=mar; numer=num; kolor=kol; Wywołujemy go przy tworzeniu obiektu, przekazując odpowiednie dane: Telefon tel2 = new Telefon("Nokia", 789000, "czarny");

Przeciążanie Przeciążanie metod nie ogranicza się wyłącznie do konstruktorów, można je stosować także do innych metod, wywoływana jest ta, do której pasują przekazywane wartości parametrów. public void uruchomalarm() { System.out.println("Bip, Bip, Bip"); public void uruchomalarm(string alarm) { System.out.println(alarm); Możemy więc wywołać: tel1.uruchomalarm(); tel1.uruchomalarm("dryń, Dryń, Dryń"); Otrzymując kolejno: Bip, Bip, Bip Dryń, Dryń, Dryń

Zadanie Stwórz program w którym będzie utworzonych kilka obiektów typu gatunek Klasa gatunek powinna zawierać: pola przechowujące: nazwę rodzaju gatunek liczbę chromosomów 2n podstawową liczbę chromosomów x uwagi metody: podającą pełną nazwę (Rodzaj + gatunek) podającą haploidalną liczbę chromosomów n wypisującą wszystkie dane konstruktory: tworzący domyślne wartości pobierający wartości wszystkich pól i ustawiający je pobierający tylko wartości nazwy rodzaju i gatunku, reszta domyślna W programie powinny być użyte wszystkie metody.