Objektorientierung in Java Java-Kurs 2008 - LE 5.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Einführung in die Programmierung Ausführbare Klassen
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Kapselung , toString , equals , Java API
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Konstruktoren.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Polymorphie (Vielgestaltigkeit)
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Programmieren mit JAVA
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Einführung in die Programmierung Klassendefinition und Objekte
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Objektorientiertes Konstruieren
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Robuste Programme durch Ausnahmebehandlung
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Objektorientierte Programmierung (OOP)
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
Protokollieren, überwachen und verfolgen Vortrag zum Seminar „Aspektorientierte Programmierung“ von Andre Kaplick - 6. Juni 2016.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
1 Lehreinheit im Javakurs der Freitagsrunde SoSe2008 Technische Universität Berlin Mario Bodemann Björn Lohrmann Javakurs 2008 – LE06 „You’ve got questions.
, 1 / Javakurs 2012 – Objektorientierung Objektorientierte Programmierung I This work is licensed under the Creative Commons Attribution-ShareAlike 3.0.
Schwarz, Lubkoll : Javakurs LE Organisatorisches ● Wer sind wir? ● Was machen wir hier? ● Was haben wir davon? ● Was habt ihr davon?
, 1 / Javakurs 2011 – Objektorientierung Objektorientierte Programmierung I This work is licensed under the Creative Commons Attribution-ShareAlike 3.0.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Konstruktoren.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Vererbung.
„Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen.“
Zwei Denkansätze zur Klasse Schlange
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Einführung in die Programmierung mit Java
Grundkurs Informatik 11-13
Mit der Turtle Java Programmieren
Grundkurs Informatik mit Java
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Ein Referat von Sabrina Vissel, darleen paul und yannick fuchs
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein.
Implementieren von Klassen
Grundkurs Informatik 11-13
 Präsentation transkript:

Objektorientierung in Java Java-Kurs LE 5

2 Objektorientierung in Java Java-Kurs LE 5 Human robert = new Human katrin = new Human("Katrin",

/ 37 3 Picture by Friedemann Wulff-Woesten, robert.talk( „Wozu Objektorientierung?“ );

/ 37 4 Name Alter Haarfarbe Geschlecht robert.talk( „Objekte haben Attribute“ );

/ 37 5 Name Alter Haarfarbe Geschlecht Picture by Joe Huminiak, flickr.com robert.talk( „Objekte haben Attribute“ );

/ 37 6 Klasse Mensch Instanzen robert.talk( „Klasse vs. Instanz“ );

/ 37 7 class Human { String name; int age; } robert.talk( „Klassen definieren“ );

/ 37 8 class Human { String name; int age; static void main(){ Human robert= new Human(); } robert.talk( „Instanzen erzeugen“ );

/ 37 9 class Human { String name; int age; } ____________________________________________ Human robert= new Human(); robert.name= "Robert Lubkoll"; robert.age= 29; System.out.println("Name: " + robert.name); System.out.println("Age: " + robert.age); z.B. HumanTest.java Main-Methode Human.java robert.talk( „Zugriff auf Attribute“ );

/ robert.talk( „Compilieren mehrerer Klassen“ ); Human.java HumanTest.java Compilieren: javac Human.java HumanTest.java Ausführen: java HumanTest

/ Picture by Kevin Cole, flickr.com laufen laufen laufen robert.talk( „Methoden implementieren Verhalten“ );

/ class Human { String name; int age; void celebrateBirthday() { this.age= this.age + 1; if(this.age >=18){ //TODO: sex drugs and rock'n'roll } robert.talk( „Methoden in Klassen definieren“ );

/ Human katrin= new Human(); katrin.age= 30; katrin.celebrateBirthday(); System.out.println(„Age: “ + katrin.age); ___________________________________________ Ausgabe Age: 31 robert.talk( „Methoden einer Instanz aufrufen“ );

/ Ich (Instanz) bin ein Mensch (Klasse), ich habe Beine (Attribute), ich kann laufen (Methoden). robert.talk( „Eselsbrücke“ );

/ Picture by TedsBlog, flickr.com robert.talk( „Konstruktoren“ );

/ class Human { String name; int age; Human() { this.name= "unnamed"; this.age= 0; } Human robert= new Human(); robert.talk( „Standard-Konstruktor“ );

/ class Human { String name; int age; Human( String aName, int anAge ) { this.name= aName; this.age= anAge; } Human robert = new Human("Robert", 29); robert.talk( „Konstruktoren mit Parametern“ );

/ Picture by yousoundhollow, flickr.com robert.talk( „Vorsicht: Kollisionsgefahr!“ );

/ BAAAAD class Human { String name; int age; Human(String name){ name= name; age= 0; } Human(String aName){ this.name= aName; this.age= 0; } GOOOOD robert.talk( „Namespace“ );

/ Picture by pizzo, flickr.com katrin.talk( „Objekte haben eine Identität“ );

/ Human a = new Human(); Human b = a; a.age = a.age + 1; int a = 0; int b = a; a = a + 1; Ergebnis: a ist: 1 b ist: 0 Ergebnis: a.age ist: 1 b.age ist: 1 !!! katrin.talk( „Objekte sind... anders“ );

/ Referenz a Referenz b katrin.talk( „Referenzen“ );

/ Referenz a Referenz b katrin.talk( „Referenzen“ );

/ Referenz a Referenz b katrin.talk( „Referenzen“ );

/ katrin.talk( „NULL-Referenzen“ );

/ Exception in thread "main" java.lang.NullPointerException at Human.shakeHands(Human.java:20) at Human.main(Human.java:26) katrin.talk( „NULL-Referenzen“ );

/ Human nobody; nobody.celebrateBirthday(); Human nobody = null; nobody.celebrateBirthday(); Human somebody = new Human(); somebody.celebrateBirthday(); Human alsoSomebody = somebody; alsoSomebody.celebrateBirthday(); Compilerfehler ! Laufzeitfehler ! OKOK OKOK katrin.talk( „Variablen initialisieren!“ );

/ Picture by Helga Kopp (Helga_262), flickr.com katrin.talk( „Kapselung“ );

/ Human katrin= new Human(); katrin.age= 30; katrin.celebrateBirthday(); System.out.println(„Age: “ + katrin.age); ___________________________________________ Ausgabe Age: 31 katrin.talk( „direkter Variablenzugriff -“ );

/ Human katrin= new Human(); katrin.age= -2; katrin.celebrateBirthday(); System.out.println(„Age: “ + katrin.age); ___________________________________________ Ausgabe Age: -1 katrin.talk( „Kein Schutz vor undefiniertem Zustand!“ );

/ class Human { String name; int age; void setAge(int anAge) { if(anAge > 0){ this.age= anAge; } int getAge(){ return this.age; } katrin.talk( „Getter- und Setter-Methoden“ );

/ Daten katrin.talk( „Idee von Kapselung“ );

/ int age katrin.talk( „Flexibilität durch Kapselung“ );

/ Date birthdate katrin.talk( „Flexibilität durch Kapselung“ );

36 class Human { String name; int age; Human( String aName, int anAge ){ this.name= aName; this.age= anAge; } void celebrateBirthday() { this.age++; } static void main(String [] args) { Human robert = new Human(„Robert“, 29); robert.celebrateBirthday(); }

/ katrin.talk( „Conclusion“ );

38 Danke! Quellen: Piktogramme: IIT Bombay Fotos: