Przypomnienie o klasach i obiektach

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Dokumentacja do API Javy.

Polimorfizm, metody wirtualne i klasy abstrakcyjne

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

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

Java: interfejsy i klasy wewnętrzne

Programowanie obiektowe

Programowanie obiektowe

Programowanie komputerowe. Zajęcia 7

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

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

Enkapsulacja, dziedziczenie, polimorfizm

Aplikacje w środowisku Java

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

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

Klasy abstrakcyjne, interfejsy i polimorfizm

Programowanie obiektowe

Programowanie obiektowe

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

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

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

PARADYGMATY PROGRAMOWANIA Wykład 2

Wykład 7: Pakiety i Interfejsy

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

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

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

Programowanie obiektowe

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

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

Wykład 4: Klasy i Metody

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

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

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

Dziedziczenie. dr Jarosław Skaruz

Wykład 6: Dziedziczenie

1 Atrybuty i metody klasowe

Programowanie w Internecie. Java

Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)

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

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

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

Definicje klas i obiektów. Tomasz Borzyszkowski

Podstawy programowania obiektowego

Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.

Materiały do zajęć VII

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

Programowanie Obiektowe i C++

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

Programowanie obiektowe

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

Rozdział 4 KLASY, OBIEKTY, METODY

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

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

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

Platformy Programistyczne Podstawy języka Java

Programowanie obiektowe w C++ Wykład 12

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

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

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

Kompozycja i dziedziczenie klas

DOSTĘP DO METOD I ZMIENNYCH. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla każdego, Helion 2001)

Aplikacje w środowisku Java

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

DOSTĘP DO METOD I ZMIENNYCH, TABLICE. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla kaŝdego, Helion 2001)

Wstęp do Programowania 2

Programowanie obiektowe

Programowanie obiektowe i zdarzeniowe

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

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. 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.

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

Programowanie obiektowe

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

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.

Programowanie i projektowanie obiektowe

Wykład 8: klasy cz. 4


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

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.

Polimorfizm. dr Jarosław Skaruz

Programowanie Obiektowe Ćwiczenie 4

Programowanie 3 - Funkcje, pliki i klasy

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

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

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

Typy sparametryzowane

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

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

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

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

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

Java Język programowania

Technologie i usługi internetowe cz. 2

Dziedziczenie. Tomasz Borzyszkowski

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

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

