Java-Bytecode: Der Blick unter die Haube
|
|
|
- Christel Knopp
- vor 9 Jahren
- Abrufe
Transkript
1 Projektgruppe Verteilung von parallelen Java-Anwendungen Java-Bytecode: Der Blick unter die Haube Struktur von Klassendateien Befehlssatz der Übersetzung grundlegender Java-Konstrukte Wichtige Java-Konstrukte mit komplexerer Umsetzung Michael Thies,
2 Übersetzen und Ausführen von Java-Programmen 1 Laufzeit Benutzer-Eingaben Bildschirm-Ausgaben Quelltext Java Laufzeitumgebung Java Compiler Bytecode- Erzeugung Ausführung ClassLoader Code- Erzeugung Linker binäre Klassendatei weitere Dateien jar-datei
3 Struktur einer Java-Klasse: Quelltext 2 package de.upb.example; public abstract class NamedDemo extends AbstractDemo implements Runable { protected String name; } private static int count = 0; public static final int NO_DEMO = -1; public String getname() { return name; } public void run() { dodemo(); } static int getcount() { return count; } public NamedDemo(String n) { name = n; } protected abstract void dodemo(); Angaben zur Klasse Definition von Klassen-/ Instanzvariablen Definition von Methoden, Konstruktoren
4 Struktur einer Java-Klasse: binäre Klassendatei 3 Kopf Kennung: 0xCAFEBABE Version: 45.3 NamedDemo.class ConstantPool Tabelle mit Namen, externen Referenzen Klassen-Definition Name: de.upb.example.nameddemo Oberklasse: de.upb.example.abstractdemo Interfaces: java.lang.runable Eigenschaften: public, abstract Feld-Definitionen name count NO_DEMO Methoden-Definitionen getname getcount run <init> dodemo
5 Attribute: Bausteine der Information in Klassendateien 4 Klassendatei Kopf ConstantPool Klassen-Definition Attribute Name, Länge der Daten Name, Länge der Daten Name, Länge der Daten zugehörige zugehörige? zugehörige Daten? Daten? Daten Feld-Definition Feld-Definition Methoden-Definition Methoden-Definition standardisierte Attribute: Pflicht-Attribute Bytecode für Methoden 'Code' Werte für Konstanten 'ConstantValue' optionale Attribute Informationen für Debugger 'LineNumberTable', 'SourceFile' Liste von Attributen
6 Definition von Feldern (Klassen-/Instanzvariablen) 5 Feld-Definition Name des Feldes deklarierter Typ Eigenschaften: Sichtbarkeit Instanz- oder Klassenfeld Sonstige: final, transient, volatile Wert von Konstanten Beispiele: Feld-Definition Name: name Typ: String Eigenschaften: protected, nicht static Feld-Definition Name: count Typ: int Eigenschaften: private, static Feld-Definition Name: NO_DEMO Typ: int Eigenschaften: public, static, final Attribut Name: 'ConstantValue' Länge: 2 Inhalt: (int, -1)
7 Typangaben in Klassendateien kompakte Textdarstellung für alle Java-Typdeklarationen: 1. Großbuchstaben für Grundtypen in Java int double float long boolean in der Klassendatei I D F J Z 2. vollständige Klassennamen für Referenztypen eingeschlossen in L und ; ähnlich wie Pfadangaben unter UNIX mit / als Trennzeichen in Java Object java.lang.string de.upb.example.nameddemo in der Klassendatei Ljava/lang/Object; Ljava/lang/String; Lde/upb/example/NamedDemo; 6 3. Anzahl Dimensionen und Elementtyp für Array-Typen jede Dimension durch Präfix [ repräsentiert in Java float[][] String[] in der Klassendatei [[F [Ljava/lang/String;
8 Definition von Methoden 7 Methoden-Definition Name der Methode Signatur der Methode Eigenschaften: Sichtbarkeit Instanz- oder Klassenmethode Sonstige: final, abstract, native, synchronized ausgelöste, geprüfte Ausnahmen Attribut 'Exceptions' Implementierung der Methode Attribut 'Code' Beispiele: Methoden-Definition Name: getname Signatur: () void Eigenschaften: public, nicht static Attribut Name: 'Code' Länge: n 1 Inhalt: Bytecode Methoden-Definition Name: dodemo Signatur: () void Eigenschaften: protected, nicht static, abstract Methoden-Definition Name: <init> Signatur: (String) void Eigenschaften: public, nicht static Attribut Name: 'Code' Länge: n 2 Inhalt: Bytecode Konstruktor
9 Methoden-Signaturen als Erweiterung der Typangabe 8 kompakte Textdarstellung für Parametertypen und Ergebnistyp: '(' Parametertyp ')' Ergebnistyp Parametertyp, Ergebnistyp: wie bei Typangaben für Felder zusätzlich V für Ergebnistyp void Beispiele: Methodenkopf in Java String getname() void setname(string n) boolean find(double[] v, float f) Signatur in der Klassendatei ()Ljava/lang/String; (Ljava/lang/String;)V ([DF)Z Überschreiben von Methoden aus Sicht der : Methodenname und Textdarstellung der Signaturen müssen in Ober- und Unterklasse gleich sein
10 Architektur und Befehlssatz der Java Virtual Machine () 9 Java-Bytecode Befehlssatz eines abstrakten Prozessors stark auf Java zugeschnitten 0-Adressmaschine (Kellerarchitektur) mit zusätzlichen Registern Class- Loader Linker Thread- Scheduler Abstrakter Prozessor Garbage Collector Finalizer Befehle sind typisiert (die meisten) keine Typinformation für Kellerelemente und Register Bytecode-Verifikation leitet Typinformation her und prüft Konsistenz Typ int float double Objekt- Operation referenz Addition iadd fadd dadd Multiplikation imul fmul dmul Ergebnisrückgabe ireturn freturn dreturn areturn Vergleich if_icmp fcmp dcmp if_acmp
11 Java-Bytecode: Struktur des Befehlssatzes 10 unterstützte Datentypen: int, float, Objektreferenzen long, double eingeschränkt: byte, short, char gar nicht: boolean int Größe: 1 -Wort Größe: 2 -Worte 202 verschiedene Bytecode-Befehle darunter viele spezielle Kurzformen (CISC-artig) Befehlsgruppen: Arithmetik Datentransport Konstanten laden Werte transportieren Sprungbefehle (bedingt/unbedingt) Zugriffe auf Felder Methodenaufruf und -rücksprung spezielle Unterstützung für Java Objekterzeugung Typtest und Typumwandlung Exceptions auslösen const universeller abstrakter Prozessor Java-spezifischer abstrakter Prozessor
12 Kellerarchitektur: Arithmetik mit der 11 Bytecode: iconst 3 iconst 4 iadd iconst 6 imul iadd imul 7 42 Ausdrücke in Postfix-Form: (3 + 4) iconst 3 iconst 4 iadd iconst 6 imul
13 Speichermodell der 12 Methode m Bytecode hat Zugriff auf: global lokal für Methode (mit fester Größe) dup, Arithmetik 0 1 Objekt Klasse putstatic getstatic putfield Tstore Tload Objekt Objekt getfield 6 7 Objektspeicher (heap) Operandenkeller Register (lokale Variablen)
14 Übersetzung: Zugriffe auf Klassen-/Instanzvariablen 13 Lesen int i = NamedDemo.count; getstatic <NamedDemo.count> istore 3 Reg. 3 ist i Schreiben NamedDemo.count = 0; iconst 0 putstatic <NamedDemo.count> Klassenvariable Instanzvariable int i = this.age; aload 0 getfield <Person.age> istore 3 Reg. 3 ist i this.age = 18; aload 0 iconst 18 putfield <Person.age>
15 Fallunterscheidung if (x > y) this.max = x; else this.max = y; Kontrollfluß: Sprünge und Distanzen abweisende Schleife int res = 1; int i = 0; while (i < 7) { res = 5 * res; i = i + 1; } 14 0: iload 2 Reg. 2 ist x 1: iload 3 Reg. 3 ist y 2: if_icmple +11 5: aload 0 6: iload 2 7: putfield <Cond.max> 10: goto +8 13: aload 0 14: iload 3 15: putfield <Cond.max> 18: Byte-Offsets im Bytecode 0: iconst 1 1: istore 2 Reg. 2 ist res 2: iconst 0 3: istore 3 Reg. 3 ist i 4: goto +11 7: iconst 5 8: iload 2 9: imul 10: istore 2 11: iload 3 12: iconst 1 13: iadd 14: istore 3 15: iload 3 16: iconst 7 18: if_icmplt :
16 Übersetzung von Methodenaufrufen 15 Klassenmethode int v, w = 9; v = Math.max(-w, 0); 0: iconst 9 2: istore 3 Reg. 3 ist w 3: iload 3 4: ineg 5: iconst 0 6: invokestatic <Math.max> 9: istore 2 Reg. 2 ist v 10: Instanzmethode Graphics g; g.drawstring(20, 30, "Hallo"); 0: aload 4 Reg. 4 ist g 1: iconst 20 3: iconst 30 5: ldc "Hallo" 7: invokevirtual <Graphics.drawString> 10:
17 Ausführung von Methodenaufrufen 16 invokexxx 2 Parameter Treturn Schachtel aufgerufene Methode Laufzeitkeller Schachtel Aufrufer Parameterübergabe Ergebnisrückgabe
18 Bindung von Methodenaufrufen 17 Bytecode-Befehl Bindung Empfänger Beispiel-Situation (this) invokevirtual dynamisch (Klasse) ja Component c; c.repaint(); invokeinterface dynamisch (Interface) ja Enumeration elems; elems.nextelement(); invokestatic statisch nein Thread.sleep(1000); invokespecial statisch ja super.paint(g); Ausführung dynamischer Methodenbindung: 0: aload 3 1: invokevirtual <Component.repaint> 4: Component repaint() wählt Implementierung von repaint() gemäß Typ der Objektreferenz auf dem Keller aus. TextArea repaint() Label repaint()
19 Java-Bytecode: Befehle kompakt codiert 18 Beispiel: int-konstanten kellern Wertebereich 1,, 5-128,, ,, Sonstige Befehl iconst_n bipush n sipush n ldc idx, ldc_w idx Format 0x02,, 0x08 0x10 n 0x11 n 1 n 2 0x12 idx, 0x13 idx 1 idx 2 Länge , Beispiel: Objektreferenz im Register kellern Register-Nr. 0,, 3 4,, ,, Befehl aload_n aload n wide aload n Format 0x2a,, 0x2d 0x19 n 0xc4 0x19 n 1 n 2 Länge Spezialbefehl für häufiges Idiom: lokale Variable inkrementieren/dekr. iload n iconst c iadd istore n iinc n, c im besten Fall: 3 statt 7 Bytes
20 Klassendateien: kompakt dank ConstantPool? 19 ConstantPool Index Eintragstyp Daten Quelltext "Hello!".length() 1 UTF8 Hello! 2 String Index 1 3 UTF8 java/lang/string 4 Class Index 3 5 UTF8 length 6 UTF8 ()I 7 NameAndType Indizes 5, 6 8 Methodref Indizes 4, 7 Bytecode ldc #2 invokevirtual #8 Methodref String "Hello!" Einträge im ConstantPool Class NameAndType "java/lang/string" "length" "()I" Typ des Empfängers Methodenname Signatur ConstantPool speichert identische Einträge nur einmal macht im Mittel 60% der Größe einer Klassendatei aus
Praktikum Compilerbau Sitzung 9 Java Bytecode
Praktikum Compilerbau Sitzung 9 Java Bytecode Prof. Dr.-Ing. Gregor Snelting Matthias Braun und Sebastian Buchwald IPD Snelting, Lehrstuhl für Programmierparadigmen KIT Universität des Landes Baden-Württemberg
Java Virtual Machine (JVM) Übersicht
Java Virtual Machine (JVM) Alan Dingwall [email protected] Übersicht Was ist die Java Virtual Machine DasClass File Format Aufbau der JVM Kompilation.java.class Fazit Quellennachweise Was ist die JVM Abstrakter
Einstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
1 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
1 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
Martin 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
Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
Einstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
Einfache Datentypen in JAVA
5.4.1. Einfache Datentypen in JAVA Ganzzahlige Datentypen byte 8 bits -128
Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1
Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................
Beispiele 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]
Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen
Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für
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
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
Programmieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
Algorithmen 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
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
Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
4. 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
AuD-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
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
Programmierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
Institut 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
Einstieg 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
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)
Probeklausur: 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,
Erste Java-Programme (Java Wiederholung & Vererbung)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Java Wiederholung & ) Tutorium Bioinformatik (WS 18/19) Konstantin: [email protected] Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
Einfü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
Polymorphie. 15. Java Objektorientierung II
432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
Java-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
12 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,
EINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/
Vorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
Polymorphie. 15. Java Objektorientierung II
446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
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
Einstieg 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
Einstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
Vorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
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
Java Virtual Machine
Seite 1 von 9 1 Was ist die JavaVM Java Virtual Machine Die JavaVM könnte man als einen virtuellen Computer betrachten, der speziell dafür kompilierten Java-Code ausführen kann. Der Begriff "virtuell"
Gliederung 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
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
Überblick. Beispiel: get()-methodenaufruf am VSBoard aus Übungsaufgabe 1. Analyse einer Methode: java.lang.reflect.method
Überblick Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Stubs & Skeletons Aufgabe 2 Tutorial: http://docs.oracle.com/javase/tutorial/reflect/index.html
II.4.5 Generische Datentypen - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche
Grundlagen 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
EINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/
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
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
3. Java - Sprachkonstrukte I
Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,
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
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
Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
Praktische Informatik 1
Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode
Grundlagen der Modellierung und Programmierung, Übung
Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak
II.4.2 Abstrakte Klassen und Interfaces - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1
Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei
Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der
Datenbankanwendungsprogrammierung Crashkurs Java
Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung
Theorie 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
3. Java - Sprachkonstrukte I
Lernziele 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Sie kennen die grundlegensten Bausteine
1. Abstrakte Klassen
1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,
II.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
14 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
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
JAVA 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
14 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.
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.
3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
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
14 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
Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object
Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen
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
6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff
Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.
Faustregeln zu Zusicherungen
Faustregeln zu Zusicherungen Zusicherungen sollen stabil sein (vor allem an Wurzel der Typhierarchie) keine unnötigen Details festlegen explizit im Programm stehen unmissverständlich formuliert sein während
Java: Der Einstieg. Algorithmen und Datenstrukturen II 1
Java: Der Einstieg Algorithmen und Datenstrukturen II 1 Grundlegendes zu Java: Historisches 1990-1991: Entwicklung der Programmiersprache OAK durch James Gosling von Sun Microsystems (zunächst für Toaster,
Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
14. Java Objektorientierung. Klassen, Vererbung, Kapselung
427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen
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
Wiederholung zur Vorlesung Programmieren
Wiederholung zur Vorlesung Jan 2007 Wintersemester 2007/2008 Computerlinguistik, Campus DU Einstieg Erläutern sie in knappen Worten die notwendigen Schritte um ein einfaches Java-Programm zu schreiben
Kapitel 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
