Klassenvariablen und Klassenmethoden
|
|
|
- Gregor Müller
- vor 7 Jahren
- Abrufe
Transkript
1 Klassenvariablen und Klassenmethoden Stephan Kleuker 394
2 Erinnerung: zentrale Idee Objektorientierung Klasse public class Student { private int mat; private String name; new new new unabhängige Objekte erzeugt über Konstruktor s1:student mat = 42 name = X s2:student mat = 43 name = U s3:student mat = 44 name = Objekte haben nichts miteinander zu tun; können natürlich Methoden in anderen Objekten aufrufen, z. B. s1.equals(s2) Stephan Kleuker 395
3 Objekte und Klassen Bisher: Wir Programmieren das Verhalten von Objekten Objekte können über Objektmethoden verändert werden Ergebnisse, d.h. neue Objekte, berechnen Klassen beschreiben nur Objekte und erlauben über Konstruktoren die Erstellung beliebig vieler Objekte außer Konstruktoren bieten Klassen selbst bisher nichts an bisher nur recht aufwändig machbar: Vergabe eindeutiger Matrikelnummern "letzte vergebene Matrikelnummer" ist keine Objekt- Eigenschaft, sondern Eigenschaft der Klasse Stephan Kleuker 396
4 Klassenvariablen Klassenvariable ist Eigenschaft einer Klasse, z. B. ein Zähler wieviele Objekte existieren, Schlüsselwort static private static int letztenummer; Klassenvariablen gehören zur Klasse und können damit ohne Objekte existieren Klassenvariablen können in Objektmethoden genutzt werden d. h. Objektvariablen kann der Wert von Klassenvariablen zugeordnet werden einer Klassenvariable kann nicht ein zu einer Objektvariablen gehöriges Objekt zugewiesen werden (da Objekte gelöscht werden können) Stephan Kleuker 397
5 Klassenmethoden Klassenmethoden sind Methoden, die nur zur Klasse gehören und auch ohne Objekte ausgeführt werden können In Klassenmethoden kann auf Klassenvariablen lesend und schreibend, andere Klassenmethoden und Parameter (auch Objekte) zugegriffen werden Um deutlich zu machen, dass eine Klassenmethode aufgerufen wird, kann der Name der Klasse vor dem Methodennamen mit einem Punkt getrennt stehen <Klassenname>.<Klassenmethodenname>() gleiche Schreibweise auch bei Klassenvariable möglich wird Klassenmethode in anderer Klasse oder Objekt einer anderen Klasse genutzt, muss diese Schreibweise genutzt werden Stephan Kleuker 398
6 Nutzung von Klassenvariablen und -methoden (1/2) public class Student{ private static int letztenummer = 99999; protected String vorname ="Eva"; protected String nachname ="Mustermann";... public Student(){ Student.letzteNummer = Student.letzteNummer+1 ; this.matrikelnummer = Student.letzteNummer; public static int leseletztenummer(){ return Student.letzteNummer; public static void schreibeletztenummer(int m){ Student.letzteNummer = m; Stephan Kleuker 399
7 Nutzung von Klassenvariablen und -methoden (1/2) // in Klasse Studentspielerei public void klassenvariableanalysieren() { EinUndAusgabe io = new EinUndAusgabe(); Student s1 = new Student(); Student s2 = new Student(); io.ausgeben("s1: " + s1 + "\n"); io.ausgeben("s2: " + s2 + "\n"); io.ausgeben("ln: " + Student.leseLetzteNummer() + "\n"); Stephan Kleuker 400
8 Nutzung einer Klassenmethode ohne Objekt Stephan Kleuker 401
9 Wann sind Klassenmethoden sinnvoll? Klassenmethoden werden dann eingesetzt, wenn ausschließlich Klassenvariablen und andere Klassenmethoden betroffen sind Klassenmethoden sind typischerweise Hilfsmethoden, die mit dem Konzept der Objektorientierung unmittelbar wenig zu tun haben Grundsätzlich muss ein Entwickler in Objekten und ihrer Bearbeitung mit Objektmethoden denken Erst wenn man feststellt, dass keine Objekte benötigt werden, kann man über die Erstellung von Klassenmethoden nachdenken typisches Beispiel für Klasse mit ausschließlich Klassenmethoden ist java.lang.math Stephan Kleuker 402
10 Ausschnitt der Klassenmethoden von Math Modifier and Type Method and Description static double abs(double a) Returns the absolute value of a double value. static double cos(double a) Returns the trigonometric cosine of an angle. static double exp(double a) Returns Euler's number e raised to the power of a double value. static double log(double a) Returns the natural logarithm (base e) of a double value. static double pow(double a, double b) Returns the value of the first argument raised to the power of the second argument. static double random() Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. static long round(double a) Returns the closest long to the argument, with ties rounding up. static double sqrt(double a) Returns the correctly rounded positive square root of a double value. static double tan(double a) Returns the trigonometric tangent of an angle. Quelle: Stephan Kleuker 403
11 Schlechte und gute Ideen zu Klassenmethoden gute Idee: EinUndAusgabe-Klasse könne nur aus Klassenmethoden bestehen schlechte Idee: wahrscheinlich brauche ich nur ein Objekt der Klasse, also nutze ich nur Klassenvariablen und Methoden nein!!! ausschließliche Nutzung nur für Klasseneigenschaften und Hilfsmethoden wenn nur ein Objekt, dann gibt es bessere, objektorientiertere Wege Stephan Kleuker 404
12 Unit Test Stephan Kleuker 405
13 Ausprobieren oder systematisch Testen bisher werden Methoden zum Ausprobieren direkt in BlueJ aufgerufen und das Ergebnis manuell überprüft um Schritte zusammenzufassen, wurden Hilfsklassen wie ZahlenAnalyseSpielerei geschrieben dieser Ansatz wird durch die Nutzung spezieller Testklassen vereinfacht: Nutzung von JUnit (hier Version 4) Tests werden in neuer Klasse (ähnlich zu Spielerei) in Java geschrieben Man kann für Tests gemeinsame Ausgangssituation schaffen Jeder Test läuft unabhängig von anderen Tests es gibt spezielle Zusicherungsmethoden zum Überprüfen Stephan Kleuker 406
14 Testerstellung in BlueJ Stephan Kleuker 407
15 Erste Testfälle (1/2) import org.junit.assert; import org.junit.test; public class public void testistprimzahl1() { Zahlenanalyse zana = new Zahlenanalyse(null); boolean nicht42 = zana.istprimzahl(42); Assert.assertTrue("42 ist public void testistprimzahl2() { Zahlenanalyse zana = new Zahlenanalyse(null); boolean doch41 = zana.istprimzahl(41); Assert.assertTrue("41 ist keine Primzahl", doch41); Stephan Kleuker 408
16 Erste Testfälle (2/2) man will immer grünen Balken erreichen Stephan Kleuker 409
17 Aufbau der Testklasse Klassenname beliebig, üblich: Name der zu testenden Klasse mit "Test" am Ende jeder Test in eigener Methode, sollte mit "public void test " beginnen; Testname sollte sich auf getestete Methode beziehen diese Annotation (?!?) sorgt für die Ausführung als Test[genauer später] public class ZahlenanalyseTest public void testistprimzahl1() { Zahlenanalyse zana = new Zahlenanalyse(null); boolean nicht42 = zana.istprimzahl(42); Assert.assertTrue("42 ist Primzahl",!nicht42); es gibt verschiedene Überprüfungs(klassen)methoden (asserttrue reicht erstmal); erster Parameter ist Meldung im Fehlerfall, zweiter Parameter ist Boolescher Ausdruck (erster Parameter optional) Stephan Kleuker 410
18 Test-Fixture (Test-Ausgangskonfiguration) Testfall sieht in der Regel so aus, dass eine bestimmte Konfiguration von Objekten aufgebaut wird, gegen die der Test läuft Menge von Testobjekten wird als Test-Fixture bezeichnet Damit fehlerhafte Testfälle nicht andere Testfälle beeinflussen können, wird die Test-Fixture für jeden Testfall neu initialisiert In der annotierten Methode public void setup() werden Objektvariablen initialisiert In der annotierten Methode public void teardown() werden wertvolle Testressourcen wie zum Beispiel Datenbank- oder Netzwerkverbindungen wieder freigegeben Stephan Kleuker 411
19 Testklasse leicht umgeschrieben public class ZahlenanalyseTest { private Zahlenanalyse zana; // zu testendes public void setup() { zana = new public void testistprimzahl1() { boolean nicht42 = zana.istprimzahl(42); Assert.assertTrue("42 ist public void testistprimzahl2() { boolean doch41 = zana.istprimzahl(41); Assert.assertTrue("41 ist keine Primzahl", doch41); Stephan Kleuker 412
20 Prinzipieller Ablauf von JUnit Suche in der Testklasse alle Methoden, die annotiert sind, führe für jede der gefundenen Methoden folgende Schritte aus: führe setup annotierte Methode) aus führe den Test aus und protokolliere das Ergebnis führe teardown annotierte Methode) aus im Beispiel: setup(), testistprimzahl1(), setup(), testistprimzahl2() sollte ein Test scheitern, wird dieser sofort beendet, die anderen Tests unabhängig davon ausgeführt Tests sollten nach Zusicherungen (assert ) keinen anderen Code haben (asserts am Ende) Stephan Kleuker 413
21 Wie erstellt man Testfälle Grundsätzlich liest man intensiv die Aufgabenstellung und beantwortet folgende Fragen: was sind die typischen Abläufe bzw. typischen Ergebnisse; für jeden der gefundenen Fälle wird ein Test geschrieben was sind die besonderen Randfälle, die auftreten können; für jeden Randfall wird ein getrennter Testfall geschrieben Beispiel: ein Parameter liste vom Typ ArrayList<Integer> was passiert, wenn liste == null ist was passiert bei einer leeren Liste was passiert bei besonderen Listen, die z. B. nur ein Element, dies aber mehrfach enthalten [Kle13] S. Kleuker, Qualitätssicherung durch Softwaretests, Springer Vieweg, Wiesbaden, 2013 Stephan Kleuker 414
22 Weiteres Testbeispiel (1/4) // Imports fehlen public class ZahlenanalyseTest { private Zahlenanalyse zana42und23; private Zahlenanalyse zananull; private Zahlenanalyse public void setup() { ArrayList<Integer> l1 = new ArrayList<Integer>(); l1.add(42); l1.add(23); zana42und23 = new Zahlenanalyse(l1); zananull = new Zahlenanalyse(null); ArrayList<Integer>l2 = new ArrayList<Integer>(); l2.add(23); zana23 = new Zahlenanalyse(l2); Stephan Kleuker 415
23 Weiteres Testbeispiel public void testzahlenmitdreiamende1(){ Zahlenanalyse tmp = zana42und23.zahlenmitdreiamende(); Assert.assertTrue(tmp.getZahlen().size() == 1); Assert.assertTrue(tmp.getZahlen().get(0) == public void testzahlenmitdreiamende2(){ Zahlenanalyse tmp = zananull.zahlenmitdreiamende(); Assert.assertTrue(tmp.getZahlen().size() == public void testzahlenmitdreiamende3(){ Zahlenanalyse tmp = zana23.zahlenmitdreiamende(); Assert.assertTrue(tmp.getZahlen().size() == 1); Assert.assertTrue(tmp.getZahlen().get(0) == 23); Stephan Kleuker 416
24 Weiteres Testbeispiel public void testgibtgleiche1(){ boolean tmp = zana42und23.gibtgleiche(zananull); public void testgibtgleiche2(){ boolean tmp = zana42und23.gibtgleiche(zana23); public void testgibtgleiche3(){ boolean tmp = zana23.gibtgleiche(zana42und23); Assert.assertTrue(!tmp); //?!? Stephan Kleuker 417
25 Weiteres Testbeispiel (4/4) ein Test zeigt, dass null- Referenzen nicht berücksichtigt werden, anderer Test zeigt falschen Testfall Stephan Kleuker 418
26 Systematische Entwicklung Neben echten Denkfehlern befinden sich häufig viele Flüchtigkeitsfehler in Programmen Sinnvoll: Inkrementelle Entwicklung, d. h. nachdem eine Methode implementiert wurde, werden sofort zugehörige Testfälle geschrieben Variante ist "Test first"; nachdem man die Aufgabenstellung verstanden hat, programmiert man zunächst die Testfälle und schreibt dann schrittweise immer mehr Programmteile, so dass immer mehr Testfälle keine Fehler melden man beachte, dass Entwickler betriebsblind gegenüber ihren eigenen Fehlern werden Stephan Kleuker 419
27 Hinweise zu JUnit JUnit kann auch zur Organisation von Tests (Gruppierungen) genutzt werden JUnit oder TestNG Standard bei den meisten Entwicklern JUnit kann so nicht (nicht einfach) Eingaben in der Konsole simulieren es gibt viele weitere Testwerkzeuge, einige auf Basis von JUnit, die viele andere Tests automatisiert durchführen können Man muss Programme aber auch in Richtung Testbarkeit entwickeln: get- und set-methoden für alle Objektvariablen evtl. private-methoden public machen Stephan Kleuker 420
28 Systematische Objektbearbeitung (1/2) hat ein Objekt eine Collection von Objekten (z. B. ArrayList) in einer Objektvariablen, so gilt folgende Regel zur Bearbeitung: grundsätzlich stellt das Objekt selbst Methoden zur Verfügung, um die Collection zu bearbeiten, d. h. Elemente zu suchen also schlecht: Zahlenanalyse tmp = zananull.zahlenmitdreiamende(); if(tmp.getzahlen().size() == 0))... besser: Zahlenanalyse bietet Methoden wie: berechnelistengroesse() hinzufuegen(int) Stephan Kleuker 421
29 Systematische Objektbearbeitung (2/2) Veranschaulichung als schlechte Idee: Organe herausoperieren, einschicken, bearbeiten, zurückschicken und wieder einsetzen also keine getzahlen()-methode? diskutabel wir benötigen Methode zum effizienten Testen in Tests darf gegen gewisse Regeln verstoßen werden (muss aber nicht) Klassen müssen ab und zu Methoden enthalten, die das Testen erleichtern bzw. erst ermöglichen Stephan Kleuker 422
geschachtelte Schleifen
geschachtelte Schleifen Stephan Kleuker 270 Einschub: Ineinander geschachtelte Schleifen die innere Schleife wird für jedes Element der äußeren Schleife durchlaufen!!! public void schleifeinschleife(){
Dies ist eine Probeklausur, die keine formalen Schlüsse auf die Form, die Struktur oder den Inhalt der endgültigen Klausur zulässt.
Thema: Grundlagen Programmierung Dozent: Prof. Dr. Stephan Kleuker Seitennummer: Seite 1 von 12 Studiengang: Informatik Technische Informatik Studiensemester: 1 Datum: 26.11.2018 Bearbeitungszeit: 120
Systematisches Testen
Systematisches Testen SEP 136 Unit Testing Objektorientierte Entwicklung Entwicklung von vielen unabhängigen Einheiten (Klassen, Methoden), aus denen das Gesamtprogramm zusammengesetzt wird. Ziel: Wenn
Objektmethoden. Grundlagen der Programmierung. Stephan Kleuker 121
Objektmethoden Stephan Kleuker 121 Reden mit Objekten bei Objekten können Methoden aufgerufen werden aufgerufene Methoden können Werte der Objektvariablen verändern aufgerufene Methoden können Berechnungen
Zahlensammlung zurückgeben
Zahlensammlung zurückgeben Aufgabe: Alle Zahlen von 0 bis einschließlich einem Grenzwert zurück geben in der Klasse ErsteSchleifen public ArrayList zahlenbiszurueckgeben( int grenze){ ArrayList
Methoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
Programmiertechnik Klassenvariablen & Instantiierung
Programmiertechnik Klassenvariablen & Instantiierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Klassenvariablen Zur Erinnerung: Klassen bestehen aus Variablen und Methoden; beide zusammen
iterativ inkrementelle Entwicklung
iterativ inkrementelle Entwicklung Stephan Kleuker 312 Fallstudie: Studentenverwaltung Aufgabenstellung: Zu entwickeln ist eine auf Texteingaben und Textausgaben basierende Verwaltung von Studierenden,
Eingeben, Ausgeben, Übergeben, Zurückgeben
Eingeben, Ausgeben, Übergeben, Zurückgeben eingeben: Werte werden vom Nutzer oder Eingabegeräten (z. B. Maus) eingelesen ausgeben: Werte werden auf der Konsole, in einem Display oder einer Datei ausgegeben
Javakurs für Anfänger
Javakurs für Anfänger Einheit 08: Mehr zu Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Wiederholung Heutige Agenda Verwendung der ArrayList 2. Teil: Weitere Aspekte der OO
Javakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3
Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................
Beispielprüfung CuP WS 2015/2016
Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen
JUnit. Software-Tests
JUnit Software-Tests Übersicht Einleitung JUnit Jia Li Grundlegendes Diana Howey Hendrik Kohrs Praktische Einbindung Benjamin Koch Zili Ye Einleitung in allgemeines Testen Automatische Tests Testen ist
3. Klassen Statische Komponenten einer Klasse. Klassenvariablen
Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.
Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
Testgetriebene Entwicklung mit JUnit4
Testgetriebene Entwicklung mit JUnit4 Seminarvortrag im Fach Fortgeschrittenes Programmieren in Java, Dozent: Prof. Klinker Datum: 30.04.2010 Referent: Marius Schmeding Ausgangsfragen... Wie testet man
7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
Einstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:
Klassenvariablen Klassenmethoden Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit
erste Befehle Grundlagen der Programmierung Stephan Kleuker 34
erste Befehle Stephan Kleuker 34 Programmieraufgabe Aufgabe: Bestimme im etwa das Jahr in dem ein Eintritt in die Rente möglich sein könnte es werden Informationen benötigt wie alt ist die Person? welches
Javakurs für Anfänger
Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
Dr. Monika Meiler. Inhalt
Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer
JUnit 4 Tutorial. Wolfgang Stöttinger
JUnit 4 Tutorial Wolfgang Stöttinger JUnit 4 Tutorial... 1 1 Einführung in JUnit 4... 3 1.1 Wie funktioniert JUnit?... 3 1.2 Annotations... 3 1.2.1 Test Annotation... 3 1.2.2 Before Annotation... 3 1.2.3
Repetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
Implementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
Prozeduren vs. Funktionen
Prozeduren vs. Funktionen Mit der Formalisierung wird auch der Unterschied zwischen Prozeduren und Funktionen noch einmal klar. Der Aufruf beider Varianten bewirkt zunächst das Gleiche: die Eingabevariablen
Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. Juni 2004
Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 21. Juni 200 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik
Sichtbarkeiten, Klassenmember und -methoden
Sichtbarkeiten, Klassenmember und -methoden Prof. Dr.-Ing. Thomas Schwotzer 11. November 2017 1 Einführung Wir haben uns mit Klassen und Objekten beschäftigt. Wir wissen nun, dass Objekte anhand von Klassen
Javakurs für Anfänger
Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
Wird in Java zwischen Gross- und Kleinschreibung unterschieden?
Wird in Java zwischen Gross- und Kleinschreibung unterschieden? Ja, es wird zwischen Gross- und Kleinschreibung unterschieden Dh deklariere ich in einem Objekt ein Objektfeld int meintollerzähler; muss
3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen zu Schnittstellen Was bedeutet Orthogonalität / Separation of Concerns?
Klassen in Java. Grundlagen der Programmierung. Stephan Kleuker 68
Klassen in Java Stephan Kleuker 68 Klassen in Java (Syntax) (1/3) class Datum { int tag; int monat; int jahr; } Java hat Schlüsselworte (z. B. class), diese dürfen z. B. nicht als Variablennamen genutzt
Programmiertechnik II
Modultests Ziele Überprüfung der Korrektheit eines Moduls Korrektheit: Übereinstimmung mit (informaler) Spezifikation Modul: kleine testbare Einheit (Funktion, Klasse) Engl.: unit test White box testing
Klassenvariablen, Klassenmethoden
Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden
Propädeutikum Programmierung in der Bioinformatik
Propädeutikum Programmierung in der Bioinformatik Java Klassen und Objekte Thomas Mauermeier 27.11.2018 Ludwig-Maximilians-Universität München Rückblick Imperative Programmierung Variablen Fallunterscheidungen
OOSE_02E Testen mit BlueJ/JUnit 4
OOSE_02E Testen mit BlueJ/JUnit 4 Lehrstuhl Softwaretechnologie, Dr. Birgit Demuth Sommersemester 2018 Vorgehen beim Unit-Test allgemein 1. Testfälle ausdenken / Testfalltabellen erstellen 2. Testfälle
2. Unterprogramme und Methoden
2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf
Computeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) http://infotech.unileoben.ac.at/lehre/cup Der Debugger Mit Hilfe des Debuggers kann der Programmablauf schrittweise verfolgt werden. Dabei können auch Variableninhalte
Statische und Nichtstatische Methoden Properties/ Eigenschaften
Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische
Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch
Programmieren in Java
Programmieren in Java Vorlesung 10: Ein Interpreter für While Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1
Computeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) ArrayList 0 1 2 Obj0 Obj1 size() - 1 15.12.2014 CuP - VO 2 Auer 1 ArrayList import java.util.arraylist; ArrayList buchliste; buchliste = new ArrayList();
Tag 7 Repetitorium Informatik (Java)
Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
OOSE4 Testen mit BlueJ/JUnit 4
OOSE4 Testen mit BlueJ/JUnit 4 Lehrstuhl Softwaretechnologie, Dr. Birgit Demuth Sommersemester 2016 Vorgehen beim Unit-Test allgemein 1. Testfälle ausdenken / Testfalltabellen erstellen 2. Testfälle nach
Enterprise JavaBeans Überblick
Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5.
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Vorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen
Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Philipp Güttler Objektorientierung und komplexe Datentypen
Philipp Güttler 23.04.2008 Objektorientierung und komplexe Datentypen Seite 2 Was bedeutet objekt-orientiert? Programmierung ist die Umsetzung von Sachverhalten und Aufgaben Zusammenfassen und Aufteilen
Programmieren. JUnit-Tests. Heusch -- Ratz -- Institut für Angewandte Informatik
Programmieren JUnit-Tests Heusch -- Ratz -- KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Testgetriebene Entwicklung (auch testgesteuerte Programmierung, engl. test first development
Testen und Debugging
Testen und Debugging Testklassen, Unit Tests Blackbox Test, Whitebox Test Regressionstesten Zusicherungen mit assert Debugger Informatik II: Objektorientierte SW-Entwicklung, Algorithmik, Nebenläufigkeit
Einführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
Tag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017
Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java
Einige Methoden der Klasse ArrayList<Typ>
Einige Methoden der Klasse ArrayList Methodenname Parameter Ergebnis Beschreibung add Typ fügt übergebenes Element hinten an add int, Typ fügt übergebenes Element an angegebener Position ein get int
Übungen zum Bioinformatik-Tutorium. Blatt 3
Institut für Informatik Wintersemester 2018/19 Praktische Informatik und Bioinformatik Prof. Dr. Ralf Zimmer Übungen zum Bioinformatik-Tutorium Blatt 3 Termin: Dienstag, 6.11.2018, 11 Uhr 1. Hello World
Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public
C++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
Einstieg in die Informatik mit Java
1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:
Programmieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
Angewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
Vererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
Test-driven development JUnit-Test. Lars Varain
Test-driven development JUnit-Test Lars Varain Inhalt Test-driven Development (TDD) Junit4 Beispiel Inhalt Test-driven Development (TTD) Warum TDD? Zyklus Ausnahmebehandlung Junit4 Beispiel Inhalt Test-driven
Einstieg in die Informatik mit Java
1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden
Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
Objektorientierung. Marc Satkowski 20. November C# Kurs
Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung
Universität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting [email protected]
Testen mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg
Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive
1. Teilklausur Gruppe A. Bitte in Druckschrift leserlich ausfüllen!
Objektorientierte Programmierung & Modellierung WS 2007/8 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Ralf Lämmel Dr. Manfred Jackel 1. Teilklausur 07.12.2007 Gruppe A Bitte in Druckschrift
Programmieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Christian-Albrechts-Universität zu Kiel CAU 8-1 Objektorientiertes Programmieren Die Programme, die bisher in diesem Kurs verwendet wurden, sind alle klein und überschaubar
