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;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Polimorfizm, metody wirtualne i klasy abstrakcyjne

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

Bardziej szczegółowo

Programowanie 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bardziej szczegółowo

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bardziej szczegółowo

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 obiektowe i zdarzeniowe

Programowanie obiektowe i zdarzeniowe Programowanie obiektowe i zdarzeniowe wkład 2 klas i obiekt namespace ConsoleApplication1 // współrzędne punktu int, ; Jak zdefiniować w programie punkt? = 3; = 2; Może tak? // wpisanie informacji Console.WriteLine("

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Java Język programowania

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

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Moduł 4 - Tworzenie obiektów i metod

Moduł 4 - Tworzenie obiektów i metod MODUŁ 4 - TWORZENIE OBIEKTÓW I METOD 32 Moduł 4 - Tworzenie obiektów i metod Zawartość jednostki Po zrealizowaniu jednostki będziesz w stanie: wskazać różnice między zmienną typu prostego, a obiektem (zmienną

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Tworzenie aplikacji w języku Java

Tworzenie aplikacji w języku Java Tworzenie aplikacji w języku Java Wykład 2 Java Collections Framework Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku

Bardziej szczegółowo

System Connector Opis wdrożenia systemu

System Connector Opis wdrożenia systemu System Connector Opis wdrożenia systemu Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Spistre ci Wymagania z perspektywy Powiatowego Urzdu Pracy... 3

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

JDK można pobrać ze strony http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html

JDK można pobrać ze strony http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html Program napisany w języku Java, w wyniku kompilacji da kod bajtowy, plik z rozszerzeniem.class. Nie jest to plik wykonywalny samodzielnie w systemie operacyjnym tak jak pliki.exe. Uruchomienie gotowego

Bardziej szczegółowo

Wprowadzenie do obiektowości

Wprowadzenie do obiektowości Wprowadzenie do obiektowości Obiekt jest abstrakcją pewnego konkretnego bytu ze świata rzeczywistego, reprezentujący rzecz (obiekt fizyczny), pojęcie (obiekt konceptualny) lub pewny byt programistyczny

Bardziej szczegółowo

Java. Zadania z programowania z przykładowymi rozwiązaniami

Java. Zadania z programowania z przykładowymi rozwiązaniami Idź do Spis treści Przykładowy rozdział Katalog książek Katalog online Zamów drukowany katalog Twój koszyk Dodaj do koszyka Cennik i informacje Zamów informacje o nowościach Zamów cennik Czytelnia Fragmenty

Bardziej szczegółowo

Instrukcja obsługi dodatku InsERT GT Smart Documents

Instrukcja obsługi dodatku InsERT GT Smart Documents Instrukcja obsługi dodatku InsERT GT Smart Documents InsERT, grudzie 2003 http://www.insert.com.pl/office2003 InsERT GT Smart Documents to przygotowany przez firm InsERT specjalny dodatek, umoliwiajcy

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 4, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 4, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 4, część 3 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

Mozilla Firefox 2.0.0.2 PL. Wykorzystanie certyfikatów niekwalifikowanych w oprogramowaniu Mozilla Firefox 2.0.0.2 PL. wersja 1.1

Mozilla Firefox 2.0.0.2 PL. Wykorzystanie certyfikatów niekwalifikowanych w oprogramowaniu Mozilla Firefox 2.0.0.2 PL. wersja 1.1 Mozilla Firefox 2.0.0.2 PL Wykorzystanie certyfikatów niekwalifikowanych w oprogramowaniu Mozilla Firefox 2.0.0.2 PL wersja 1.1 Spis treci 1. INSTALACJA CERTYFIKATÓW URZDÓW POREDNICH... 3 2. INSTALACJA

Bardziej szczegółowo

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

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle Pętle while, for, while, instrukcje break, continue, switch 1. Pętle Przykład 1 - Pętla while public class lab4_3 public static void main(string[] args) char ch = 'a'; String s, wynik=""; while ( ch!=

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

Komputerowa Ksiga Podatkowa Wersja 11.4 ZAKOCZENIE ROKU

Komputerowa Ksiga Podatkowa Wersja 11.4 ZAKOCZENIE ROKU Komputerowa Ksiga Podatkowa Wersja 11.4 ZAKOCZENIE ROKU Przed przystpieniem do liczenia deklaracji PIT-36, PIT-37, PIT-O i zestawienia PIT-D naley zapozna si z objanieniami do powyszych deklaracji. Uwaga:

Bardziej szczegółowo

Multipro GbE. Testy RFC2544. Wszystko na jednej platformie

Multipro GbE. Testy RFC2544. Wszystko na jednej platformie Multipro GbE Testy RFC2544 Wszystko na jednej platformie Interlab Sp z o.o, ul.kosiarzy 37 paw.20, 02-953 Warszawa tel: (022) 840-81-70; fax: 022 651 83 71; mail: interlab@interlab.pl www.interlab.pl Wprowadzenie

Bardziej szczegółowo

Projektowanie klas c.d. Projektowanie klas przykład

Projektowanie klas c.d. Projektowanie klas przykład Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej

Bardziej szczegółowo

Programowanie Obiektowe (Java)

Programowanie Obiektowe (Java) 1. Wprowadzenie do kontenerów Wykład ósmy Kontenery s ą obiektami, które potrafi ą przechowywa ć inne obiekty w określony sposób. O kontenerach można myśle ć jako o gotowych do użycia strukturach danych.

Bardziej szczegółowo

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1 z wykorzystaniem języka Java ME ćwiczenia 1 Budowa aplikacji MIDP utworzenie klasy dziedziczącej z klasy java.microedition.midlet.midlet Klasa musi posiadać przynajmniej trzy metody: startapp() inicjalizacja

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo

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

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4 Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.

Bardziej szczegółowo

Algorytmy i język C++

Algorytmy i język C++ Wykład 6 Wskaźniki Wskaźnik nie przechowuje wartości zmiennej ale, podobnie jak tablica, wskazuje miejsce w pamięci, w którym znajduje się zmienna danego typu. W poniższym przykładzie symbol * pomiędzy

Bardziej szczegółowo

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

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

Bardziej szczegółowo