15. Smalltalk 15.1 Allgemeines 15.2 Klassen, Objekte, Programme 15.3 Nachrichten 15.4 Blöcke 15.5 Metaklassen 15.6 Klasse Object
|
|
- Kasimir Berndt Jaeger
- vor 7 Jahren
- Abrufe
Transkript
1 15. Smalltalk 15.1 Allgemeines 15.2 Klassen, Objekte, Programme 15.3 Nachrichten 15.4 Blöcke 15.5 Metaklassen 15.6 Klasse Object 1
2 Geschichte Erste Version Anfang der 70er-Jahre Autoren: Alan Kay und Adele Goldberg entwickelt am XEROX PARC (Palo Alto Research Center) zusammen mit Maus-, Fenster und Menütechnik erfunden orientierte sich an Simula67 (erste OOP-Sprache) Ziele: Wie kann der Mensch in gewohnter Denkweise mit dem Computer kommunizieren? Stabile Version 1980 => Smalltalk80 Heutige Versionen Kommerziell IBM VisualAge Smalltalk Dolphin Smalltalk Open Source GNU Smalltalk Squeak Smalltalk Pocket Smalltalk 2
3 Besonderheiten Vollständig objektorientiert alle Datentypen sind Klassen (auch Zahlen, Zeichen, Arrays,...) alle Operationen sind Nachrichten (auch +, -,...) alle Ablaufstrukturen sind Nachrichten (if, while,...) Klassen sind ebenfalls Objekte Konstanten, Codestücke, etc. sind ebenfalls Objekte Dynamisch getypt Variablen werden ohne Typ deklariert (z.b. x ) alle Typrüfungen finden zur Laufzeit statt Laufzeitumgebung virtuelle Maschine mit interpretiertem Bytecode (wie in Java) alle Klassen befinden sich in einem einzigen großen "binary image" meist integriert mit Editor, Browser, Debugger Sehr flexibel Methoden können zur Laufzeit hinzugefügt werden Oberklassen können zur Laufzeit geändert werden 3
4 15. Smalltalk 15.1 Allgemeines 15.2 Klassen, Objekte, Programme 15.3 Nachrichten 15.4 Blöcke 15.5 Metaklassen 15.6 Klasse Object 4
5 Klassen Keine feste Syntax (Programmteile werden mittels Browser eingegeben) class name Stack superclass Object instance variable names top indexed instance varables class methods new: size ^ (super new: size) initialize instance methods initialize top := -1 push: value top := top + 1. self at: top put: value pop top := top - 1 ^ self at: top + 1 Datenfelder (sind von außen nicht sichtbar) Bedeutet, daß Stack ein Array ist: Stack new: 10 s at: 3 s at: 3 put: "Hallo" Statische Methoden (auf Klasse anwendbar) Nicht-statische Methoden (auf Objekte anwendbar) Sonstiges this => self Es gibt auch Klassenvariablen (class variable names) Alle Methoden sind Funktionen (geben explizit ein Objekt zurück oder self) Klassenmethoden können nicht auf Instanzvariablen zugreifen (d.h. new kann top selbst initialisieren) 5
6 Unterklassen class name NewStack superclass Stack instance variable names empty indexed instance varables instance methods initialize super initialize. empty := true push: value super push: value. empty := false pop x empty iftrue: [ x := nil ] iffalse: [ x := super pop ]. (top = 0) iftrue: [ empty := true ]. ^ x isempty ^ empty Es gibt nur einfache Vererbung. Jede Klasse (außer Object) muß eine Oberklasse haben Object ist die Wurzel der Klassenhierarchie. Sonstiges Felder der Oberklasse sind in Unterklasse sichtbar (entspricht protected) Methoden sind prinzipiell public Geerbte Methoden können in Unterklasse überschrieben werden (mit gleichem Namen und gleicher Parameterliste) 6
7 Objekte Objekte (von Klassen und Arrays) müssen mit new erzeugt werden MyClass new "erzeugt ein Objekt der Klasse MyClass" Stack new: 10 "erzeugt ein Array-Objekt mit 10 Elementen" Variablen enthalten Referenzen auf Objekte Konstanten-Objekte (anders als in Java sind auch Konstanten Objekte!) Zahlen: 3, -1.25, 1.58e-3, 3/7 Zeichen: $a, $+ Strings: 'string', 'can"t' Arrays: #(1 2 3), #('food' 'utilities'), #(9 nine $9 (0 zero $0)) 7
8 Typen Variablen haben keinen statischen Typ x y z Deklaration der Variablen x, y und z ohne statischen Typ x := 3. x hat nun den Wert3... x := 'abc' x hat nun den Wert 'abc' Keine statische Typenprüfung x + y Compiler kann nicht prüfen, ob das korrekt ist Typenprüfung erst zur Laufzeit x + y ok, wenn x und y Zahlen sind falsch, wenn x = 'abc' ('abc' versteht die Nachricht + nicht) ok, wenn Methode + für Klasse String definiert ist 8
9 Programme... werden mittels Browser eingegeben (z.b. Pocket Smalltalk) 9
10 Programme Compilation Methoden werden automatisch in Bytecode übersetzt, sobald man sie editiert hat Alle übersetzten Klassen bilden das "Image" - persistente Datenbank aller Systemklassen und Benutzerklassen - wird automatisch abgespeichert und bei Neustart von Smalltalk wieder geladen Ausführung Eingaben einiger Smalltalk-Anweisungen in ein spezielles Fenster s := Stack new: 100. s push: 3. s push: 7. s push: (s pos) + (s pop) Anweisungen werden interpretativ ausgeführt Virtuelle Maschine wie in Java Garbage Collection 10
11 15. Smalltalk 15.1 Allgemeines 15.2 Klassen, Objekte, Programme 15.3 Nachrichten 15.4 Blöcke 15.5 Metaklassen 15.6 Klasse Object 11
12 Arten von Smalltalk-Nachrichten Unäre Nachrichten x factorial stack pop Binäre Nachrichten (Operator: 1-2 nichtalphanumerische Zeichen) i >= j 'Hello', 'World' Schlüsselwort-Nachrichten list add: val list at: 3 put: 'Franz' Nachricht = add: Nachricht = at:put: nach jedem Doppelpunkt wird ein Parameter erwartet 12
13 Abarbeitung von Nachrichten Prioritäten 1. Klammern 2. unäre Nachrichten 3. binäre Nachrichten 4. Schlüsselwort-Nachrichten string at: string size - 1 put: (string at: 1) string at: string size - 1 put: temp1 string at: temp2-1 put: temp1 string at: temp3 put: temp1 result Nachrichten-Kaskaden Unäre Nachrichten: Binäre Nachrichten: Schlüsselwort-Nachrichten: x factorial sqrt x + y * z list add: x; add: y; add: z Nachrichten auf gleicher Prioritätsstufe werden von links nach rechts abgearbeitet 13
14 15. Smalltalk 15.1 Allgemeines 15.2 Klassen, Objekte, Programme 15.3 Nachrichten 15.4 Blöcke 15.5 Metaklassen 15.6 Klasse Object 14
15 Blöcke Block Folge von Smalltalk-Ausdrücken (Anweisungen) in eckigen Klammern [ s pop ] Wird nicht ausgeführt, sondern als Text behandelt (z.b. Argument einer Nachricht) Kann später auf Befehl ausgeführt werden Entspricht einer namenlosen Methode Deklaration von Blöcken [ i := file get. j := file get. z := i + j ] Ausführung von Blöcken [... ] value Blockparameter formale Parameter: block := [ :par i := i + (par * par) ] aktuelle Parameter: block value: 3 mehrere Parameter: b := [ :x :y i := (x * x) + (y * y) ]. b value: 1 value: 3 15
16 Ablaufkontrollstrukturen mit Blöcken If-Anweisung (a > b) iftrue: [max := a] iffalse: [max := b] (a > b) liefert Boolean-Objekt obj obj bekommt die Nachricht iftrue:iffalse: mit 2 Blockparametern Alternativ dazu könnte man auch schreiben: max := (a > b) iftrue: [a] iffalse: [b] While-Anweisung [i <= len] whiletrue: [list at: i put: 0. i := i + 1] [i <= len] ist ein Objekt expr vom Typ Block Der Block expr bekommt die Nachricht whiletrue: mit einem Blockparameter b Methode whiletrue - wertet wiederholt den Block self aus - solange das Ergebnis true ist, wird Block b ausgeführt Auswertung der Blöcke im Kontext des Rufers! D.h. Zugriff auf lokale Variablen des Rufers. 16
17 Ablaufkontrollstrukturen mit Blöcken Zählschleife 1 to: 10 do: [ :i sum := sum + i] Integer-Objekt 1 bekommt die Nachricht to:do: mit einem Blockparameter b Ruft wiederholt den Block b auf und übergibt ihm 1, 2,..., 10 als Parameter 10 timesrepeat: [ i := + i ] Integer-Objekt 10 bekommt die Nachricht timesrepeat: mit einem Blockparameter b Ruft 10 mal den Block b auf 17
18 Iteratoren mit Blöcken do: "Zählen von Vokalen in einem String" n n := 0. 'The quick brown fox' do: [ :ch ch isvowel iftrue: [n := n + 1] ] Block wird für jedes Element ch des Strings ausgeführt Beachte: Blöcke können geschachtelt werden select: n n := ('The quick brown fox' select: [ :ch ch isvowel ]) size liefert Collection derselben Art wie der Empfänger, die nur Elemente enthält, für die der Block true ergibt => 'eioo' collect: "Quadrate der Zahlen von 1 bis 5" squares squares := #( ) collect: [ :i i * i] liefert Collection derselben Art wie der Empfänger, wobei auf jedes Element der Collection der Block angewendet wird => #( ) 18
19 15. Smalltalk 15.1 Allgemeines 15.2 Klassen, Objekte, Programme 15.3 Nachrichten 15.4 Blöcke 15.5 Metaklassen 15.6 Klasse Object 19
20 Metaklassen Klassen sind in Smalltalk ebenfalls Objekte (einer anderen Klasse) Die Klasse einer Klasse heißt Metaklasse z.b. die Klasse von Integer heißt Integer class Metaklassen-Hierarchie Objekte s1 s2 s3 Klassen Integer Stack Metaklassen Integer class Stack class Metaclass Metaclass class Abgeschlossenes System ohne Ausnahmen: Jede Klasse ist ein Objekt Jedes Objekt gehört zu einer Klasse 20
21 Wozu Metaklassen? Wozu Metaklassen? Damit eine Klasse Datenfelder haben kann (Klassenvariablen, statische Variablen) Damit eine Klasse Methoden haben kann (Klassenmethoden, statische Methoden) Wieso haben nicht alle Klassen dieselbe Metaklasse? Damit jede Klasse andere Klassenmethoden haben kann Array new: 100 Rectangle setdefaultcolor: red 21
22 Metaklassen erben von der Klasse Class Object Behavior Klassen Class Metaclass Object class Behavior class Metaklassen Class class Metaclass class Es gilt: IM(X class) = KM(X) IM(Object) => IM(classes & metaclasses) => KM(classes) IM(Class) => IM(metaclasses) => KM(classes) IM(Metaclass) = KM(metaclasses) IM... Instanzmethode KM... Klassenmethode 22
23 15. Smalltalk 15.1 Allgemeines 15.2 Klassen, Objekte, Programme 15.3 Nachrichten 15.4 Blöcke 15.5 Metaklassen 15.6 Klasse Object 23
24 Klasse Object Informationen über Objekte und Klassen x class x iskindof: yclass x ismemberof: yclass x respondsto: msg liefert die Klasse des Objekts x 17 class => Integer x yclass oder Unterklasse davon #(3, 4, 5) iskindof: Collection => true x yclass #(3, 4, 5) ismemberof: Collection => false #(3, 4, 5) ismemberof: Array => true true, wenn x die Nachricht msg versteht 2 respondsto #+ => true Vergleiche x == y x ~~ y x = y x ~ y x isnil Zeigergleichheit (-ungleichheit) #(1 2 3) == #(1 2 3) => false Strukturgleichheit (-ungleichheit) #(1 2 3) = #(1 2 3) => true true, wenn x null ist 24
25 Klasse Object (Fortsetzung) Kopieren x shallowcopy x x shallowcopy x deepcopy x x deepcopy Indizierung Nur anwendbar auf Objekte mit indexed instance variables x at: i x at: i put:val x size x[i] x[i] = val; // Indexüberschreitung bedeutet Laufzeitfehler Größe (die bei new: angegebene Zahl) 25
SmallTalk - Eine kurze Einführung
SmallTalk - Eine kurze Einführung Andreas Lochbihler Lehrstuhl Programmierparadigmen Universität Karlsruhe 15. Juni 2009 SmallTalk Entwickelt seit Anfang der 70er bei XEROX PARC Alan Kay, Dan Ingalls,
MehrGeschachtelte Klassen
Geschachtelte Klassen Christian Schamott 1 / 26 Übersicht Gemeinsamkeiten 4 Arten geschachtelte Klassen Elementklasse Lokale Klassen Anonyme Klassen Statisch geschachtelte Klassen Christian Schamott 2
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrObjektorientierte Sprachen
Objektorientierte Sprachen Eine Sprache, die Objekte unterstützt, heißt objektbasiert Eine klassenbasierte Sprache unterstützt zusätzlich Klassen Eine objektorientierte Sprache unterstützt zusätzlich die
MehrSmalltalk, Squeak & You
HUMBOLDT- UNIVERSITÄT ZU BERLIN MENSCH- TECHNIK- INTERAKTION ARBEITSGRUPPE SOFTWARETECHNIK (INSTITUT FÜR INFORMATIK) ARBEITSGRUPPE INGENEURPSYCHOLOGIE (INSTITUT FÜR PSYCHOLOGIE) Smalltalk, Squeak & You
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrInstitut 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
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
MehrRepetitorium 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
MehrFragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrSmalltalk. Gespräche über alltägliche, allgemeine und unwichtige Dinge. Smalltalk ist die Kunst zu reden, ohne zu denken.
Gespräche über alltägliche, allgemeine und unwichtige Dinge. Wikipedia Smalltalk ist die Kunst zu reden, ohne zu denken. Andreas Tenzer, Dozent für Philosophie Inhalt: Vorwort Geschichte Eigenschaften
MehrJavakurs 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
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
MehrEinführung in die Programmierung mit VBA
Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen
Mehr4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
MehrObjekt-Orientierte Programmiersprachen
Objekt-Orientierte Programmiersprachen Martin Gasbichler, Holger Gast 17.1.2005 Plan 2. Semesterhälfte Klassenbasierte dynamische Sprachen Objective C Smalltalk Objekt-basierte Sprachen Non-mainstream
MehrMethoden 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)
MehrPraxis der Programmierung
Template-Funktionen und -Klassen Einführung in Java Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Template-Funktionen 2 Minimumfunktion und offene Typen Aufruf
MehrVererbung, Polymorphismus
Vererbung, Polymorphismus INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Automobilbau Firma produziert Limousine Kunde möchte Kombi Wielösen? Möglichkeiten Neudesign
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
MehrWeb-Techniken Einführung in JavaScript
Web-Techniken Einführung in JavaScript Prof. Dr. Axel Böttcher Winter 2012/13 15. September 2012 Ausführung von JavaScript Variante 1: Ausführung im Browser durch direktes Einbetten: 1 2
MehrEinführung in die Programmierung Blockkurs Java
Michael Bader 8. 12. April 2002 Dienstag Inhaltsübersicht Variablen: Membervariablen und lokale Variablen Referenzvariablen: Arrays und Objekte anlegen Definition von Funktionen: Methoden Konstruktoren
MehrC++ - 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
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrWerkzeuge zur Programmentwicklung
Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul
MehrVerschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrWiederholung aus SWE2
Wiederholung aus SWE2 Innere Klassen Diverse neue Sprachfeatures bei Java 1.5 Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Inhalt Innere Klassen Diverse neue Sprachfeatures bei Java 1.5 Pratikum
MehrArten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
MehrWie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?
Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen
MehrArrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3
Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................
MehrKlassen als Datenstrukturen
Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrPrinzip des Exception Handling
Prinzip des Exception Handling geschützter Block p(); catch (Exception e) { System.out.println(e.toString()); void p() throws Exception { throw new Exception(); Auslösen einer Exception Exception Handler
MehrDynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen
MehrKlassenvariablen, 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
MehrEinstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung
Mehr3. 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.
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrEinführung in das Programmieren Probeklausur Lösungen
Einführung in das Programmieren Probeklausur Lösungen Frederik Kanning 01.07.2013 Aufgabe 1 b/c) void definiert Methode ohne Rückgabewert return beendet aktuellen Methodenaufruf wenn Rückgabetyp nicht
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
Mehr4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:
4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende
MehrEinstieg 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
Mehrfloat: Fließkommazahl nach IEEE 754 Standard mit 32 bit
Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen
MehrArten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
MehrEinstieg in die Informatik mit Java
1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von
MehrII.4.4 Exceptions - 1 -
n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen
MehrHeute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.
Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis
MehrC++ - Objektorientierte Programmierung Vererbung
C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.
MehrJava I Vorlesung Generics und Packages
Java I Vorlesung 9 Generics und Packages 21.6.2004 Generics Packages Qualifizierte Namen Mehr zu Zugriffsklassen Generics (Java 1.5) Die Klassen im Java Collections Framework sind mit dem Typ ihrer Elemente
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
MehrTHE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic
THE GO PROGRAMMING LANGUAGE Part 1: Michael Karnutsch & Marko Sulejic Gliederung Geschichte / Motivation Compiler Formatierung, Semikolons Variablen, eigene Typen Kontrollstrukturen Funktionen, Methoden
MehrMethoden (fortgeschritten) in C# - 1
Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich
MehrEinfache Datentypen in JAVA
5.4.1. Einfache Datentypen in JAVA Ganzzahlige Datentypen byte 8 bits -128
MehrEinstieg in die Informatik mit Java
1 / 24 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Lokale Variablen 2 Lokale Variablen in Blocks 3 Lokale Variablen
MehrKlassenmethoden. 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
MehrAusdrücke in Scala. Funktionale Programmierung. Christoph Knabe FB VI
Ausdrücke in Scala Funktionale Programmierung Christoph Knabe FB VI 17.10.2014 Inhalt Einfache Ausdrücke Infix-Notation für Methodenaufruf Sonderzeichen in Bezeichnern Schlüsselwörter Konstanten Variablen
MehrGliederung der Folien
1 Gliederung der Folien 1. Einführung 1.1. Gliederung 1.2. Literatur 1.3. Einstieg in Java 1.3.1. Geschichte von Java 1.3.2. Hello World 1.3.3. Übersetzen eines Java-Programms 1.4. Die Entwicklungsumgebung
MehrGeschachtelte Klassen
Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte
MehrThemen 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
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete
Grundlagen der Programmierung Prof. H. Mössenböck 15. Pakete Idee Paket = Sammlung zusammengehöriger Klassen (Bibliothek) Zweck mehr Ordnung in Programme bringen bessere Kontrolle der Zugriffsrechte (wer
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
MehrProf. W. Henrich Seite 1
Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse
MehrVariablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel
4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen
MehrObjektorientiertes Programmieren (Java)
Grundlagen Objektorientiertes Programmieren (Java) Java folgt gewissen Rechtschreibregeln die Syntax. Diese besagt, dass hinter jeden Befehl ein Semikolon( ; ) stehen muss, damit der Computer weiß, dass
MehrOrganisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr
Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:
MehrOrganisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50
Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine
MehrGrundlagen der OO- Programmierung in C#
Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
MehrEinstieg in die Informatik mit Java
1 / 28 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 28 1 Überblick: Variablenarten 2 Lokale Variablen 3 Lokale Variablen
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrSmalltalk vs. Java c Chris Burkert 2002. Smalltalk versus Java
Smalltalk versus Java Gliederung Einführung Geschichte sprachliche Aspekte technische Aspekte theoretische Aspekte praktische Aspekte Fazit Einführung - Merkmale Objektorientierung Einführung - Merkmale
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrSqueak verwenden. Neues Projekt starten. Werkzeuge. Einführung in die objektorientierte Programmierung
Einführung in die objektorientierte Programmierung mit Squeak Teil 2 Squeak verwenden Image unter neuem Namen speichern und verwenden - immer ein intaktes Image zur Sicherheit verfügbar alle Änderungen
Mehr5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!
5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656
MehrTag 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
MehrTypisierung. Prüfungen zur Übersetzungszeit Type Test und Type Cast Bedingte Zuweisung Nil Übergangsparameter Grade der Typisierung. 3.
Typisierung Prüfungen zur Übersetzungszeit Type Test und Type Cast Bedingte Zuweisung Nil Übergangsparameter Grade der Typisierung 2 Untypisierte Sprachen erfordern Methodensuche zur Laufzeit bei Misserfolg
MehrC++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
MehrKapitel 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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
MehrEinstieg 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
MehrEinführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
MehrListing 1: Cowboy. Listing 2: Woody
Musterlösung Test 3 Aufgabe 1: Cowboy Listing 1: Cowboy class Cowboy { public String rope ( Cowboy that ) { if ( this == that ) { return exclaim (); 5 else { return " Caught "; public String exclaim ()
MehrInnere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.
Innere Klassen Innere Klassen Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Literatur: Java Tutorial & Arnold, K., Gosling, J. und Holmes,D... Page 1 Innere Klassen Der erste
MehrJAVA - Methoden - Rekursion
Übungen Informatik I JAVA - Methoden - Rekursion http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 Methoden Methoden sind eine Zusammenfassung von Deklarationen und Anweisungen
MehrTag 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
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
MehrC++ - 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
Mehr