Praktische Informatik 1

Ähnliche Dokumente
Einführung in die Programmierung 1

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Grundlagen der Informatik 0

Javakurs für Anfänger

Einleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders

Java-Einführungskurs Informatik II (D-ITET) Vincent Becker,

3.2 Objekte und Klassen. Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen.

Methoden und Wrapperklassen

Javakurs für Anfänger

Java Datentypen und Variablen

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Praxis der Programmierung

Computeranwendung und Programmierung (CuP)

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Programmieren in Java

Einführung in C. EDV1-04C-Einführung 1

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Einstieg in die Informatik mit Java

5.4 Klassen und Objekte

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Abschnitt 6: Klassen, Objekte und Methoden in Java

Programmiervorkurs Einführung in Java Tag 1

Philipp Güttler Objektorientierung und komplexe Datentypen

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Repetitorium Informatik (Java)

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

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!

Vorkurs Informatik WiSe 16/17

OOI mit Java. Unsere Beispielklasse. Hund name: String laut: String groesse: int gewicht: int gibname(): String giblaut(): String

Tag 8 Repetitorium Informatik (Java)

Welche Informatik-Kenntnisse bringen Sie mit?

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Informatik. Studiengang Chemische Technologie. Michael Roth Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013.

Objektorientierte Programmierung Studiengang Medieninformatik

Klassen als Datenstrukturen

Javakurs für Anfänger

Konstruktor. Grundlagen der Programmierung. Stephan Kleuker 90

Grundlagen der OO- Programmierung in C#

Programmieren in Java

Einführung in die Programmierung für NF MI. Übung 04

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Algorithmen und Datenstrukturen II

This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License.

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Einstieg in die Informatik mit Java

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

16. März 2016 artb5-v1.1

Tag 7 Repetitorium Informatik (Java)

Tafelübung 07 Algorithmen und Datenstrukturen

Liste Programmieren Java Überblick

Objektorientierung (OO)

Hüllklassen. Gerd Bohlender. 25. Juni Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Informatik II Übung 05. Benjamin Hepp 3 April 2017

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Grundlagen der Informatik für Ingenieure I

Implementieren von Klassen

Umsetzung einer Klassenkarte in einer Programmiersprache

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Vorkurs: Java-Einführung

Intuitive Einführung. Informatik B Objektorientierte Programmierung in Java. Vorlesung 01: Objektorientierte Programmierung (Teil 1)

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?

Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 31. Jänner 2003

Einführung in die C-Programmierung

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

Java Einführung Methoden in Klassen

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Objekt-Orientierte Programmierung

Javakurs 2013 Objektorientierung

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Einführung in die Programmierung mit Java

Informatik II Übung 06. Benjamin Hepp 5 April 2017

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

Einführung in die Programmierung Blockkurs Java

Einstieg in die Informatik mit Java

RO-Tutorien 15 und 16

Tutorium Java Ein Überblick. Helge Janicke

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

Java in Macro, SCL und Data Step

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1

Ein erstes Java-Programm

Algorithmen versus Programmiersprachen

12 Abstrakte Klassen, finale Klassen und Interfaces

Objektorientierte Programmierung

RO-Tutorien 17 und 18

