Modu 5 - Klasy i obiekty

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

Download "Modu 5 - Klasy i obiekty"

Transkrypt

1 MODU 5 - KLASY I OBIEKTY 45 Modu 5 - Klasy i obiekty Zawarto jednostki Po zrealizowaniu jednostki bdziesz w stanie: wskaza rónice midzy klas, a obiektem prawidowo tworzy klasy z wykorzystaniem pól i metod tworzy i wykorzystywa konstruktory posugiwa si operatorem this wykorzysta enkapsulacj do ochrony danych Wprowadzenie do zagadnie Java jest jzykiem, w którym realizowana jest idea programowania zorientowanego obiektowo (ang. OOP Object Oriented Programming). Tworzenie aplikacji odbywa si z wykorzystaniem odpowiednich, wspópracujcych ze sob elementów, zwanych obiektami, konstruowanych na podstawie wzorca zwanego klas. Biblioteki Javy zawieraj poka*ny zbiór gotowych do uycia klas, które uatwiaj tworzenie programów, jednake zoone aplikacje skadaj si najcz+ciej z szeregu nowych klas, tworzonych przez programist. KLASY W otaczajcej rzeczywisto+ci wystpuje szereg obiektów tego samego typu (np. samochody, drzewa, studenci) Klas nazywamy zbiór stanów oraz zachowa. opisujcych obiekty nalece do tej samej kategorii. Jest to pewnego rodzaju wzorzec, na podstawie którego jeste+my w stanie utworzy konkretn wersj obiektu (np. czerwony samochód marki Fiat, wysokie drzewo). W skad kadej klasy wchodz: pola (zmienne), zawierajce informacje opisujce wa+ciwo+ci (stany) obiektów, metody (podprogramy), modelujce zachowania obiektów. OBIEKTY Na podstawie zdefiniowanej klasy tworzone s obiekty, rónice si wa+ciwo+ciami. Kady obiekt posiada wasny zbiór pól, których warto+ci okre+laj jego indywidualno+. Na podstawie klasy moliwe jest zatem utworzenie dowolnej liczby obiektów (instancji klasy), nalecych do tej samej kategorii, zrónicowanych pod wzgldem wa+ciwo+ci. Tworzenie klasy Proces definiowania klasy polega na okre+leniu jej skadowych, tj. pól oraz metod, reprezentujcych stany i zachowania obiektów, które bd tworzone w oparciu o t klas. Poniszy przykad ilustruje klas Telefon, stanowic wzorzec dla zbioru opisywanych telefonów. Kady telefon posiada pewne unikalne cechy (numer telefonu, czny czas rozmów) oraz zachowania, tj. czynno+ci, które moe wykona (zadzwo.).