Transkrypt:

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 obiekt należy do klasa Wartości należą do typów Obiekty należą do klas Definicja klasy określa kształt obiektu W definicji klasy podaje się: własności zmienne, od wartości których zależa obiekty tej klasy; konstruktory funkcje tworzące i inicjalizujące obiekty; metody funkcje zmieniające wartości, od których zależy obiekt; ew wyliczające coś dla obiektu Coś o motoryzacji Wykład 14 Programowanie obiektowe ciąg dalszy, str 2 class Samochod { static final double pojemnosc baku = 40; public String marka model; private double zuzycie paliwa; public double przebieg; public double ilosc paliwa; definicja stałej deklaracje własności

Coś o motoryzacji Wykład 14 Programowanie obiektowe ciąg dalszy, str 3 Różne obiekty klasy Samochód mogą się różnić wartościami własności marka model zuzycie paliwa przebieg ilosc paliwa Własność zuzycie paliwa jest prywatna, więc nie ma do niej dostępu spoza klasy Samochód Coś o motoryzacji Wykład 14 Programowanie obiektowe ciąg dalszy, str 4 class Samochod { Samochod(String mm, double zp) { markamodel=mm; zuzycie paliwa = zp; przebieg = 0; ilosc paliwa = pojemnosc baku; konstruktor 2-parametrowy Samochod(String mm, double zp, doublepr,doubleip) { markamodel=mm; zuzycie paliwa = zp; przebieg = pr; iloscpaliwa=ip; konstruktor 4-parametrowy

Coś o motoryzacji Wykład 14 Programowanie obiektowe ciąg dalszy, str 5 Konstruktor tworzy nowy obiekt klasy Samochód i inicjalizuje jego własności Konstruktor 4-parametrowy inicjalizuje 4 własności czterema podanymi parametrami Konstruktor 2-parametrowy inicjalizuje 2 własności dwiema podanymi parametrami, a pozostałym dwóm nadaje wartości domyślne Coś o motoryzacji Wykład 14 Programowanie obiektowe ciąg dalszy, str 6 class Samochod { void jedzie(double odleglosc) { doubleilpal= ilosc paliwa - odleglosc/100*zuzycie paliwa; if(ilpal>=0) { przebieg += odleglosc; iloscpaliwa=ilpal; else throw new Error("\nZamalopaliwa\n"); METODA jeśli paliwa starczy jeśli paliwa nie starczy (sygnalizacja błędu)

Coś o motoryzacji Wykład 14 Programowanie obiektowe ciąg dalszy, str 7 Wywołanie metody należącej do konkretnego samochodu może jeśli jest void zmienić wartości własności tego samochodu w tym przypadku: stan licznika i wielkość zapasu paliwa; jeśliniejestvoid wyliczyćjakąśwartośćwoparciuo parametry i wartości własności tego samochodu w tym przypadku: nie robi tego Metoda może korzystać również z własności prywatnych Zewnętrzna funkcja nie mogłaby mieć do nich dostępu Coś o motoryzacji Wykład 14 Programowanie obiektowe ciąg dalszy, str 8 class Samochod { void tankuje(double ilosc) { doubleilpal=iloscpaliwa+ilosc; if(ilpal<=pojemnoscbaku) iloscpaliwa=ilpal; else throw new Error("\nBrakmiejscawbaku\n"); METODA jeśli bak jest dość duży jeślibakjestzamały (sygnalizacja błędu) Error() jest konstruktorem standardowej klasy Error throw to instrukcja zagłaszania błędu

Wykład 14 Programowanie obiektowe ciąg dalszy, str 9 Wyjaśnienia do programu głównego patrz plik 14-Java-cd/Samochodjava Stworzenie nowych samochodów: Samochod stary = new Samochod("Syrenka", 8, 10000, 20); Samochod nowy = new Samochod("Toyota", 6); Czytanie w kółko wiersz po wierszu, aż przyjdą widzialne znaki: do { komenda = czytnextline()trim(); while(komendaequals("")); Metoda trim() klasy String usuwa wiodące i kończące białe znaki Metoda equals() klasy String porównuje napisy Porównanie przez == daje niepoprawne wyniki Program rysujący Wykład 14 Programowanie obiektowe ciąg dalszy, str 10 patrz plik 14-Java-cd/Rysunekjava klasa Rysunek (zawierająca metodę main()) korzysta z klasy Odcinek korzysta z klasy Punkt

Program rysujący Wykład 14 Programowanie obiektowe ciąg dalszy, str 11 class Punkt { private double x, y; publicpunkt(doublex,doubley) {thisx=x;thisy=y; publicdoublewspx() {returnx; publicdoublewspy() {returny; class Odcinek { private Punkt p, k; publicodcinek(punktpocz,punktkon) {p=pocz;k=kon; public Punkt poczatek() { return p; public Punkt koniec() { return k; public void rysuj(graphics g) { gdrawline( (int)pwspx(),(int)pwspy(), (int)kwsp x(),(int)kwsp y() ); Program rysujący Wykład 14 Programowanie obiektowe ciąg dalszy, str 12 public void paint(graphics g) { final Punkt srodek = new Punkt(250,150); final double prom=100; double kat1=0, kat2=mathpi/3; for(inti=0;i<6;i++) { Punktpt1=newPunkt( srodekwsp x()+prom*mathcos(kat1), srodekwsp y()+prom*mathsin(kat1) ); Punktpt2=newPunkt( srodekwsp x()+prom*mathcos(kat2), srodekwsp y()+prom*mathsin(kat2) ); (new Odcinek(pt1,pt2))rysuj(g); (new Odcinek(pt1,srodek))rysuj(g); kat1=kat2; kat2+=mathpi/3;

Typowa budowa klasy Wykład 14 Programowanie obiektowe ciąg dalszy, str 13 Wczymtakaklasa: class Punkt { private double x, y; publicpunkt(doublex,doubley) {thisx=x;thisy=y; publicdoublewspx() {returnx; publicdoublewspy() {returny; jest lepsza od takiej: class Punkt { public double x, y;? W pierwszym przypadku współrzędne skonstruowanego punktu nie mogą już być zmienione W drugim przypadku mamy do nich dostęp z zewnątrz: Punkta=newPunkt(); ax=0;ay=0; Systemoutprintln("x=="+ax+"y=="+ay); ax=05;ay=-05; Systemoutprintln("x=="+ax+"y=="+ay); Dziedziczenie Wykład 14 Programowanie obiektowe ciąg dalszy, str 14 Mamy definicję klasy: classa{ Tworzymy nową klasę: classbextendsa{ Klasa B posiada wszystkie własności i metody klasy A i dodatkowo własności i metody zdefiniowane specjalnie tutaj Konstruktor klasy B może korzystać z konstruktora nadrzędnej klasy A pod nazwą super() zamiast A()

Dziedziczenie Wykład 14 Programowanie obiektowe ciąg dalszy, str 15 patrz plik 14-Java-cd/Drukijava classdruk { private String tyt; Druk(String tytul) { tyt=tytul; Stringtytul() {returntyt; class Ksiazka extends Druk { private int ile str; private double cen; Ksiazka(String tt, int ii, double cc) { super(tt); ile str=ii; cen=cc; intilestron() {returnilestr; doublecena() {returncen; jest jeszcze metoda tytul() odziedziczona z klasy Druk