PODSTAWY PROGRAMOWANIA OBIEKTOWEGO W JAVIE ZAGADNIENIA SZCZEGÓŁOWE
|
|
- Henryk Przybysz
- 7 lat temu
- Przeglądów:
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 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ółowoProgramowanie 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ółowoKurs 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ółowoKurs 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ółowoJava 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ółowoDokumentacja 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ółowoProgramowanie 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ółowoProgramowanie 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ółowoInterfejsy. 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ółowoWykł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ółowoKlasy 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ółowoKurs 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ółowoDziedziczenie. 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ółowoEnkapsulacja, 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ółowoJava: 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ółowoInformatyka 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ółowoWykł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ółowoPolimorfizm. 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ółowoKlasy 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ółowoJava 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ółowoLaboratorium 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ółowoJava - 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ółowoMarcin 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ółowoJava: 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ółowoPolimorfizm, 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ółowoMultimedia 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ółowoWykł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ółowoPHP 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ółowoAplikacje 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ółowoJę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ółowoProgramowanie 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ółowoKurs 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ółowoProgramowanie 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ółowoObiektowe 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ółowoTechnologie 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ółowoTypy 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ółowopublic - 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ółowoProgramowanie 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ółowoProgramowanie 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ółowoJava. 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ółowoProgramowanie 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ółowoPARADYGMATY 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ółowoKlasy 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ółowoProgramowanie 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ółowoDefiniowanie 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ółowoWstę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ółowoProgramowanie 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ółowoInformatyka 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ółowoJę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ółowoKurs 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ółowoDziedziczenie. 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ółowoPlatformy 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ółowoProgramowanie 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ółowoInformacje 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ółowo1. 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ółowoPlatformy 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ółowoPodstawy 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ółowoProgramowanie 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ółowoProgramowanie 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ółowo1 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ółowoJę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ółowoKurs 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ółowoAplikacje 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ółowoProgramowanie 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ółowoProgramowanie 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ółowoObszar 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ółowoProgramowanie 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ółowoJAVA. 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ółowoPrzypomnienie 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ółowoWykł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ółowoDariusz 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ółowoJava: 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ółowoWą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ółowo2. 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ółowodziedziczenie - 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ółowoPakiety 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ółowoProgramowanie 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ółowoWywoł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ółowoWyją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ółowoWspół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ółowoWykł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ółowoRozdział 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ółowoDiagramy 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ółowoJAVA. 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ółowoZaawansowane 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ółowo1. 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ółowoProgramowanie 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ółowoPodstawowe 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ółowoPodstawy 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ółowoTypy 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ółowoMateriał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ółowoC++ - 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ółowoProgramowanie 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ółowoKlasy. 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ółowoZad.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ółowoJę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ółowoKlasy 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ółowoJę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ółowoJę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ółowoDefinicje 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