2 MODU 5 - KLASY I OBIEKTY 46 Telefon - nrtelefonu : String - lacznyczasrozmow : int - cenarozmowy : double + zadzwon(string) : void + obliczkwotedozaplaty () : double + ustawcenerozmowy (double) : void Rysunek 1. Diagram UML 59 klasy Telefon. Definicja klasy w jzyku Java realizowana jest za pomoc sowa kluczowego class 60 : class Telefon { // ciao klasy (skadowe klasy) Kada tworzona klasa moe zawiera zbiór pól oraz metod stanowicych skadowe klasy. POLA KLASY Pola to zmienne deklarowane wewntrz klasy. W przypadku braku jawnej inicjalizacji zmiennej otrzymuje ona warto+ domy+ln 61. Zwyczajowo deklaracja pól klasy wystpuje przed deklaracj metod. Poniszy kod programu zawiera definicj klasy Telefon wraz z wchodzcymi w jej skad polami. class Telefon { // deklaracja pól klasy private String numertelefonu; private int lacznyczasrozmow; private static double cenarozmowy = 0.48; // z/min. Pola statyczne (oznaczone w kodzie specyfikatorem static), w przeciwie.stwie do pól niestatycznych, s wspólne dla wszystkich obiektów danej klasy 62. Dostp do nich jest moliwy bez konieczno+ci tworzenie obiektu klasy. W powyszym przykadzie pole cenarozmowy dotyczy wa+ciwo+ci odnoszcej si do wszystkich obiektów klasy Telefon. Dostp do pól klasy jest moliwy zgodnie z rodzajem uytego w deklaracji specyfikatora dostpu 63. METODY KLASY Metody deklarowane w klasie stanowi odpowiednik zachowa. konkretnych obiektów. Sposób deklaracji metod zosta omówiony w poprzednim module. Warto przypomnie o metodach statycznych (klasowych), do których dostp moliwy jest bez konieczno+ci tworzenia obiektu danej klasy. Metody te nie mog zatem odwoywa si do niestatecznych (instancyjnych) skadowych klasy (pól i metod) powizanych z konkretnym obiektem. Poniszy kod programu zawiera definicj klasy Telefon wraz z jej skadowymi polami oraz metodami. 59 Wicej informacji o diagramach UML zobacz: 60 Dopuszczalne jest uycie dwóch rodzajów modyfikatorów dostpu: public (klasa ogólnie dostpn) oraz brak modyfikatora (klasa dostpna wewntrz pakietu). 61 W przypadku braku jawnej inicjalizacji pól klasy, przyjmuj one warto+ci domy+lne (pola numeryczne warto+ 0, pole logiczne warto+ false, natomiast pola klasowe warto+ null). 62 Pola statyczne nazywane s do+ czsto polami klasowymi. 63 Zobacz: Tabela 1, str. 36.

3 MODU 5 - KLASY I OBIEKTY 47 class Telefon { // deklaracja pól private String numertelefonu; private int lacznyczasrozmow; private static double cenarozmowy = 0.48; // z/min. // deklaracja metod public double obliczkwotedozaplaty() { return cenarozmowy * (lacznyczasrozmow / 60); public static void ustawcenerozmowy(double nowacena){ cenarozmowy = nowacena; public void zadzwon(string nrtelefonu) { System.out.println ("Dzwoni4 do: " + nrtelefonu); System.out.println ("Dry5, dry5..."); System.out.println ("Rozmowa w toku..."); int czasrozmowy = (int) (Math.random()*3600); lacznyczasrozmow += czasrozmowy; System.out.println ("Rozmowa zako5czona. "); System.out.printf ("Czas rozmowy: %d min. %d sek.", czasrozmowy/60, czasrozmowy%60); KONSTRUKTORY Konstruktor jest metod, która wywoywana zostaje w momencie tworzenia obiektu 64. Nazwa konstruktora musi by zgodna z nazw klasy, nie moe on równie zwraca adnej warto+ci 65. W skad konstruktora wchodz instrukcje, które naley wykona w trakcie tworzenia obiektu. Szczególnym przypadkiem jest tu nadanie warto+ci pocztkowej polom obiektu, które moe zosta zrealizowane albo w momencie deklaracji pola, albo te poprzez przypisanie warto+ci w konstruktorze obiektu. Poniszy kod programu zawiera deklaracj konstruktora Telefon(String) dla klasy Telefon. Zawiera on instrukcj przypisujc warto+ pocztkow dla pola numertelefonu. public Telefon (String numer) { numertelefonu = numer; W przypadku braku jawnie zadeklarowanego konstruktora, Java automatycznie wywouje konstruktor domy+lny 66. Moliwe jest przecianie konstruktorów, podobnie jak innych metod zadeklarowanych w klasie. Tworzenie obiektów Definicja klasy udostpnia wzorzec, na podstawie którego tworzone s obiekty wystpujce w programie. Ich interakcja realizowana poprzez wywoywanie metod stanowi o tre+ci tworzonej aplikacji Rysunek 2 przedstawia schemat tworzenia obiektów na podstawie klasy Telefon. 64 Skadnia tworzenia obiektu zawiera operator new oraz nazw konstruktora, który ma zosta wywoany. 65 Przez nazw konstruktora nie moe pojawi si równie sowo kluczowe void 66 Konstruktor domy+lny posiada pust liczb parametrów i jest tworzony przez Jav wycznie wtedy, gdy klasa nie posiada adnego jawnie zadeklarowanego konstruktora.

4 MODU 5 - KLASY I OBIEKTY 48 Telefon - nrtelefonu : String - lacznyczasrozmow : int - cenarozmowy : double Telefon Jasia Telefon Kasi Telefon Ani nrtelefonu: " " lacznyczasrozmow: 4769 nrtelefonu: " " lacznyczasrozmow: 8102 nrtelefonu: " " lacznyczasrozmow: 1981 Rysunek 2. Tworzenie obiektów na podstawie klasy. Tworzenie nowych obiektów w Javie polega na uyciu operatora new, po którym wystpuje nazwa odpowiedniego konstruktora. Poniszy kod zawiera przykad utworzenia obiektu klasy Telefon: Telefon telefonmarka = new Telefon(" "); Operator new tworzy na podstawie wzorca (klasy) nowy obiekt oraz umieszcza go w pamici operacyjnej. Warto+ci zwracan podczas tworzenia obiektu jest referencja do miejsca, w którym zosta on utworzony. Warto+ ta przypisana zostaje do zmiennej typu obiektowego, co pozwala na odwoanie si do skadowych obiektu: public class WykorzystanieObiektow { public static void main(string args[]) { Telefon telefonjasia = new Telefon(" "); // wywoanie metody zadzwon() na rzecz obiektu telefonjasia telefonjasia.zadzwon(" "); Pojcia dodatkowe Definiowanie klas oraz tworzenie obiektów powizane jest +ci+le z typem referencyjnym, przechowujcym odwoania do obiektów. Wykorzystujc referencj oraz operator kropki uzyskujemy dostp do skadowych klasy. Kto i na jakich zasadach posiada dostp do poszczególnych skadowych okre+laj specyfikatory dostpu. Dostp do poszczególnych pól klasy odbywa si zazwyczaj za po+rednictwem zadeklarowanych metod.

5 MODU 5 - KLASY I OBIEKTY 49 METODY DOST"POWE I MODYFIKUJ&CE Metody dostpowe (ang. accessor (getter) methods) s uywane do odczytu warto+ci pól (instancyjnych i statycznych). Nazwa takiej metody zazwyczaj skada si z czasownika pobierz (ang. get) oraz nazwy pola. Zadaniem metod modyfikujcych (ang. mutator (setter) methods) jest nadanie bd* te zmiana warto+ci pól (instancyjnych i statycznych). Nazwa metody zawiera zwykle czasownik ustaw (ang. set) oraz nazw pola. Metody modyfikujce z reguy nie zwracaj adnej warto+ci. class Zeszyt{ private int liczbakartek; // metoda dost4powa public int pobierzliczbekartek() { return liczbakartek; // metoda modyfikujeca public void ustawliczbekartek(int liczbakartek) { this.liczbakartek = liczbakartek; SOWO KLUCZOWE THIS Sowo this oznacza referencj do biecego obiektu. Uatwia to dostp do jego skadowych, jak równie umoliwia wywoanie odpowiednich konstruktorów. Czsto this jest wykorzystywane, gdy nazwa parametru metody jest identyczna z nazw pola 67, umoliwiajc odrónienie tych identyfikatorów. class Student { private String nazwisko; public void ustawnazwisko(string nazwisko) { // inicjalizacja pola "nazwisko" wartogcie parametru "nazwisko" this.nazwisko = nazwisko; Wywoanie konstruktora z ciaa innego konstruktora jest moliwe poprzez uycie sowa kluczowego this wraz z ewentualn list parametrów 68. class Monitor { private String nazwa; private static int liczbamonitorów; public Monitor(){ liczbamonitorów++; public Monitor(String nazwa) { this(); // wywoanie konstruktora bezparametrowego this.nazwa = nazwa; // inicjalizacja pola wartogcie parametru OKRE*LANIE WIDOCZNO*CI SKADOWYCH KLASY Prawidowe okre+lenie widoczno+ci poszczególnych skadowych klasy umoliwia ukrycie implementacji. Zgodnie z zasadami OOP, dostp do pól powinien by realizowany wycznie za pomoc metod dostpowych i modyfikujcych (tworzcych tzw. interfejs obiektu). Proces ukrywania skadowych klasy nazywany jest enkapsulacj 69 i odbywa si poprzez uycie odpowiedniego modyfikatora dostpu (zazwyczaj private). 67 Tak zwane przesanianie zmiennych. 68 Wywoanie konstruktora przy uyciu this musi wystpi na pocztku bloku instrukcji.. 69 Enkapsulacja czsto nazywana jest równie hermetyzacj danych.

6 MODU 5 - KLASY I OBIEKTY 50 class Osoba{ // pola prywatne dost4p moiliwy tylko za pogrednictwem odpowiednich metod private String imie; private String nazwisko; private double pensja; // konstruktor public Osoba(String imie, String nazwisko, double pensja) { this.imie = imie; this.nazwisko = nazwisko; this.pensja = pensja; // publiczna metoda umoiliwiajeca zmian4 pensji danej osoby public void ustawpensje(double nowapensja) { pensja = nowapensja; Pytania sprawdzaj"ce 1. Czym jest klasa oraz jakie posiada cechy. 2. Do czego wykorzystywane s diagramy UML? 3. Czym jest obiekt oraz w jaki sposób jest tworzony. 4. Jaka rol w programowaniu obiektowym spenia operator new? 5. Wska rónice midzy metod, a konstruktorem. 6. Jaki proces zachodzi podczas wykonywania poniszej instrukcji: Laptop laptopfirmowy = new Laptop("Lenovo"); 7. Wymie. i scharakteryzuj skadowe klasy. 8. Czy niezainicjowane pola posiadaj warto+ pocztkow? Je+li tak, to jak? 9. Czy kada klasa musi posiada konstruktor? 10. Poniszy kod programu zawiera definicj klasy wraz z jej skadowymi. Wska ewentualne bdy. class PenDrive { private String nazwa; private int pojemnosc; public PenDrive(String nazwa, int pojemnosc){ nazwa = nazwa; pojemnosc = pojemnosc; return true; 11. Czy moliwe jest utworzenie nowego obiektu klasy PenDrive w nastpujcy sposób? PenDrive mojpendrive = new PenDrive(); 12. Jak funkcj peni sowo kluczowe this? 13. Jakie jest gówne zastosowanie enkapsulacji? 14. Poniej podany zosta kod programu wykorzystujcy klas PenDrive. Czy odwoanie do pola pojemnosc jest poprawne? PenDrive mojpendrive = new PenDrive("Toshiba", 4096); mojpendrive.pojemnosc = 8192; 15. Wska rónice midzy statycznymi (klasowymi) i niestatycznymi (instancyjnymi) polami klasy.

7 MODU 5 - KLASY I OBIEKTY Dlaczego z metody statycznej nie jest moliwe odwoanie do skadowych instancyjnych? 17. Podaj sytuacje, w których wykorzystuje si metody prywatne? 18. Wska przykad zastosowania metod dostpowych oraz modyfikujacych dla klasy PenDrive. 19. Jaka informacja zostanie wy+wietlona na konsoli po wykonaniu poniszego kodu programu: Student[] studenci = new Student[10]; System.out.println(studenci[4]); 20. Wska bd w poniszym kodzie programu, wykorzystujcym klas Telefon: int n = 10; Telefon[] telefony = new Telefon[n]; for (int i = 0; i < n; i++) { telefony[i].zadzwon("112"); Zadania do wykonania TWORZENIE KLAS Zadanie 90 TelefonyKowalskich.java Rodzina Kowalskich to Ania i Jarek. Oboje posiadaj telefony i korzystaj z nich czsto. Napisz w peni funkcjonaln klas Telefon, sprawd* jej dziaanie tworzc obiekty telefonów Anii i Jarka. Wykonaj rozmow z telefonu Anii oraz Jarka oraz oblicz kwot do zapaty, jak powinna zapaci Ania..

8 MODU 5 - KLASY I OBIEKTY 52 Rozwi.zanie class Telefon { // deklaracja pól private String numertelefonu; private int lacznyczasrozmow; private static double cenarozmowy = 0.48; // z/min. // konstruktor public Telefon (String numer) { numertelefonu = numer; // deklaracja metod public double obliczkwotedozaplaty() { return cenarozmowy * (lacznyczasrozmow / 60); public static void ustawcenerozmowy(double nowacena){ cenarozmowy = nowacena; public void zadzwon(string nrtelefonu) { System.out.println ("Dzwoni4 do: " + nrtelefonu); System.out.println ("Dry5, dry5..."); System.out.println ("Rozmowa w toku..."); int czasrozmowy = (int) (Math.random()*3600); lacznyczasrozmow += czasrozmowy; System.out.println ("Rozmowa zako5czona. "); System.out.printf ("Czas rozmowy: %d min. %d sek.", czasrozmowy/60, czasrozmowy%60); public class TelefonyKowalskich { public static void main(string[] args){ Telefon telefonani = new Telefon(" "); Telefon telefonjarka = new Telefon(" "); telefonani.zadzwon(" "); telefonjarka.zadzwon("112"); double kwota = telefonani.obliczkwotedozaplaty(); System.out.printf("Ania ma do zapaty %f z.", kwota); Zadanie 91 TelefonInfo.java Uzupenij klas Telefon o metody dostpowe oraz modyfikujce dla wszystkich pól. Sprawd* dziaanie utworzonych metod (np. wy+wietlenie numeru telefonu, wy+wietlenie cznego czasu rozmów, zmiana numeru telefonu dla konkretnych obiektów). Zadanie 92 WybieraneNumery.java Rozszerz funkcjonalno+ klasy Telefon poprzez dodanie listy dziesiciu ostatnio wybieranych numerów. Zmodyfikuj metod zadzwon(string)oraz dodaj metod wy+wietlajc list pocze. pokazwybieranenumery(). Wskazówka List ostatnio wybieranych numerów moesz przechowa w tablicy: private String[] wybieranenumery; Modyfikacja tablicy powinna nastpowa przy kadym wywoaniu metody zadzwon(string)

9 MODU 5 - KLASY I OBIEKTY 53 Zadanie 93 Licznik.java W zaawansowanych programach czsto istnieje konieczno+ dokonania zliczania liczby wykonywanych czynno+ci. Zdefiniuj klas Licznik z jednym polem prywatnym ilosc. Dopisz metod dostpow zwracajc warto+ pola ilosc oraz modyfikujc, której zadaniem bdzie inkrementacja pola ilosc. Nastpnie napisz program, który wykorzysta utworzon klas do zliczania liczby znaków spacji w podanym przez uytkownika zdaniu. Zadanie 94 Stoper.java Sprawdzanie wydajno+ci aplikacji wie si z pomiarem czasu jej wykonania. Zaprojektuj klas Stoper. Jej gównym zadaniem bdzie pomiar czasu pomidzy uruchomieniem stopera, a jego zatrzymaniem. Zastanów si jakie pola i metody bd potrzebne do realizacji tego zadania. Wykorzystaj metod currenttimemillis() z klasy System. Rozwi.zanie class Stoper { // deklaracja pól private long start; private long stop; private String nazwa; // konstruktory public Stoper() { nazwa = ""; public Stoper(String nazwa) { this.nazwa = nazwa; // metody public void start(){ start = System.currentTimeMillis(); public void stop(){ stop = System.currentTimeMillis(); public double pobierzwynik(){ return (stop - start) / ; Zadanie 95 TesterWydajnosciAplikacji.java Wykorzystaj klas Stoper do sprawdzenia, jaki jest czas wyznaczania kolejnych liczb pierwszych. Napisz program, który wyznaczy 1000 liczb pierwszych poprzez sprawdzenie kolejnych liczb naturalnych N, czy podzielne s wycznie przez N. Nastpnie porównaj szybko+ dziaania tej metody z algorytmem sita Eratostenesa. Który z algorytmów jest szybszy? Zastanów si, nad optymalizacj kodu, w celu zwikszenia wydajno+ci. Zadanie 96 PomiarCzasowPosrednich.java W wikszo+ci zada. z zastosowaniem stopera niezbdny jest pomiar czasów po+rednich (midzyczas). Dodaj do klasy Stoper odpowiedni metod zwracajc midzyczas osignity w chwili jej wywoania. Zmodyfikuj program sprawdzajcy wydajno+ metod liczby pierwsze, dokonujc pomiaru i wy+wietlania czasu oblicze., po obliczeniu kolejnych 250 liczb pierwszych. Zadanie 97 Kartografia.java Wspórzdne geograficzne wyraane s za pomoc dugo+ci i szeroko+ci geograficznej, mierzonych w stopniach, minutach i sekundach. Napisz program, który umoliwia przechowywanie informacji dotyczcych pooenia dowolnie wybranych miejscowo+ci oraz pozwala na wyznaczenie odlego+ci, które je dziel. Wybierz 3 dowolne miejscowo+ci (w tym miejscowo+, w której zamieszkujesz), a nastpnie odszukaj w sieci Internet ich wspórzdne geograficzne. Wyznacz odlego+ci dzielce te miejscowo+ci. Wy+wietl rezultaty na konsoli.

10 MODU 5 - KLASY I OBIEKTY 54 Rozwi.zanie Utwórz klas WspolrzedneGeograficzne, która stanowi bdzie podstaw do tworzenia obiektów reprezentujcych dowolne miejscowo+ci. Konstruktor klasy powinien zawiera parametry okre+lajce pooenie (wspórzdne geograficzne) miejscowo+ci. Utwórz metod statyczn umoliwiajc wyznaczenie (w stopniach, minutach i sekundach) odlego+ci dzielcej dwie dowolnie wybrane miejscowo+ci. Zadanie 98 UlamkiZwykle.java Java nie posiada klasy dla obsugi uamków zwykych. Zdefiniuj klas Ulamek, zawierajc pola licznik oraz mianownik, a take przykadowe metody (tworzenie uamka, upraszczania uamka, wy+wietlanie). Sprawd* dziaanie klasy tworzc uamki oraz wy+wietlajc je na konsoli.

11 MODU 5 - KLASY I OBIEKTY 55 Rozwi.zanie class Ulamek { // deklaracja pól private int licznik; private int mianownik; // konstruktory public Ulamek() { this.licznik = 0; this.mianownik = 1; public Ulamek(int licznik) { this.licznik = licznik; this.mianownik = 1; public Ulamek(int licznik, int mianownik) { this.licznik = licznik; this.mianownik = mianownik; uprosculamek(this); // metody private static int oblicznwd(ulamek a) { int l,m; l = a.licznik; m = a.mianownik; if (l < 0) l = - l; if (m < 0) m = - m; while ( l!= m) { if (l > m) l = l - m; else m = m - l; return l; private static void uprosculamek(ulamek a) { int nwd; nwd = oblicznwd(a); a.licznik /= nwd; a.mianownik /= nwd; public String tostring() { return this.licznik + "/" + this.mianownik; public class UlamkiZwykle { public static void main (String[] args) { Ulamek x = new Ulamek(4,6); Ulamek y = new Ulamek(10,12); System.out.println ("Ulamek x = " + x); System.out.println ("Ulamek y = " + y);

12 MODU 5 - KLASY I OBIEKTY 56 Zadanie 99 OperacjeNaUlamkach.java Uzupenij klas Ulamek o brakujce metody umoliwiajce przeprowadzenie podstawowych operacji na tym typie danych. Sygnatury metod znajdziesz poniej. Sprawd* poprawno+ wszystkich metod. public static Ulamek iloczynulamkow(ulamek a, Ulamek b) public static Ulamek sumaulamkow(ulamek a, Ulamek b) public static Ulamek ilorazulamkow(ulamek a, Ulamek b) public static Ulamek roznicaulamkow(ulamek a, Ulamek b) public static Ulamek nazwykly(double a) public static double nadziesietny(ulamek a) Zadanie 100 OperacjeNaDatach.java Sprawd* ile dni ju przeye+, którego dnia tygodnia si urodzie+ i ile dni zostao do sesji egzaminacyjnej. Utwórz klas reprezentujc dat. Uytkownik ma moliwo+ utworzenia obiektów tej klasy podajc dzie., miesic oraz rok. Klasa ma zawiera metod obliczajc liczb dni pomidzy dwoma datami, zwracajc dzie. tygodnia oraz podajc znak zodiaku, który jest odpowiedni dla danej daty. Zadanie 101 LiczbyZespolone.java Liczby zespolone to liczby w postaci x+iy, gdzie x i y to liczby rzeczywiste a i jest pierwiastkiem z -1. Liczba x jest cz+ci rzeczywista liczby zespolonej, a y cz+ci urojona. Utwórz klas LiczbyZespolone umoliwiajc tworzenie liczb zespolonych oraz podstawowe operacje z ich udziaem (dodawanie, odejmowanie, mnoenie, obliczanie warto+ci bezwzgldnej, zwracanie cz+ci rzeczywistej, urojonej, wy+wietlanie liczby zespolonej). Wskazówka Wicej informacji o liczbach zespolonych znajdziesz na stronie: Zadanie 102 StypendiumNaukowe.java Do uzyskania stypendium naukowego wymagana jest +rednia ozyskanych ocen, wiksza bd* równa 4.8. Pobierz ze standardowego wej+cia oceny studenta i sprawd* czy uzyska on wymagana +redni. Skorzystaj z wasnej klasy Statystyka obliczajcej +redni arytmetyczn.

13 MODU 5 - KLASY I OBIEKTY 57 Rozwi.zanie import java.util.*; class Statystyka { // deklaracja pól private double dane[]; // konstruktory public Statystyka(double[] tablica) { dane = tablica; // metody public double sredniaarytmetyczna(){ double suma = 0; for (double x : dane) suma += x; return (suma / dane.length); public class StypendiumNaukowe{ public static void main(string[] args){ Scanner wejscie = new Scanner(System.in); System.out.print("Podaj ilogs ocen: "); int n = wejscie.nextint(); double[] oceny = new double[n]; for(int i=0;i<n;i++){ System.out.print("Podaj ocen4: "); oceny[i] = wejscie.nextdouble(); Statystyka obliczenia = new Statystyka(oceny); double srednia = obliczenia.sredniaarytmetyczna(); System.out.println("Stypendium naukowe " + (srednia >= 4.8? "zostao przyznane" : "nie zostao przyznane")); Zadanie 103 ObliczenieStatystyczne.java Szef Ani poprosi j o wyznaczenie podstawowych wska*ników statystycznych dla kilku cigów danych. Poniej zamieszczone zostay dane, dostarczone przez szefa Ani. Dodaj do klasy Statystyka niezbdne metody (mediana, dominanta, odchylenie +rednie, wariancja, odchylenie standardowe) oraz przedstaw uzyskane wyniki. Klient 1: 0.5, 4.7, 3.8, 7.9, 5.2, 6.0, 3.5, 7.1 Klient 2: 9.3, 2.6, 6.3, 5.2, 3.5, 8.3, 8.1, 3.0, 3.1, 5.2, 7.7 Klient 3: 2.1, 2.5, 2.8, 3.4, 4.5, 3.9, 5.6, 6.0, 5.7, 3.4, 2.4, 9.1, 8.3, 8.8 Zadanie 104 ObiektRzeczywisty.java Znajd* obiekt wystpujcy w rzeczywisto+ci i stwórz dla niego odpowiedni implementacj w Javie (klasa plus przykadowe obiekty). Zadanie 105 NajlepsiGracze.java Gry komputerowe posiadaj list najlepszych rezultatów osignitych przez poszczególnych grajcych. Osoby, które uzyskay najwiksz liczb punktów zajmuj najwysze miejsce. Utwórz program, który na podstawie osignitych rezultatów przez 30 grajcych, sporzdzi list 10 najlepszych wyników. Przykad listy przedstawiono poniej. Liczb uzyskanych punktów wygeneruj losowo z przedziau <0,10000>. Miejsce Gracz Wynik 1 Terminator Alex Morfeusz Easyrider Merlin 1321

14 MODU 5 - KLASY I OBIEKTY 58 Rozwi.zanie Wykorzystaj w zadaniu poniszy kod programu. Klasa Gracz bdzie przechowywa dane poszczególnych grajcych (nick, wynik), natomiast klasa NajlepszaDziesiatka list dziesiciu grajcych, którzy osignli najlepszy rezultat. Uzupenij ponisze klasy wykorzystujc enkapsulacj danych, konstruktory oraz metody dostpowe i modyfikujce. class Gracz { String nick; int wynik; public Gracz(String nick, int wynik){ this.nick = nick; this.wynik = wynik; public int pobierzwynik(){ return wynik; public String tostring(){ return nick + " " + wynik + "\n"; class NajlepszaDziesiatka { Gracz[] top; public NajlepszaDziesiatka(){ top = new Gracz[10]; public void dodajgracza(gracz gracz){ public String tostring() { String wynik = ""; for(gracz x : top) wynik += x; return wynik;

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

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

Sposoby przekazywania parametrów w metodach.

Sposoby przekazywania parametrów w metodach. Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych

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

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych 2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:

Bardziej szczegółowo

Projektowanie algorytmów rekurencyjnych

Projektowanie algorytmów rekurencyjnych C9 Projektowanie algorytmów rekurencyjnych wiczenie 1. Przeanalizowa działanie poniszego algorytmu dla parametru wejciowego n = 4 (rysunek 9.1): n i i

Bardziej szczegółowo

Modu 1 rodowisko programistyczne

Modu 1 rodowisko programistyczne MODU 1 RODOWISKO PROGRAMISTYCZNE 2 Modu 1 rodowisko programistyczne Zawarto jednostki Po zrealizowaniu jednostki bdziesz w stanie: uruchomi prost aplikacj z wykorzystaniem konsoli lub rodowiska programistycznego

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

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

Modu 6 Kompozycja i dziedziczenie

Modu 6 Kompozycja i dziedziczenie MODU 6 KOMPOZYCJA I DZIEDZICZENIE 59 Modu 6 Kompozycja i dziedziczenie Zawarto jednostki Po zrealizowaniu jednostki bdziesz w stanie: wykorzystywa istniejcy kod programu, w celu jego rozszerzenia tworzy

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

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

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas

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

11.6 Klasa do obsługi liczb wymiernych

11.6 Klasa do obsługi liczb wymiernych 246 11.6 Klasa do obsługi liczb wymiernych Klasa do obsługi liczb wymiernych, którą teraz zaprojektujemy w celu zilustrowania korzyści wynikających z programowania obiektowego, służy do zgrabnego wykonywania

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

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

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1 Ćwiczenie 1 Uruchamianie programu w Netbeans Uruchom środowisko Netbeans. Stwórz nowy projekt typu Java Application. Nadaj projektowi nazwę HelloWorld (Project Name), zwróć uwagę na folder, w którym zostanie

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

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

Zadania do wykonaj przed przyst!pieniem do pracy:

Zadania do wykonaj przed przyst!pieniem do pracy: wiczenie 3 Tworzenie bazy danych Biblioteka tworzenie kwerend, formularzy Cel wiczenia: Zapoznanie si ze sposobami konstruowania formularzy operujcych na danych z tabel oraz metodami tworzenia kwerend

Bardziej szczegółowo

Modu 2 Typy danych, zmienne i operatory

Modu 2 Typy danych, zmienne i operatory MODU 2 TYPY DANYCH, ZMIENNE I OPERATORY 8 Modu 2 Typy danych, zmienne i operatory Zawarto tematyczna Po zrealizowaniu jednostki bdziesz w stanie: efektywnie wykorzystywa dostpne typy prymitywne deklarowa

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

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

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

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

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

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

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

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

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to

Bardziej szczegółowo

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

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main Język obiektowy Wykład 13 Programowanie obiektowe z lotu ptaka, str 1 James Gosling, Mike Sheridan, Patrick Naughton Sun Microsystems 1995(20latmłodszyodC) C jest językiem proceduralnym Java jest językiem

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

1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!!

1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!! Temat: Klasy typu sealed. Klasy abstrakcyjne. Deklaracja i implementacja interfejsu. Typ Object i operatory is oraz as. Czas ycia obiektu. Destruktory. 1. Klasa typu sealed Przykład 1 Klasa typu sealed

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

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

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

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

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

Programowanie obiektowe, wykład nr 6. Klasy i obiekty Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto

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

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

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

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

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

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

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Związki między klasami: jest i zawiera Programowanie obiektowe Przkład: Pojazd Kompozycja i dziedziczenie klas Silnik Pojazd silnikowy Rower Wóz konny Paweł Rogaliński Instytut Informatyki, Automatyki

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

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

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

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

Pola i metody statyczne. Klasy zawierające pola i metody statyczne Instrukcja laboratoryjna nr 1 Programowanie w języku C 2 (C++ poziom zaawansowany) Pola i metody statyczne. Klasy zawierające pola i metody statyczne dr inż. Kaczmarek Tomasz mgr inż. Lasota Maciej dr

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

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

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

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

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

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy: wiczenie 2 Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Cel wiczenia: Zapoznanie si ze sposobami konstruowania tabel, powiza pomidzy tabelami oraz metodami manipulowania

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

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

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

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this Wstęp do programowania obiektowego WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this 1 Nazwa typu Rozmiar Zakres Uwagi bool 1 bit wartości true albo false stdbool.h TYPY ZNAKOWE

Bardziej szczegółowo

Platformy Programistyczne Podstawy języka Java

Platformy Programistyczne Podstawy języka Java Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo

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

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

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

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

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

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

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1 PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,

Bardziej szczegółowo

obsług dowolnego typu formularzy (np. formularzy ankietowych), pobieranie wzorców formularzy z serwera centralnego,

obsług dowolnego typu formularzy (np. formularzy ankietowych), pobieranie wzorców formularzy z serwera centralnego, Wstp GeForms to program przeznaczony na telefony komórkowe (tzw. midlet) z obsług Javy (J2ME) umoliwiajcy wprowadzanie danych według rónorodnych wzorców. Wzory formularzy s pobierane z serwera centralnego

Bardziej szczegółowo

KLASY cz4. Dorota Pylak. destruktory składowe statyczne przeciążanie operatorów. wskaźniki

KLASY cz4. Dorota Pylak. destruktory składowe statyczne przeciążanie operatorów. wskaźniki KLASY cz4. destruktory składowe statyczne przeciążanie operatorów Dorota Pylak wskaźniki 2 Klasy - podsumowanie poznanych wiadomości Deklaracja klasy może zawierać pola, konstruktory oraz metody. W deklaracji

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

Programowanie obiektowe

Programowanie obiektowe Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje

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

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

Klonowanie MAC adresu oraz TTL

Klonowanie MAC adresu oraz TTL 1. Co to jest MAC adres? Klonowanie MAC adresu oraz TTL Adres MAC (Media Access Control) to unikalny adres (numer seryjny) kadego urzdzenia sieciowego (jak np. karta sieciowa). Kady MAC adres ma długo

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

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

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

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

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

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

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Literatura Języki i paradygmaty programowania Wykład 2 1. C. S. Horstman, G. Cornell, core Java 2 Podstawy, Helion 2003

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

UML a kod. C++, Java i C#

UML a kod. C++, Java i C# UML a kod C++, Java i C# UML a kod w C++ i Javie Projektowanie oprogramowania! Dokumentowanie oprogramowania Diagramy przypadków użycia Klasy użytkowników i wykorzystywane funkcje Mogą sugerować podział

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

Klasy i obiekty. Programowanie zorientowane obiektowo. Case study: Filmoteka Case study: Klasa Akademik

Klasy i obiekty. Programowanie zorientowane obiektowo. Case study: Filmoteka Case study: Klasa Akademik Klasy i obiekty. Programowanie zorientowane obiektowo. Case study: Filmoteka Case study: Klasa Akademik Dlaczego obiekty Załóżmy, że mamy napisać program o następującej specyfikacji: 1. Program wyświetla

Bardziej szczegółowo

KLASY cz.1. Dorota Pylak

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

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13: RTTI 6/2/2013 S.Deniziak: Programowanie obiektowe - Java 1 Po co informacja o typie obiektu? Polimorfizm Kolekcje Deserializacja 6/2/2013 S.Deniziak: Programowanie obiektowe

Bardziej szczegółowo

Podstawy Programowania semestr drugi. Wykład czternasty

Podstawy Programowania semestr drugi. Wykład czternasty Wykład czternasty 1. Polimorfizm Ostatni wykład zakończyliśmy stwierdzeniem, że możemy obiektowi dowolnej klasy przypisa ć obiekt klasy dziedziczącej po tej klasie. Przypisanie takie obejmuje jednak jedynie

Bardziej szczegółowo

Klasy abstrakcyjne, interfejsy i polimorfizm

Klasy abstrakcyjne, interfejsy i polimorfizm Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie

Bardziej szczegółowo

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C #import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:

Bardziej szczegółowo

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

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT] Programowanie w Javie Lista nr 1 1. Jak uruchomić pierwszy program w Javie? Przykład przy wykorzystaniu NetBeans: File->New Project Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Bardziej szczegółowo

Bazy danych Podstawy teoretyczne

Bazy danych Podstawy teoretyczne Pojcia podstawowe Baza Danych jest to zbiór danych o okrelonej strukturze zapisany w nieulotnej pamici, mogcy zaspokoi potrzeby wielu u!ytkowników korzystajcych z niego w sposóbs selektywny w dogodnym

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

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. PROGRAMOWANIE OBIEKTOWE W C++ - cz 1 Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. Program komputerowy opisuje w pewien sposób rzeczywisto.

Bardziej szczegółowo

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 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 w Javie 1 Wykład i Ćwiczenia 2 Przegląd podstawowych klas w Javie (elementy programowania obiektowego) Płock, 16 października 2013 r. Czym jest obiekt w programowaniu obiektowym? Programowanie

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

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

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7 Instrukcja 7 Laboratoria 9, 10 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstaw programowania obiektowego wkład 5 klas i obiekt namespace ConsoleApplication1 // współrzędne punktu int, ; Jak, korzstając z dotchczasowej wiedz, zdefiniować w programie punkt? = 3; = 2; Może tak?

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

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