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;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

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

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

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe 1 Wprowadzenie 1.1 rodowisko programistyczne NetBeans https://netbeans.org/ 1.2 Dokumentacja j zyka Java https://docs.oracle.com/javase/8/docs/api/

Bardziej szczegółowo

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

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy PODSTAWOWE ELEMENTY JĘZYKA JAVA TYPY DANYCH, OPERATORY I INSTRUKCJE 1. Definicja klasy, dziedziczenie, implementowanie metod interfejsów class nazwa_klasy //ciało klasy Klasa: przed słowem class moŝe wystąpić

Bardziej szczegółowo

Programowanie, część I

Programowanie, część I 11 marca 2010 Kontakt Wstęp Informacje organizacyjne Materiał na ćwiczenia Plan wykładu http://www.fuw.edu.pl/~rwys/prog rwys@fuw.edu.pl tel. 22 55 32 263 Materiał na ćwiczenia Informacje organizacyjne

Bardziej szczegółowo

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

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

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

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

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Programowanie Obiektowe

Programowanie Obiektowe Programowanie Obiektowe dr in. Piotr Zabawa IBM/Rational Certified Consultant pzabawa@pk.edu.pl WYKŁAD 1 Wstp, jzyki, obiektowo Cele wykładu Zaznajomienie słuchaczy z głównymi cechami obiektowoci Przedstawienie

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 4 Warszawa, 2016Z 2 Pętle, typ tablicowy, usługi czasu i kalendarza 3 Pętla while 1/3 Instrukcja pętli umożliwia

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

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run(). Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public

Bardziej szczegółowo

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation). Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation). 1. Programowanie zdarzeniowe Programowanie zdarzeniowe

Bardziej szczegółowo

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura Programowanie komputerów Programowanie obiektowe. Typy zmiennych proste i złożone Typy zmiennych "wbudowane", tj. identyfikowane przez słowa kluczowe, są określane jako proste: int short long float double

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe i zdarzeniowe Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie

Bardziej szczegółowo

zdefiniowanie kilku grup dyskusyjnych, z których chcemy odbiera informacje, dodawanie, usuwanie lub edycj wczeniej zdefiniowanych grup dyskusyjnych,

zdefiniowanie kilku grup dyskusyjnych, z których chcemy odbiera informacje, dodawanie, usuwanie lub edycj wczeniej zdefiniowanych grup dyskusyjnych, Wstp W nowoczesnym wiecie coraz istotniejsz rol odgrywa informacja i łatwy dostp do niej. Nie dziwi wic fakt, i nowoczesne telefony komórkowe to nie tylko urzdzenia do prowadzenia rozmów telefonicznych,

Bardziej szczegółowo

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

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

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

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 O mnie prowadzący wykład: Dariusz Wardowski pokój: A334 dyżur: środa, godz. 10.00 12.00 e-mail: wardd@math.uni.lodz.pl

Bardziej szczegółowo

Programowanie, algorytmy i struktury danych

Programowanie, algorytmy i struktury danych 1/44 Programowanie, algorytmy i struktury danych materiały do wykładu: http://cez.wipb.pl/moodle/ email: m.tabedzki@pb.edu.pl strona: http://aragorn.pb.bialystok.pl/~tabedzki/ Marek Tabędzki Wymagania

