Vorlesung Programmieren
|
|
- Kristina Bärbel Falk
- vor 5 Jahren
- Abrufe
Transkript
1 Vorlesung Wintersemester 2006/2007 Computerlinguistik, Campus DU
2 Überblick Seite 2 Methoden Multidimensionale Arrays Verkettete Listen
3 Überblick: Methoden Seite 3 Wichtige Gründe für Methoden Parameter, Kopf, Signatur Lokale, globale Variablen Sichtbarkeitsbereich von Variablen Überladen von Methoden
4 Wichtige Gründe für Methoden (1) Programme sind in der Praxis zu groß, um in einem einzigen Stück geschrieben zu werden Klassen helfen, Programme in überschaubare Teilprogramme zu zerlegen: Problem Teilprobleme Auf Klassenebene kann ebenfalls logisch strukturiert werden: Methoden Zerlegung der Klassenaktionen in kleinere, logisch zusammengehörende Anweisungsfolgen Via Benennung der Anweisungsfolgen (Bezeichner d. Methode) können die Anweisungsfolgen beliebig oft aufgerufen werden Seite 4
5 Wichtige Gründe für Methoden (2) Wiederverwendung von Code Vermeidung von Redundanzen Maximierung der Wartbarkeit Definition benutzerspezifischer Operationen Sie wollen einen Operator, den bspw. Math nicht hat? Kein Problem: Methode mit dieser Funktionalität schreiben Strukturierung von Programmen Komplexität heutiger Software Kontrollierter Zugriff auf Informationen von Objekten Informationen können geschützt werden, um sie ausschließlich über Methoden ansprechen zu können (private) Banksoftware: Kein direkter Zugriff auf das Guthaben, sondern via adäquater Methoden (einzahlen, auszahlen, ) Seite 5
6 Parameter, Kopf, Signatur Methodenkopf mit Parameterliste bildet die Schnittstelle der Methode (Signatur) Definiert, wie die Methode benutzt werden kann Parametrierte Methoden können in verschiedenem Kontext verwendet werden: public static void printit ( String thestring ) { System.out.println( thestring ); printit( "Hallo"); printit( "Hello" ); printit ("Hy"); // Seite 6
7 Lokale, globale Variablen Neben Anweisungen können Methoden auch Deklarationen enthalten Alle in einer Methode deklarierten Variablen sind lokal zu dieser Methode Alle außerhalb einer Methode deklarierten Namen sind global Globale Variablen (Instanz- und Klassenvariablen) können weiter spezifiziert werden mit Sichtbarkeitsmodifiern (public, private, ) static Es gibt jedoch lokale Konstanten, die mit final deklariert werden ( final int a;). Dazu jedoch später mehr Seite 7
8 Lokale Variablen In einer Methoden können Variablen (und Konstanten) deklariert werden, jedoch nicht weitere Methoden! Bsp.: public static void test( int z ){ int x; double y; /*... */ Die Methode deklariert drei lokale Variablen: z, x, und y Können und dürfen nur in dieser Methode verwendet werden Sind außerhalb von test nicht sichtbar. Speicherplatz für lokale Variablen wird bei jedem Aufruf der Methode, in der sie deklariert wurden, aufgerufen wird. Lokale Variablen leben also nur während der Ausführung ihrer Methode! Seite 8
9 Globale Variablen Eine Variable ist global, wenn sie außerhalb einer Methode, also auf Klassenebene (direkt im Klassenrumpf), deklariert wurde. Beispiel: public class GlobalVars { public static int a; public double b; public static void test( int z ){ // public static void main(string[] args) { //... Globale Variablen (static oder nicht) können in allen Methoden der Klasse verwendet werden, in der sie deklariert wurden a und b können demnach in test und main verwendet werden Statische glob. Var. erhalten ihren Speicherplatz bei Programmstart und existieren, solange das Programm läuft»normale«globale Variablen erhalten ihren Speicherplatz bei der Erzeugung des Objekts und existieren so lange, wie das Objekt existiert Freigabe des Speicherplatzes erst nach Beendigung d. Prog. Werte globaler Variablen bleiben über Methodenaufrufe hinweg erhalten Seite 9
10 Wann lokale oder globale Variablen verwenden? Nach Möglichkeit lokal statt global definieren Verschiedene Methoden können so Variablen mit selben Bezeichnern verwenden Man muss sich keine Gedanken machen, welche Namen bereits vergeben sind Deklaration und Verwendung liegen bei lok. Var nah beisammen Förder die Strukturierung und Lesbarkeit des Programms Bei lok. Var. kann man sich sicher sein, dass keine anderen methoden sie irrtümlich zerstören Man kann so eine Methode afür sich alleine verstehen und verifizieren, ohne auf andere Methoden Rücksicht nehmen zu müssen Global sollte eine Variable nur dann sein, wenn sie in mehreren Methodenb benutzt wird, oder wenn ihr Wert über mehrere Aufrtufe einer Methode hinweg erhalten bleiben soll Seite 10
11 Sichtbarkeitsbereich von Variablen Def.: Jenes Programmstück einer Variablen, in dem auf die Variable zugegriffen werden kann. Erstreckt sich von ihrer Deklaration bis ans Ende jenes Blocks, in dem Variable deklariert wurde Sichtbarkeitsbereich lok. Variablen: Anfang bis Ende der Methode Globale Var.: Anfang bis Ende der Klasse, bzw. für das gesamte Programm (static) Es ist erlaubt, dass glob. und lok. Variablen gleichnamig bezeichnet wurden: Lokale Var. verdeckt dann die glob. temporär Zugriff auf glob. Variable via this Deklaration von Var. innerhalb des Rumpfs einer Schleife oder einer if-kontrollstruktur Var. existiert nur bis zum Ende des Code-Blocks Var. muss mit anderem Bezeichner als die lok. Var. deklariert werden! Bspw. Laufvariablen (for ( int i=0;i<10;i++) { ) existieren nur innerhalb des Schleifen-Code-Blocks Seite 11
12 Sichtbarkeitsbereiche illustriert Seite 12 class MyProg{... int x; int y; x y static void P( int par ) { int x; while (... ) { int y; x y par x y
13 Überladen von Methoden Methoden lassen sich ebenso wie Konstruktoren mehrfach mit identischem Bezeichner definieren Auch bei Methoden gilt: Die verschiedenen Definitionen müssen anhand der Typsignatur unterscheidbar sein Parameternamen und Rückgabewerte dienen nicht der Unterscheidung Ein alter Bekannter als gutes Beispiel für eine überladene Methode: System.out.println() System.out.println() ist u.a. definiert für keine Parameter int, long, double, etc. String Seite 13
14 Überladungsprinzipien im Detail Unterscheidung der Methoden anhand der Parametertypen Jede Kombination von Typen muss einmalig sein Beim Aufruf einer Methoden erkennt Java anhand der Typsignatur automatisch, welchen Konstruktor es verwenden muss Die Bezeichner der Parameter spielen zur Unterscheidung keine Rolle Überladung von Konstruktoren funktioniert genauso! Seite 14
15 Überladung illustriert Seite void dosomething( int i ) {... ; void dosomething( String s, int j ) {... ; void dosomething( int i, int j ) {... ;... dosomething(5);... dosomething("hello", 3+4);... dosomething( 17, 25 );...
16 Überladung: Quiz Seite void dosomething ( int i ) {... ; void dosomething( String i ) {... ; String dosomething( int i ) {... ; void dosomething( int j ) {... ; String dosomething( int j ) {... ; void dosomething( int i, int j ) {... ;
17 Überladung: Konstruktoren Seite 17 //... Student ( String name, int day, int month, int year ){ /* Anweisungen */ Typsignatur: ( String, int, int, int ) //... Typsignatur: ( String, int, int, int ) Student ( String name, int tag, int monat, int jahr ){ /* Anweisungen */ //...
18 Wozu eigentlich Überladung? Bankkonto.java Seite 18 public class BankAccount { public String owner; public int euro; public int cent; //... public void einzahlen ( int euro, int cent ){ this.euro += euro; this.cent += cent; public void einzahlen ( int euro ){ einzahlen( euro, 0 ); public void auszahlen ( int euro, int cent ) { //... public void auszahlen ( int euro ) { //... Aufruf der 'anderen' einzahlen-methode. Erkennt Java anhand der übergebenen Argumente beim Aufruf.
19 Überblick: (Mehrdimensionale) Arrays Seite 19 Mehr zur Benutzung von Arrays (Nicht-literale) Indizes Arrayvariable und Referenz Mehrdimensionale Arrays
20 Benutzung von Arrays (Teil II) Arrayelemente werden über den Index angesprochen Der Index in eckigen Klammern kann eine Konstante (hier Numeral) sein, eine Variable, oder sogar ein Methodenaufruf sein. Für alle gilt: Der Typ des Indexausdrucks muss ganzzahlig sein (long, int, short, byte) myarray[ 4 ] = 43; myarray[ 3*countVar+4 ] = myarray[ nextpos ] myarray[getlastinsert( myarray, mycount )]=5; Seite 20
21 Arrays und Referenzen (1) Angenommen a sei ein int-array der Länge 3 mit nicht-initialsierten Elemente. a referenziert/zweigt auf das Array mit 3 Elementen! b ist ebenfalls ein int-array, wurde deklariert, jedoch nicht initialisiert, zeigt also auf null ( ) Seite 21 a a[0] a[1] a[2] b
22 Arrays und Referenzen (2) Beide Arrays verwalten Objekte von identischem Typ int, man kann also b a zuweisen: b = a; Es wird niemals das Array (mit Speicher) zugewiesen, sondern die in a gespeicherte Adresse (die Referenz/der Zeiger) des Arrays: Seite 22 a a[0] a[1] a[2] b b[0] b[1] b[2]
23 Arrays und Referenzen (3) Zugriffe auf a wie bspwa[0], oder a[2] sind nun gleichbedeutend mit b[0], bzw. b[2] Sie zeigen auf die selben Elemente des selben Arrays Die Zuweisung eines Werts, bspw. a[0] = 19;, wirkt sich synchron auf den Wert in b[0] aus: Seite 23 a a[0] a[1] a[2] b b[0] b[1] b[2]
24 Arrays und Referenzen (4) Wird a ein neues Array zugewiesen, bspw. via a = new int[5], ergibt sich folgendes Bild: Seite 24 a a[0] a[1] a[2] a[3] a[4] 0 0 b b[0] b[1] b[2]
25 Arrays und Referenzen (5) Eine andere Möglichkeit, die Referenz zur Array- Variable zur»verlieren«, ist die Zuweisung von null, also bspw. so: b = null;. Resultat: Seite 25 a a[0] a[1] a[2] a[3] a[4] 0 0 b b[0] b[1] b[2]
26 Mehrdimensionale Arrays (1) Ein Array ist eine Tabelle von Werten Wenn Arrayelemente wiederum Arrays sind, spricht man von einer zweidimensionalen Tabelle (Matrix) Die Matrix ist ein Array aus Zeilen, jeder Zeile ist wiederum ein Array aus Spalten. Für int[][] a = new int[4][3]; ergibt sich folgendes Bild: a[0][0] a[0][1] a[0][2] Seite 26 a[0] a[1] a[2] a[3] 0 0 0
27 Mehrdimensionale Arrays (2) Da Arrayvariablen Referenzen sind, wird die Matrix wie folgt im Speicher dargestellt, und sieht (vereinfacht) dann so aus: a a[0][0] a[0][1] a[0][2] a[0] Seite 27 a[1] a[1][0] a[1][1] a[1][2] a[2][0] a[2][1] a[2][2] a[2] a[3][0] a[3][1] a[3][2] a[3]
28 Mehrdimensionale Arrays (3): Deklaration u. Initialisierung Auch mehrdimensionale Arrays können beim Deklarieren gleichzeitig (Elemente) initialisieren: int[][] a = { {1,2,3, {4,5,6, {7,8,9, {10,11,12 ; Das Vier-Spalten-und-drei-Zeilen Array illustriert: a[0][0] a[0][1] a[0][2] Seite 28 a[0] a[1] a[2] a[3]
29 Überblick: Verkettete Listen Seite 29 Dynamische Datenstrukturen Verkettete Listen
30 Dynamische Datenstrukturen Verkettete Listen gehören zu den dynamischen Datenstrukturen, analog zu Bäumen und Graphen Kernprinzip: Die Datenstruktur besteht aus miteinander verketteten Objekten (Knoten) Die Knoten werden zur Laufzeit (also dynamisch) mittels new erzeugt und dann verkettet Nicht so bei Arrays: Größenangabe vor der Laufzeit Die erzeugte Knoten-Datenstruktur wächst und schrumpt dynamisch Nicht so bei Array: Neu-Erzeugung eines Arrays nötig Seite 30
31 Dynamische Datenstrukturen illustriert Seite 31 In einer Liste hat jeder Knoten außer dem letzten genau einen Zeiger auf seinen Nachfolger. Liste Baum In einem Baum kann jeder Knoten mehrere Zeiger auf Nachfolger haben. Jeder Knoten wird aber nur durch höchstens einen Vorgängerknoten referenziert. Knoten in Graphen können im Gegensatz zu Bäumen durch mehrere Vorgängerknoten referenziert werden! Graph
32 Node (Liste): Wrapper für Daten Seite 32 public class Node { int value; Node next; Node( int value){ this.value = value; Die zu verwaltenden Daten. Möglich sind hier auch komplexe Typen (Student, Auto, ) Feld für die Verkettung: Der Zeiger auf das Nachfolger-Objekt Konstruktor zur Initialisierung von value Wrapper-Klasse. Die eigentlichen Daten werden in einer Klasse 'umhüllt'/'verpackt' Rekursion
33 Verkettung (1) Angenommen, es gibt zwei Node-Objekte, deren Adressen (Referenzen) in den Variablen a und b gespeichert sind: Node a = new Node( "Node 1" ); Node b = new Node( "Node 2" ); Seite 33 a b data "Node 1" data "Node 2" next next
34 Verkettung (2) Die beiden Objekte a und b können nun miteinander verkettet werden, indem wird a.next auf das Objekt zeigen lassen, das an b hängt: a.next = b; Der next-zeiger von b soll das Ende der Liste darstellen, also null zuweisen (hier redundant) b.next = null; Seite 34 a b data next "Node 1" "Node 2" data next
35 Verkettung, Quelltext: NodeTest.java Seite 35 public class NodeTest { public static void main ( String[] args ){ Node a = new Node("Node 1"); // Knoten 1 Node b = new Node("Node 2"); // Knoten 2 a.next = b; // Verkettung der Knoten b.next = null; // Ende der verketteten Liste System.out.println( "a: "+a.data+"\na's Nachfolger: "+a.next.data ); Ausgabe a: Node 1 a's Nachfolger: Node 2
36 Mit den Knoten arbeiten Es fehlen nun noch die Möglichkeiten, die Liste effizient verwenden zu können. Dazu zählen Aktionen wie bspw: Hinzufügen Löschen Länge Elemente abrufen Seite 36
37 NodeList.java public class NodeList { String data; NodeList next; NodeList( String data ){ this.data = data; next = null; NodeList( String data, NodeList next ){ this.data = data; this.next = next; NodeList rest() { return next; String firstelement() { return this.data; String lastelement() { if (next == null) return data; else return rest().lastelement(); String lastelementiterative() { NodeList tmp = this; while (tmp.next!= null) { tmp = tmp.rest(); return tmp.firstelement(); Seite 37
38 NodeListTest.java Seite 38 public class NodeListTest { public static void main(string[] args) { NodeList nodelist= new NodeList("Knoten 1", new NodeList("Knoten 2", new NodeList( "Knoten 3") ) ); System.out.println( nodelist.firstelement() ); System.out.println( nodelist.lastelement() ); System.out.println( nodelist.lastelementiterative() );
39 Verwendete Literatur Mössenböck, Hanspeter Sprechen Sie Java?, 3. Auflage. dpunkt.verlag. Seite 39
Nino Simunic M.A. Computerlinguistik, Campus DU
Vorlesung 6. Sitzung Grundlegende Programmiertechniken Wintersemester 2007/2008 Dozent Nino Simunic M.A. Computerlinguistik, Campus DU Grundlegende Programmiertechniken, WS 2007/2008 Arrays Fortsetzung,
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden
Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");
MehrImplementieren 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
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
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
MehrVorkurs 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
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
MehrJava Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
MehrTeil 2: Weitere Aspekte der Objektorientierung
Teil 2: Weitere Aspekte der Objektorientierung Klassenvariablen So wie es Instanzvariablen gibt, die zu einer gewissen Instanz (Objekt) gehören und deren Attribute speichern, so gibt es aus Klassenvariablen:
MehrUniversität München, Hans-Peter Kriegel und Thomas Seidl Informatik II a[0] a[1] a[2] a[3] a[n 1]
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -108 Kapitel 5: Arrays Einführung Ein Array ist eine Reihung gleichartiger Objekte. a: a[0] a[1] a[2] a[3] a[n 1] Bezeichner a steht
MehrKapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 10 Verweise und Referenzen Inhalt von Kapitel 10 Verweise und Referenzen 10.1 Das Schlüsselwort this Definition Verwendungszweck Klassenmethoden EINSCHUB: Musterlösung zu Übung 4.1 10.2 Objektreferenzen
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
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
MehrVorkurs 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
Mehr7.0 Arbeiten mit Objekten und Klassen
252-0027 Einführung in die Programmierung 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved. Uebersicht
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]
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)
MehrKonstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }
Konstruktor spezielle Methode zum Initialisieren bei Erzeugen eines Objekts mit new trägt Namen der Klasse hat keinen Rückgabetyp keiner angegeben: Compiler erzeugt Standard-Konstruktor (analog: Attribute
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 25. November 2015 Zweidimensionale Arrays [ ][ ] Ein zweidimensionaler
MehrGleitkommazahlen. Die Typen float und double. Page 1. Variablen. Konstanten. Syntax der Gleitkommakonstanten
Gleitkommazahlen Die Typen float und double Variablen float x, y; double z; // 32 Bit groß // 64 Bit groß Konstanten FloatConstant Digits Exponent FloatSuffix 3.14 // Typ double 3.14f // Typ float 3.14E0
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)
Mehr2. 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
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden
MehrZeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.
Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrFelder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 9.5.07 Übersicht 1 Was sind? 2 Vereinbarung von n 3 Erzeugen von n 4 Zugriff auf Feldkomponenten 5 Mehrdimensionale 6 als Objekte, Referenzen Kopieren
Mehr! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
MehrJava 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
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 5 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile
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
MehrADT: Verkettete Listen
ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch{ int zaehler, nenner; public Bruch(int zaehler, int nenner) { this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren
MehrProgrammiertechnik 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
Mehr1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new
MehrVariablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15
MehrGrundelemente 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
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrProzeduren 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
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
MehrJava Referenzdatentypen genauer betrachtet
Informatik 1 für Nebenfachstudierende Grundmodul Java Referenzdatentypen genauer betrachtet Kai-Steffen Hielscher Folienversion: 23. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Referenzdatentypen
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
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
MehrGrundelemente 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
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................................
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
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
MehrGrundelemente 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
MehrVererbung. 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
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 5 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind ausgewählte
MehrFelder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden
Felder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden Dim arrayname (dim1,dim2, ) As Typ Bei eindimensionalen Feldern
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
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
MehrGrundlagen der Programmierung Teil1 Einheit III Okt. 2010
Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder, mehrdimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Überblick: mehrdimensionale Felder 2 Vereinbarung
Mehr7. Verkettete Strukturen: Listen
7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):
MehrFolienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4
Folienpaket 7 Themenschwerpunkte: Methoden in OOP 284 09/2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4 Eine Klasse entwerfen Eine Klasse enthält folgende Information: Name der Klasse (ist auch der
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
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
MehrWiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung
Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) 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?...
MehrObjekte. 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.......................
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrJavakurs 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
MehrADT: Verkettete Listen
ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch int zaehler, nenner; public Bruch(int zaehler, int nenner) this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung Anweisungen durch Methodenaufrufe Ausgabe auf der Konsole System.out.println(...); Benutzereingabe einlesen = scanner.nextdatentyp(); Mathematische Funktionen Math.sqrt( ), Math.sin( ), Math.random(),
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
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
MehrElementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)
MehrAnregungen zu Übung 2
Anregungen zu Übung 2 Allgemeine Informatik II - SS 2007 Was sind Arrays und wie kann man sie verwenden? Ein Array ist ein spezieller Datentyp, der mehrere Werte zu einer Einheit zusammenfasst. Er ist
MehrAusgabe:
Aufgabe 2.10: Schreiben Sie ein Programm, das zunächst die Quadratzahlen zu den Zahlen 1-10 mit Hilfe einer While- Schleife und danach die Quadratzahlen zu den Zahlen 3, 6, 9,.., 30 mit Hilfe einer For-Schleife
Mehr6 Speicherorganisation
6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrFakultät IV Elektrotechnik/Informatik
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
Mehr2 Programmieren in Java I noch ohne Nachbearbeitung
1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!
MehrAlgorithmen und Datenstrukturen 07
(7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik
Mehr10. Felder (Arrays) Teil 2. Java-Beispiele: Echo.java Primzahlen.java Monate.java. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
10. Felder (Arrays) Teil 2 Java-Beispiele: Echo.java Primzahlen.java Monate.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 18. Nov. 2015 2 Techniken mit Arrays: Boolean-Anzeige-Feld
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
MehrBei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife
303 Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife durchgeführt wird. 304 305 for-schleifen sind in Aktivitätsdiagrammen
MehrDatum, Uhrzeit: , Uhr Semester: IN1 Note:... Prof. Dr. G. Meixner
Prüfung "Programmieren 1", IN1, WS 16/17 Seite 1 von 6 Datum, Uhrzeit: 20. 01. 2017, 10.30 Uhr Semester: IN1 Note:... Prüfer: Prof. Dr. G. Meixner Dauer: 60 Min. Hilfsmittel: keine Punkte:... Diese Prüfung
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrObjektorientierte Programmierung und Klassen
Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP
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
MehrEinstieg in die Informatik mit Java
1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition
MehrCS1005 Objektorientierte Programmierung
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Funktionen / statische Methoden - Definition - Verwendung - Ausführung Seite 1 Th Letschert Funktionen: Definition und Verwendung
MehrWenn... dann... if (condition) statement. if (kontostand < 0) System.out.println("Oops..."); false. condition. true. statement
Wenn... dann... if (condition) statement condition false true statement if (kontostand < 0) System.out.println("Oops..."); 31 ... sonst... if (condition) statement1 else statement2 condition false true
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
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
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
MehrErste Java-Programme (Scopes und Rekursion)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
MehrSoftware Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge
Mehr