PODSTAWY PROGRAMOWANIA OBIEKTOWEGO W JAVIE ZAGADNIENIA SZCZEGÓŁOWE

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

Download "PODSTAWY PROGRAMOWANIA OBIEKTOWEGO W JAVIE ZAGADNIENIA SZCZEGÓŁOWE"

Transkrypt

1 PODSTAWY PROGRAMOWANIA OBIEKTOWEGO W JAVIE ZAGADNIENIA SZCZEGÓŁOWE Konwencje programistyczne Pakiety z małych liter Pakiety w konwencji pl.edu.pwr.programowanie.lab4 com.net.super.program.pakiet1.podpakiet2 Nazwy klas rozpoczynamy Wielką literą. class Klasa{... Nazwy metod rozpoczynamy z małej litery. void metoda(){... Nazwy zmiennych rozpoczynamy z małej litery. int zmienna; Jeśli nazwa składa się z kilku wyrazów, to kolejne człony rozpoczynamy także z Wielkiej litery (notacja wielbłądzia ). Stałe (public static final) piszemy z samych dużych liter (można używać podłogi) Klasy a typy podstawowe Obiekt Podstawowy Symbol Size/Format Byte byte 8-bit kod U2 Short short 16-bit kod U2 Integer int 32-bit kod U2 Long long l 64-bit kod U2 Float float f 32-bit IEEE 754 Double double d (opcja) 64-bit IEEE 754 Character '' Pojedynczy znak bit Unicode String -- "" Łańcuch tekstowy Boolean bool true lub false Klasy podstawowe (pisane z małych liter są jedynym wyjątkiem zasady, że wszystkie typy w jawie to obiekty). Każdy typ podstawowy (pisany z małej) ma jednak odpowiednik obiektowy (pisany z dużej) int i=new int(10); // błąd int i=10; //OK Integer i=new Integer(10); //OK Polimorfizm Jednym z najważniejszych mechanizmów programowania obiektowego jest polimorfizm dynamiczny, czyli możliwość różnego implementowania metod w klasie bazowej i w klasach pochodnych, przy zachowaniu tego samego celu (Klasyczny przykład z polami figur). W języku C++ podobny efekt otrzymuje się stosując metody wirtualne.

2 public class DziedziczenieA1 { protected void mymethod1(){ System.out.println("Wykonuj metodę 1 w klasie A1"); protected void mymethod2(){ System.out.println("Wykonuj metodę 2 w klasie A1"); protected void mymethod3(){ System.out.println("Wykonuj metodę 3 w klasie A1"); public class DziedziczenieA2 extends DziedziczenieA1 { protected void mymethod2(){ System.out.println("Wykonuj metodę 2 w klasie A2"); protected void mymethod3(){ super.mymethod3(); System.out.println("Wykonuj metodę 3 w klasie A2"); protected static void execute(){ DziedziczenieA2 da2=new DziedziczenieA2(); da2.mymethod1(); da2.mymethod2(); da2.mymethod3(); Programowanie obiektowe to sztuka oddzielenia tego co stałe od tego co zmienne. Podstawowym problemem przy tworzeniu hierarchii klas jest oddzielenie tych pól i metod, które na pewno będą używane (choć być może zostaną one później uszczegółowione) we wszystkich klasach i zdefiniowanie ich w klasie bazowej od metod i zmiennych związanych tylko ze specyfiką klas pochodnych (i problemów programistycznych z nimi związanymi) Klasa bazowa : Odtwarzacz multimedialny public class BaseMultimediaPlayer { Label title; Browser browser; String resourcetodisplay; void initgui(){ Display display = new Display (); final Shell shell = new Shell(display); GridLayout gl=new GridLayout(1, true); shell.setlayout(gl); title=new Label(shell, SWT.CENTER); title.settext( this.gettext()); GridData gdtitle = new GridData(SWT.FILL, SWT.FILL, true, false); gdtitle.heighthint=50; title.setlayoutdata( gdtitle); Browser browser=new Browser(shell, SWT.BORDER); GridData gdbrowser=new GridData(SWT.FILL,SWT.FILL,true,true); browser.setlayoutdata(gdbrowser); browser.seturl(this.geturl()+this.getresource()); shell.open (); shell.setsize(600,800);

3 while (!shell.isdisposed ()) { if (!display.readanddispatch ()) display.sleep (); display.dispose (); String gettext(){ return "Przeglądarka plików multimedialnych różnych typów"; String geturl(){ return " String getresource() { return ""; Klasa pochodne: odtwarzacz filmów, zdjęć i radiowy public class MoviePlayer extends BaseMultimediaPlayer { String moviepath; public MoviePlayer(String moviepath) { super(); this.moviepath = moviepath; String gettext() { return super.gettext() + "- Przeglądanie filmów"; String geturl() { return " String getresource() { return moviepath; public class PhotoViewer extends BaseMultimediaPlayer { String photo; public PhotoViewer(String photo) { super(); this.photo = photo; String gettext() { return super.gettext()+" - Przeglądanie fotografii"; String geturl() { return " String getresource() { return photo;

4 public class RadioTuner extends BaseMultimediaPlayer { String radiostation; public RadioTuner(String radiostation) { super(); this.radiostation = radiostation; String gettext() { return super.gettext()+" - odtwarzacz stacji radiowych"; String geturl() { return " String getresource() { return radiostation; Polimorfizm możemy też wykorzystywać do wyłączania niepotrzebnych funkcjonalności public class PainInTheAxx { private Label label; private Text text; private Button button; String[] titles={"imię","nazwisko","firma","ulica","numer domu","numer lokalu","nip","pesel","data wystawienia","data płatności"; Shell shell; public void initgui() { for (String s:titles){ label=new Label(shell,SWT.NONE); labe label.settext(s); text=new Text(shell, SWT.BORDER); text.setlayoutdata(gd); text.addverifylistener(new VerifyListener() { ); public void verifytext(verifyevent arg0) { arg0.doit=verifyfield(arg0.getsource()); protected boolean verifyfield(object source) { MessageBox mb= new MessageBox(shell,SWT.OK+SWT.CANCEL); mb.setmessage("czy na pewno chcesz zmienić to pole"); return mb.open()==swt.ok; // Klasa otaczająca PainInTheAxx cw=new PainInTheAxx(){ protected boolean verifyfield(object source) {return true;

5 ; Metody i klasy abstrakcyjne Niekiedy na etapie projektowania klasy bazowej jest jeszcze za wcześnie aby określać co dokładnie ma wykonywać dana metoda, mimo, ze wiemy że na pewno będzie potrzebna. Możemy zdefiniować taką metodę jako abstrakcyjną tworząc tylko jej prototyp poprzedzony słowem kluczowy abstract Klasa jest abstrakcyjna jeżeli zawiera przynajmniej jedną metodę abstrakcyjną lub jeśli którakolwiek z jej przodków zawiera metodę abstrakcyjną nie uszczegółowioną w tej klasie. Klasy abstrakcyjne nie mogą mieć bezpośrednich instancji (chyba, że z wykorzystaniem anonimowych klas wewnętrznych) Klasa bazowa formularz z możliwością (prowizorycznego) zapisywania danych: public abstract class AbstractPersistentComposite extends Composite { Shell shell; Display display; String databasename; public AbstractPersistentComposite(Shell parentshell, int swtarguments,string databasename) { super(parentshell, swtarguments); this.shell=parentshell; this.display=display.getdefault(); this.databasename=databasename; void initgui(){ GridLayout glshell=new GridLayout(1,true); shell.setlayout(glshell); GridLayout gdcomposite=new GridLayout(2,true); this.setlayout(gdcomposite); setfields(this); GridData gdbutton=new GridData(SWT.FILL,SWT.FILL,true,true); gdbutton.horizontalspan=2; Button b=new Button(shell, SWT.FLAT); b.settext("zapisz dane i zamknij"); b.setlayoutdata(gdbutton); b.addselectionlistener(new SelectionAdapter() { public void widgetselected(selectionevent arg0) { savefieldstofilestream(); shell.close(); ); loadfieldsfromfilestream(); void savefieldstofilestream() { BufferedWriter br=null; try { br=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(databaseName))); for(control c:this.getchildren()){ if(c instanceof Text){ br.write(((text)c).gettext()); br.newline(); if(c instanceof Combo){ br.write(((combo)c).gettext()); br.newline(); br.close(); catch (Exception e) {

6 e.printstacktrace(); void loadfieldsfromfilestream() { BufferedReader br=null; try { br=new BufferedReader(new InputStreamReader(new FileInputStream(databaseName))); for(control c:this.getchildren()){ if(c instanceof Text){ ((Text)c).setText(br.readLine()); if(c instanceof Combo){ ((Combo)c).setText(br.readLine()); br.close(); catch (Exception e) { e.printstacktrace(); abstract void setfields(abstractpersistentcomposite apc); void open(){ shell.open (); shell.setsize(400,600); while (!shell.isdisposed ()) { if (!display.readanddispatch ()) display.sleep (); display.dispose (); public class BasicDataPersistentComposite extends AbstractPersistentComposite { public BasicDataPersistentComposite(Shell parentshell, int swtarguments, String databasename) { super(parentshell, swtarguments, databasename); // TODO Auto-generated constructor stub Klasa pochodna: formularz danych osobowych z możliwością zapisywania danych void setfields(abstractpersistentcomposite apc) { GridData gd=new GridData(); gd.widthhint=100; gd.heighthint=40; gd.grabexcesshorizontalspace=true; gd.horizontalalignment=swt.fill; Label l=new Label(this, SWT.NONE); l.settext("imię"); Text t=new Text(this, SWT.BORDER); t.setlayoutdata(gd); l=new Label(this, SWT.NONE); l.settext("nazwisko"); t=new Text(this, SWT.BORDER); t.setlayoutdata(gd); l=new Label(this, SWT.NONE); l.settext("zawód"); t=new Text(this, SWT.BORDER); t.setlayoutdata(gd);

7 Wykorzystanie klasy abstrakcyjnej z anonimowymi klasami wewnętrznymi AbstractPersistentComposite apcregions=new AbstractPersistentComposite(new Shell(Display.getDefault()), SWT.NONE, "baza_regionow") { void setfields(abstractpersistentcomposite apc) { GridData gd=new GridData(); gd.widthhint=100; gd.heighthint=40; gd.grabexcesshorizontalspace=true; gd.horizontalalignment=swt.fill; Label l=new Label(this, SWT.NONE); l.settext("kontynent"); Combo t=new Combo(this, SWT.BORDER); t.setlayoutdata(gd); t.setitems(new String[]{"Afryka","Ameryka Płd","Ameryka Płn","Australia","Azja","Europa"); l=new Label(this, SWT.NONE); l.settext("kraj"); t=new Combo(this, SWT.BORDER); t.setitems(new String[]{"Egipt","Grecja","Hiszpania","Tunezja","USA","Wenezuela",); t.setlayoutdata(gd); l=new Label(this, SWT.NONE); l.settext("region"); t=new Combo(this, SWT.BORDER); t.setitems(new String[]{"Rodos","Kreta","Teneryfa","Grand Canaria","Synaj","Wielki Kanion",); t.setlayoutdata(gd); Interfejs ; apcregions.initgui(); apcregions.open(); Liniowa struktura klas nie zawsze w pełni odzwierciedlać rzeczywistość (Samochód Prius w hierarchii samochodów można umieścić jako potomka samochodu osobowego, ale równocześnie w innej hierarchii jest to samochód z napędem hybrydowym). W niektórych językach obiektowych możemy używać wielodziedziczenia, w Javie do odzwierciedlania tych dodatkowych hierarchii (funkcjonalności) mogą służyć interfejsu, które należy rozumieć jako rodzaj kontraktu: Klasa implementująca mechanizm na pewno będzie definiować metody w nim wyszczególnione, choć na etapie definiowania nie wiadomo jeszcze nic o konkretnej implementacji, metody te są więc zawsze abstrakcyjne (choć w definicji interfejsu nie musimy używać słowa kluczowego abstract) Kontrakt Klasa implementująca ten interfejs będzie umiała wysłać dane mailem. public interface Mailable { void mailme(); Klasa bazowa news nie potrafiąca wysyłać maili public class News { public String title; public String messagebody; public Date date; public News(String title, String message, Date date) {

8 super(); this.title = title; this.messagebody = message; this.date = date; public String gettitle() { return title; public void settitle(string title) { this.title = title; public String getmessagebody() { return messagebody; public void setmessagebody(string message) { this.messagebody = message; public Date getdate() { return date; public void setdate(date date) { this.date = date; public String tostring() { return "News [title=" + title + ", messagebody=" + messagebody + ", date=" + date + "]"; Klasa potomna news polityczny - mająca dodatkowo funkcjonalność wysyłania treści newsa mailem. public class PoliticalNews extends News implements Mailable { private Boolean aboutconstitutionalcourt; public PoliticalNews(String title, String message, Date date,boolean aboutconstitutionalcourt) { super(title, message, date); this.aboutconstitutionalcourt=aboutconstitutionalcourt; public void mailme() { final String username = "imie_nazwisko@gmail.com"; final String password = "XXXXXXXXXX"; Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.port", "587"); Session session = Session.getInstance(props, new javax.mail.authenticator() { protected PasswordAuthentication getpasswordauthentication() { return new PasswordAuthentication(username, password); ); try { Message message = new MimeMessage(session); message.setfrom(new InternetAddress("alphablondy2007@gmail.com")); message.setrecipients(message.recipienttype.to, InternetAddress.parse("andrzej.dudek@ue.wroc.pl ")); message.setsubject(this.title + (aboutconstitutionalcourt?" UWAGA DOTYCZY TRYBUNAŁU KONSTYTUCYJNEGO":""));

9 "+this.messagebody); message.settext(new SimpleDateFormat("YY-MM-dd").format(date)+" : Transport.send(message); System.out.println("Wysłałem maila"); catch (MessagingException e) { throw new RuntimeException(e); Kontener newsów różnych typów wie, że klasy implementujące interfejs mogą wysyłać maile public class NewsContainer { ArrayList<News> mynews=new ArrayList<News>(5); void addnews(news n){ mynews.add(n); void displayallnews(){ for(news n:mynews){ System.out.println(n.toString()); if(n instanceof Mailable){ ((Mailable)n).mailMe(); Klasy finalne / Słowo kluczowe final Klasy finalne, to klasy, które nie powinny być już bardziej uszczegóławiane i mieć klas pochodnych. Słowo kluczowe final może także dotyczyć pól, zmiennych, metod lub parametrów funkcji. W przypadku pól pole finalne nie musi być zdefiniowane od razu ale może być zmienione maksymalnie raz. W przypadku zmiennych final używa się bardzo często, aby mogły być wykorzystywane w anonimowych klasach wewnętrznych. Uwaga : widgety SWT nie są finalne a jedynie je udają Anonimowe klasy wewnętrzne PainInTheAxx cw=new PainInTheAxx(){ protected boolean verifyfield(object source) {return true; ; Anonimowe (Bo nie używające osobnych klas pochodnych) klasy wewnętrzne są wygodnym narzędziem, bo po pierwsze redukują liczbą plików (klas) w systemie, po drugie umożliwiają bezpośredni dostęp do pól klas, z której są wywoływane. Enkapsulacja

10 Nie wszystkie zmienne i metody obiektu są widoczne na zewnątrz. Część z nich jest dostępne tylko wewnątrz klasy, w której jest zdefiniowana lub tylko wewnątrz podklas. Ten proces nosi nazwę enkapsulacji i do jego implementacji używa się następujących modyfikatorów zmiennych: Modyfikator Klasa Klasa pochodna Pakiet private X protected X X X public X X X X package* X X Inne klasy * Ten typ dostępu jest domyślny, nie wymaga żadnego słowa kluczowego class Alpha { private int iamprivate; private void privatemethod() { System.out.println("privateMethod"); class Beta { void accessmethod() { Alpha a = new Alpha(); a.iamprivate = 10; a.privatemethod(); // błąd // błąd package Greek; public class Alpha { protected int iamprotected; protected void protectedmethod() { System.out.println("protectedMethod"); package Greek; class Gamma { void accessmethod() { Alpha a = new Alpha(); a.iamprotected = 10; a.protectedmethod(); // ok // ok package Latin; import Greek.*; class Delta extends Alpha { void accessmethod(alpha a, Delta d) { a.iamprotected = 10; // błąd d.iamprotected = 10; // ok a.protectedmethod(); // błąd d.protectedmethod(); // ok Pułapki enkapsulacji prywatne pola nadpisywane w klasach pochodnych, prywatne konstruktory.

11 Zmienne instancji i zmienne klas Domyślnie wszystkie zmienne są zmiennymi instancji, czyli dotyczą obiektów, w których są wywoływane. Może się jednak zdarzyć sytuacja, gdy chcemy, aby wartość zmiennej była dzielona pomiędzy wszystkie instancje danej klasy. Możemy wtedy zadeklarować zmienną klasy używając słowa kluczowego static. Każdorazowo wykorzystanie zmiennej lub metody statycznej musi być przemyślane i stosowane z umiarem. W klasach możemy stosować też bloki statyczne kodu static {..kod wykonywany jednorazowo przy tworzeniu klasy Żonglowanie Typami (NazwaTypuLubInterfejsu) obiekt obiekt instanceof KlasLubInterfejs Uwaga sprawdzania i rzutowanie ( castowanie ) klas nie może dotyczyć klas pochodnych dla danej klasy. Projektując klasę bazową zakładamy, że nie mamy żadnej wiedzy o tym jakie będą jej klasy pochodne. Często spotykane, zwłaszcza u początkujących programistów konstrukcje, które w klasie bazowej rozróżniają zachowania metod w zależności od tego z klasy pochodnej zostały wywołane są w SPRZECZNOŚCI z zasadami programowania obiektowego i mogą prowadzić do trudnych do zdiagnozowania błędów. Try catch wprowadzenie Konwencja try{ Kod, który może się wykonać z błędami (np. z powodu braku pliku) catch{exception e){ Obsługa błędu Oznacza, że spodziewamy się w bloku bazowym wystąpienia błędu ale ten błąd nie powinien kończyć pracy programu, bo wiemy co w sytuacji błędnej możemy zrobić (brak zasobów systemowych, brak pliku, przerwane połączenie z internetem itp.) i program powinien być wykonywany dalej. Konstrukcje, try-catch-finally, throws, throw będą omówione na osobnym wykładzie

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

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

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

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

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

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

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

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

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System

Bardziej szczegółowo

Klasy abstrakcyjne, interfejsy i polimorfizm

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

Bardziej szczegółowo

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

Dziedziczenie. dr Jarosław Skaruz

Dziedziczenie. dr Jarosław Skaruz Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,

Bardziej szczegółowo

Enkapsulacja, dziedziczenie, polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm 17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja

Bardziej szczegółowo

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

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów

Bardziej szczegółowo

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

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

Bardziej szczegółowo

Polimorfizm. dr Jarosław Skaruz

Polimorfizm. dr Jarosław Skaruz Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Java podstawy jęyka Wykład 2 Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Wyjątki: obsługa błędów Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 12.03.2015

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

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

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje

Bardziej szczegółowo

Java: interfejsy i klasy wewnętrzne

Java: interfejsy i klasy wewnętrzne Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania

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

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

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 5 Okna MDI i SDI, dziedziczenie Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

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

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie

Bardziej szczegółowo

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

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 3 Java podstawy Przygotował: Jacek Sroka 2 Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo

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

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego: Typy klasowe (klasy) 1. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą obiektów

Bardziej szczegółowo

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń: Klasy Metody [ModyfikatorMetody] TypZwrotny Nazwa (Typ arg1, ) { // implementacja metody ModyfikatorMetody może być kombinacją wyrażeń: modyfikator widzialności public dostępna dla metod spoza klasy protected

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 w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

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

Bardziej szczegółowo

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 w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo

Klasy cd. Struktury Interfejsy Wyjątki

Klasy cd. Struktury Interfejsy Wyjątki Klasy cd. Struktury Interfejsy Wyjątki Struktury Struktura pozwala na zdefiniowanie typu danych, który nie charakteryzuje się zbyt złożoną funkcjonalnością (np. punkt, kolor, etc). Do definiowania struktury

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

Programowanie w Javie wykład 8 Interfejsy

Programowanie w Javie wykład 8 Interfejsy 1 Programowanie w Javie wykład 8 Interfejsy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko, JAVA Uniwersalne techniki programowania,

Bardziej szczegółowo

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

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

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

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

Platformy Programistyczne Wykład z Javy dla zaawansowanych

Platformy Programistyczne Wykład z Javy dla zaawansowanych Platformy Programistyczne Wykład z Javy dla zaawansowanych Agata Migalska 20 maja 2014 Plan wykładu 1 Polimorfizm i dziedziczenie 2 Życie i śmierć obiektu 3 Poziomy oraz modyfikatory dostępu 4 Obsługa

Bardziej szczegółowo

Programowanie obiektowe / języki programowania W. 2 - SWT

Programowanie obiektowe / języki programowania W. 2 - SWT Programowanie obiektowe / języki programowania W. 2 - SWT Struktura typowego formularza SWT Display display = new Display (); final Shell shell = new Shell(display); // Zdefiniowanie układu (layout) I

Bardziej szczegółowo

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

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

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

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

Bardziej szczegółowo

Platformy Programistyczne Podstawy języka Java

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

Bardziej szczegółowo

Podstawy Języka Java

Podstawy Języka Java Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących

Bardziej szczegółowo

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

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

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 w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

Bardziej szczegółowo

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

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Wirtualne destruktory class A int* a; A(int _a) a = new int(_a);} virtual ~A() delete a;} class B: public A double* b;

Bardziej szczegółowo

Programowanie obiektowe i język Java

Programowanie obiektowe i język Java Programowanie obiektowe i język Java Tomasz Głowacki Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych i ich zastosowań

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

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt JAVA Pliki - zapis i odczyt Opracował: Andrzej Nowak Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Strumienie wejścia i wyjścia Strumienie wejścia

Bardziej szczegółowo

Przypomnienie o klasach i obiektach

Przypomnienie o klasach i obiektach Wykład 14 Programowanie obiektowe ciąg dalszy, str 1 Przypomnienie o klasach i obiektach -5 należydo int 314 należy do double false należy do boolean {27, 314,-15 należy do double[] wartość należy do typ

Bardziej szczegółowo

Wykład 6: Dziedziczenie

Wykład 6: Dziedziczenie Wykład 6: Dziedziczenie Dziedziczenie Jeden z filarów obiektowości. Budowa jednej klasy na bazie drugiej, przez dodawanie/przesłanianie jej składowych: nad-klasa klasa bazowa pod-klasa klasa pochodna od

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki zaprojektowany jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych jest to język pozwalający na programowanie zarówno proceduralne

Bardziej szczegółowo

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

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

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

2. Składnia, środowisko i konwencje w Javie

2. Składnia, środowisko i konwencje w Javie Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,

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

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

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

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

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

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

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

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Zaawansowane programowanie w C++ (PCP) Wykład 3 - polimorfizm. dr inż. Robert Nowak - p. 1/14 Powtórzenie Powtórzenie: klasy autonomiczne: konstruktor, konstruktor kopiujacy, operator przypisania, destruktor

Bardziej szczegółowo

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); 1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); a) b) c) d) 2. Jaki będzie wynik kompilacji i wykonania

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

Podstawowe części projektu w Javie

Podstawowe części projektu w Javie Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof

Bardziej szczegółowo

Typy sparametryzowane

Typy sparametryzowane Typy sparametryzowane Streszczenie Celem wykładu jest zaprezentowanie typów sparametryzowanych. Czas wykładu 90 minut. Istnieją algorytmy, których zasada działania nie zależy od typu danych wejściowych.

Bardziej szczegółowo

Materiały do zajęć VII

Materiały do zajęć VII Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja

Bardziej szczegółowo

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE. C++ - DZIEDZICZENIE Do najważniejszych cech języka C++ należy możliwość wielokrotnego wykorzystywania kodu Prymitywnym, ale skutecznym sposobem jest kompozycja: deklarowanie obiektów wewnątrz innych klas,

Bardziej szczegółowo

Programowanie w języku Java WYKŁAD

Programowanie w języku Java WYKŁAD Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 03.03.2014 WYKŁAD 2 Elementy leksykalne Java Elementy

Bardziej szczegółowo

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

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 13 Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods

Bardziej szczegółowo

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy? Zad.28. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( ) ; public void pisz ( ) ; Zad.29. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( int l i c z b a ) ; public

Bardziej szczegółowo

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Klasa abstrakcyjna Autor: Marcin Orchel Klasa abstrakcyjna to taka, że nie możemy tworzyć obiektów tej klasy, możemy jednak dziedziczyć po tej

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

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

Języki i metody programowania Java INF302W Wykład 3 (część 1) Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,

Bardziej szczegółowo

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki Język C# pętle, sterowanie, wyjątki Język C# pętle Pętle: while ( ) do { while ( ); for ( ; ; ) foreach ( in

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