Bardziej szczegółowo

Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne

Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne import javax.swing.*; import java.util.*; public class Napis4 { String wynik = ""; static int ile_obiektow

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

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

/** 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

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

Programowanie 3 - Funkcje, pliki i klasy

Programowanie 3 - Funkcje, pliki i klasy Instytut Informatyki Uniwersytetu Śląskiego Laborki funkcja; parametry funkcji; typ zwracany; typ void; funkcje bez parametrów; napis.length() - jako przykład funkcji. Zadania funkcja dodająca dwie liczby;

Bardziej szczegółowo

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

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza Akademia ETI Wprowadzenie do programowania w Javie PG Java User Group 1 Dlaczego Java? Najpopularniejszy język programowania obiektowego Łatwy w nauce Dostępny na wiele platform 2 Platformy Java Java Standard

Bardziej szczegółowo

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pętle for, while, do... while, foreach Jeszcze o operatorach... Skrócone operatory arytmetyczne przykład x +=

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

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

Wstęp do ruby dla programistów javy

Wstęp do ruby dla programistów javy czyli dlaczego java ssie Akademickie Stowarzyszenie Informatyczne 26 lutego 2011 Podstawowe cechy Ruby vs Java Wieloparadygmatowy Imperatywny Typowanie Silne Dynamiczne Otwarte klasy Interpretowany Wszystko

Bardziej szczegółowo

Spis treści. 1 Java T M

Spis treści. 1 Java T M Spis treści 1 Java T M 1 2 Co to jest Platforma Java T M 1 3 Przygotowanie komputera 2 4 Pierwszy program 2 5 Dokumentacja 3 6 Budowa aplikacji. Klasy. 3 7 Pola i metody 4 8 Konstruktory 5 9 Inne proste

Bardziej szczegółowo

Programowanie obiektowe i C++ dla matematyków

Programowanie obiektowe i C++ dla matematyków Programowanie obiektowe i C++ dla matematyków Bartosz Szreder szreder (at) mimuw... 22 XI 2011 Uwaga! Ponieważ już sobie powiedzieliśmy np. o wskaźnikach i referencjach, przez które nie chcemy przegrzebywać

Bardziej szczegółowo

Proces tworzenia programu:

Proces tworzenia programu: Temat 1 Pojcia: algorytm, program, kompilacja i wykonanie programu. Proste typy danych i deklaracja zmiennych typu prostego. Instrukcja przypisania. Operacje wejcia/wyjcia. Przykłady prostych programów

Bardziej szczegółowo

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Instrukcje wyboru Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne Być, czy nie być?

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

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

Programowanie - instrukcje sterujące

Programowanie - instrukcje sterujące Instytut Informatyki Uniwersytetu Śląskiego Laborki środowisko NetBeans, tworzenie nowego projektu; okno projekty; główne okno programu; package - budowanie paczek z klas; public class JavaApplication

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

Program Sprzeda wersja 2011 Korekty rabatowe

Program Sprzeda wersja 2011 Korekty rabatowe Autor: Jacek Bielecki Ostatnia zmiana: 14 marca 2011 Wersja: 2011 Spis treci Program Sprzeda wersja 2011 Korekty rabatowe PROGRAM SPRZEDA WERSJA 2011 KOREKTY RABATOWE... 1 Spis treci... 1 Aktywacja funkcjonalnoci...

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Podstawy obiektowości

Podstawy obiektowości Podstawy obiektowości Zad. Zamówienie 1. Napisać program do obsługi zamówień. Program powinien składać się z dwóch klas: Zamowienie oraz Pozycja, przy czym każde zamówienie zawierać może jedną lub więcej

Bardziej szczegółowo

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie 0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na

Bardziej szczegółowo

Instrukcja obsługi programu Pilot PS 5rc

Instrukcja obsługi programu Pilot PS 5rc Instrukcja obsługi programu Pilot PS 5rc Spis treci 1.Wprowadzenie....3 2. Wymagania....3 3. Instalacja oprogramowania...3 4. Uruchomienie Programu...5 4.1. Menu główne...5 4.2. Zakładki...6 5. Praca z

Bardziej szczegółowo

Instrukcja dla pracowników Uniwersytetu Rzeszowskiego.

Instrukcja dla pracowników Uniwersytetu Rzeszowskiego. Dost p!do!infrastruktury!informatycznej. Instrukcja dla pracowników Uniwersytetu Rzeszowskiego. Wersja dokumentu: 1.0.0 Rzeszów: 23.10.2009 OPTeam S.A. 35-032 Rzeszów, ul. Lisa Kuli 3 INFORMACJA O NOWYCH

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

PARADYGMATY PROGRAMOWANIA Wykład 3

PARADYGMATY PROGRAMOWANIA Wykład 3 PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na

Bardziej szczegółowo

Projektowanie aplikacji internetowych laboratorium

Projektowanie aplikacji internetowych laboratorium Projektowanie aplikacji internetowych laboratorium Programowanie w języku Java Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 7 (zrzuty ekranów pochodzą z wersji

Bardziej szczegółowo

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Programowanie C# mgr in. Dariusz Ku p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Translacja kodu Kod ródłowy Java, C# Kompilator Kompilator Kod poredni Interpreter Maszyna wirtualna

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 1, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 3 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

Szablony klas, zastosowanie szablonów w programach

Szablony klas, zastosowanie szablonów w programach Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do

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

PROWIZJE Menad er Schematy rozliczeniowe

PROWIZJE Menad er Schematy rozliczeniowe W nowej wersji systemu pojawił si specjalny moduł dla menaderów przychodni. Na razie jest to rozwizanie pilotaowe i udostpniono w nim jedn funkcj, która zostanie przybliona w niniejszym biuletynie. Docelowo

Bardziej szczegółowo

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min)

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min) Zadanie5_28 Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min) Opis zadania Wykorzystaj gotowy projekt Nowe auto, a nastpnie zaprojektuj klas bazow NoweAuto

Bardziej szczegółowo

Interfejsy i klasy wewnętrzne

Interfejsy i klasy wewnętrzne Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw

Bardziej szczegółowo