JAVA - Methoden

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Objektorientes Design & Programm

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Transkript:

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 in Assemblercode Assembler: übersetzt das Assemblercode in Maschinencode Linker/Loader: bindet Maschinencode-Einheiten zu einem Programm zusammen Betriebssystem: ermöglicht die Ausführung des Programms als Prozess, und stellt diesem Betriebsmittel zur Verfügung (CPU, Speicher, Zugriff auf Schnittstellen Weitere Details hierzu: TI 2, Betriebssysteme I

Programmierung Begriffe Java Compiler: übersetzt Quellcode in Java Byte Code Java Laufzeitumgebung: interpretiert den Byte Code und transformiert ihn in Maschinencode führt den Maschinencode mit Hilfe des Betriebssystems auf der Hardware aus Java Programme sind unabhängig vom Betriebssystem Java Programme sind unabhängig von der darunter liegenden HW-Plattform

Programmierung Begriffe C/C++-Prozess System Calls (API = Application Program Interface) Betriebssystem Hardware Driver Hardware Controller Hardware

Programmierung Begriffe Java Programm (Byte Code) Java Instruktionen Java Laufzeitsystem System Calls Betriebssystem

Übersetzung Computer verstehen kein Java! genauer: Java-Quellcode Compiler Bytecode Maschinencode interpretiert JVM (Java Virtual Machine)

Programmierung in JAVA Im ersten Semester gilt: keine Ablenkung durch Fancy Tools, daher Editor z. B. Emacs, Vi, Xcode Editor Editieren des Java Quellcodes Unix Shell Cygwin Shell unter Windows Compilieren und Ausführen des Codes Anbindung an SVN-Repository Zusammenarbeit in Gruppen Abgabe des Programmcodes Zu Beginn des 2. Semesters: Einführung in die Eclipse IDE

Klassen und Objekte Computerprogramm: Modelliert einen Ausschnitt der realen Welt

Klassen und Objekte Objekte: Dinge sog. Instanzen der realen Welt bzw. eines Problembereichs...oder dieser luftgekühlte Käfer: z.b. dieses Pferd:...oder diese geometrischen Figuren:

Klassen und Objekte Klassen: alle Objekte einer Art bzw. Kategorie Objekt : konkretes Pferd Klasse Pferd: Landina Eine Klasse: mehrere Instanzen Zwei Instanzen der Klasse Pferd Pitu

Attribute ein Objekt hat Attribute d.h. Werte, die in Datenfeldern gespeichert sind Attributname Wert Name Landina Rasse Hannoveraner Alter 10 Stockmaß 1.78 Attributname Wert Name Pitu Rasse Oldenburger Alter 12 Stockmaß 1.74

Attribute die Klasse definiert, welche Attribute die Objekte haben: Pferd Name Rasse Alter Stockmaß

Zustand jedes Objekt speichert seine eigenen Werte (seinen Zustand ): Attributname Wert Name Pony Rasse Shettlandpony Alter 15 Stockmaß 0.96

Attribute Attribute haben einen Namen einen Typ einen Zugriffsmodifikator private String farbe

Datentypen wichtige sogenannte primitive Datentypen int ganze Zahlen 11-2913 42 String beliebige Zeichenketten hello world PI-1 ist erhellend boolean Wahrheitswerte true false

Datentypen wichtige sogenannte primitive Datentypen float Gleitkommazahlen 11.1-2913E-12 Weitere primitive Datentypen byte short long double char

Klassen und Objekte etwas formaler Klassen sind Typen Typen sind Mengen, repräsentieren also die Menge aller Elemente einer bestimmten Sorte Klassen sind Mengen, die Objekte repräsentieren Alle Objekte, die zu einer Klasse gehören, besitzen die selben Attribute (dieses Konzept wird später im Zusammenhang mit Vererbung noch verfeinert...)

Klassen und Objekte etwas formaler Ein Objektzustand wird durch den aktuellen Wert aller seiner Attribute identifiziert. Besitzt eine Klasse nur Attribute aus primitiven Datentypen, t1 a1; t2 a2; ; tn a_n dann ist der aktuelle Zustand eines Objektes dieser Klasse ein Element der Menge t1 x t2 x x t_n

Klassen und Objekte etwas formaler Zwei Objekte können den selben Zustand haben kann man sie dann noch unterscheiden? Ja die Java Laufzeitumgebung identifiziert jedes Objekt über eine Referenz, d.h., eine virtuelle Speicheradresse Die Identifikation ist eine injektive Abbildung

Erzeugung von Objekten Objekte werden aus ihrer Klasse durch Anwendung eines Konstruktors erzeugt Der Konstruktor übergibt der Java Laufzeitumgebung Befehle zum Anlegen eines neuen Objektes gemäß Klassentyp Die Laufzeitumgebung allokiert den hierzu notwendigen Speicher und speichert dort das Objekt Jede Klasse besitzt einen Default Constructor, der alle Attribute mit ihren Default-Werten belegt

Erzeugung von Objekten Konstruktoren haben immer den selben Namen wie ihre Klasse Die Objekterzeugung unter Nutzung des Default Constructors zu einer Klasse C erfolgt durch den Befehl C objektname = new C(); Konstruktoraufruf Objekttyp Erzeugungsbefehl an Laufzeitumgebung

Kommunikation mit Objekten über Methoden kann mit Objekten kommuniziert werden Methoden sind Operationen, die aufgerufen werden können

Methoden Methoden haben einen Namen sichtbarmachen() gefolgt von optionalen Parametern

Parameter Parameter haben einen Typ farbeaendern(string neuefarbe) einen Namen

Parameterliste mehrere Parameter möglich: moveto(int xkoor, int ykoor, int zkoor)

Objektinteraktion Objekte können andere Objekte erzeugen Methoden dieser anderen Objekte aufrufen

Ergebnis Methoden können ein Ergebnis zurückgeben! Typ des Ergebnisses / Rückgabewertes String gibname()

Signatur Signatur einer Methode: Kopf der Methode nötige Informationen für den Aufruf allgemein: Rückgabetyp Methodenname(Parameter) mit Parameter = (P1, P2, P3, ) und Pn = Parametertyp Parametername Ergebnislose Methoden haben den Rückgabetyp: void! Parameter sind optional! Klammern aber zwingend nötig!

Objekte als Parameter Name der entsprechenden Klasse als Typ: void tragestudentein(student neuerstudent)