Objektorientierte Programmierung für Anfänger am Beispiel PHP



Ähnliche Dokumente
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Anleitung über den Umgang mit Schildern

Was meinen die Leute eigentlich mit: Grexit?

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

So erstellen Sie nützliche Beschreibungen zu Ihren Tradingdaten

Professionelle Seminare im Bereich MS-Office

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Das Persönliche Budget in verständlicher Sprache

Objektorientierte Programmierung OOP

Robot Karol für Delphi

Die Post hat eine Umfrage gemacht

Erklärung zu den Internet-Seiten von

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Der Kalender im ipad

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005

Einführung in die Java- Programmierung

Mediator 9 - Lernprogramm

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

YouTube: Video-Untertitel übersetzen

Tevalo Handbuch v 1.1 vom

Alle gehören dazu. Vorwort

COMPUTER MULTIMEDIA SERVICE

Arbeiten mit UMLed und Delphi

1. Was ihr in dieser Anleitung

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

Java: Vererbung. Teil 3: super()

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Leichte-Sprache-Bilder

SEMINAR Modifikation für die Nutzung des Community Builders

10.1 Auflösung, Drucken und Scannen

Es gilt das gesprochene Wort. Anrede

Vorkurs C++ Programmierung

Welchen Weg nimmt Ihr Vermögen. Unsere Leistung zu Ihrer Privaten Vermögensplanung. Wir machen aus Zahlen Werte

Internationales Altkatholisches Laienforum

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

- mit denen Sie Ihren Konfliktgegner in einen Lösungspartner verwandeln

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Änderung der Sicherheitseinstellungen von konten

Einführung in PHP. (mit Aufgaben)

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

Wie halte ich Ordnung auf meiner Festplatte?

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Reporting Services und SharePoint 2010 Teil 1

Log xmllog textlog Log() start(filename) add(message) end() instance() Abbildung 7-10: Die Protokollierungs-API mit einer einfachen Fassade

Zählen von Objekten einer bestimmten Klasse

ACDSee 10. ACDSee 10: Fotos gruppieren und schneller durchsuchen. Was ist Gruppieren? Fotos gruppieren. Das Inhaltsverzeichnis zum Gruppieren nutzen

Didaktisierungsvorschläge zum Kalender. Jugend in Deutschland UNTERRICHTSENTWURF Juli. Alles, was Spaß macht: HOBBY UND FREIZEIT

Wir arbeiten mit Zufallszahlen

Animationen erstellen

Ebenenmasken Grundlagen

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten

icloud nicht neu, aber doch irgendwie anders

1 Mathematische Grundlagen

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Online Newsletter III

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Jederzeit Ordnung halten

Woche 1: Was ist NLP? Die Geschichte des NLP.

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Der Gabelstapler: Wie? Was? Wer? Wo?

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Kleines Handbuch zur Fotogalerie der Pixel AG

50 Fragen, um Dir das Rauchen abzugewöhnen 1/6

Was ich als Bürgermeister für Lübbecke tun möchte

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

GEHEN SIE ZUR NÄCHSTEN SEITE.

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Statuten in leichter Sprache

Inhaltsverzeichnis. 1. Empfängerübersicht / Empfänger hinzufügen 2. Erstellen eines neuen Newsletters / Mailings 3. Versand eines Newsletters

Wir machen neue Politik für Baden-Württemberg

Auswertung des Fragebogens zum CO2-Fußabdruck

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Hohe Kontraste zwischen Himmel und Landschaft abmildern

iloq Privus Bedienungsanleitung Schließanlagen Programmierung Version 1 - Copyright 2013

Gutes Leben was ist das?

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Also heißt es einmal mehr, immer eine eigene Meinungen bilden, nicht beeinflussen lassen, niemals von anderen irgend eine Meinung aufdrängen lassen.

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

mit dem TeXnicCenter von Andreas Both

Allgemeiner Leitfaden zum Einfügen suchmaschinenoptimierter Texte

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Geld Verdienen im Internet leicht gemacht

4 Aufzählungen und Listen erstellen

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Fragen und Antworten

So funktioniert das online-bestellsystem GIMA-direkt

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Handbuch ECDL 2003 Basic Modul 3: Textverarbeitung Serienbrief erstellen - Datenquelle

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Die Bundes-Zentrale für politische Bildung stellt sich vor

Transkript:

Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012

Abstract Dieses Dokument soll die Vorteile der objektorientierten Programmierung erläutern und den Leser in die grundlegenden Begriffe und die Verwendung von Klassen, Objekten und Instanzen einführen. Es stellt keinesfalls eine komplette Beschreibung der OOP dar und erhebt auch nicht den Anspruch darauf. Vielmehr soll dieses Dokument nur zur Einführung in diese Methode des Programmierens dienen. 1

Inhaltsverzeichnis 1 Einleitung Immer wieder hört man von den vielen Vorteilen der objektorientierten Programmierung. Viele können jedoch damit nicht viel anfangen. Auch mir war anfangs nicht klar, wozu ich diesen Programmierstil verwenden soll. Doch wenn man die Struktur einmal erlernt hat, tun sich viele neue Möglichkeiten auf, so ist es auch möglich größere Projekte übersichtlich zu programmieren. Diese können so auch meist an andere zur Mitarbeit weitergegeben werden. In diesem Dokument möchte ich die Grundprinzipien der objektorientierten Programmierung, kurz OOP, anhand der Sprache PHP aufzeigen und in einfachen Beispielen verständlich machen. 2 Wozu OOP? Objektorientierung ist heute ein Grundprinzip der Programmierung ohne den niemand mehr auskommen sollt. Nur durch dessen Verwendung ist es möglich Programme, annähernd egal in welcher Sprache, zu strukturieren, sodass sie einfach verstanden werden können und auch bei längeren Texten übersichtlich bleiben. 2.1 Übersichtlichkeit Wohl jeder, der eine Programmiersprache erlernt beginnt mit einem Programm in der prozeduralen Schreibweise. Das heißt: Das Programm wird von oben nach unten durchgearbeitet und springt höchstens mit einem GOTO-Befehl an eine andere Stelle. Ein Beispiel für ein Programm in der prozeduralen Schreibweise, das die Zahlen von 1 bis 10 ausgibt: $counter = 0; start: $counter++; echo $counter; if($counter < 10){ goto start; 2

Dieses Beispiel ist noch ziemlich einfach zu verstehen, aber wenn das Programm länger wird, ist man fast chancenlos es zu verstehen, gerade wenn man es nicht selbst geschrieben hat. In der objektorientierten Schreibweise ist es meist ein Leichtes ein Programm zu verstehen, auch wenn man es nicht geschrieben hat: class Counter{ public function count($from, $to){ $output = ""; $counter = $from; while($counter <= $to){ $counter++; $output += $counter; return $output; $c = new Counter(); echo $c->count(1,10); Dies mag auf den ersten Blick komplizierter als das vorhergehende Beispiel aussehen, ist aber sehr viel einfacher zu verstehen, wenn sich einmal mit OOP auseinandergesetzt hat. 2.2 Einbindung in andere Dateien In einem echten Programm wird es jedoch so aussehen, dass nur die beiden letzten Zeilen im Hauptprogramm stehen. Die Definition wir einfach in eine Datei ausgelagert: include("counter.class.php"); $c = new Counter(); echo $c->count(1,10); Man muss sich bei dessen Benützung also gar nicht mit dem Inhalt auseinandersetzen, sondern kann einfach die Funktionen verwenden, die möglicherweise auch von einem anderen Programmierer erstellt worden sind. 3

3 Begriffe 3.1 Klasse Die Klasse beinhaltet eine oder mehrere Methoden, die das eigentliche Programm ausmachen. Eingeleitet wir sie mit dem Codewort class. class MeineKlasse{ // Methoden 3.2 Objekt Das Objekt ist eine Instanz einer Klasse. Es können mehrere Instanzen einer Klasse erzeugt werden, die dann jeweils wieder im Ausgangszustand bereitsteht. Eine Instanz erzeugt man so: $my = new MeineKlasse(); 4 Beispiel Auto An einfachsten ist alles noch immer mit einem Beispiel erklärt. Stellen Sie sich vor, Sie können mittels PHP Autos erzeugen. 4.1 Die Klasse Natürlich benötigen wir als Erstes eine Klasse Auto: class Auto{ private $farbe = ""; function Auto($meinefarbe){ $this->farbe = $meinefarbe; 4

public function zeigefarbe(){ return $this->farbe; Mittels $farbe = "rot"; definiert man innerhalb der Klasse eine Eigenschaft. Eine Eigenschaft verhält sich wie eine Variable, die jedoch durch das Codewort private nur innerhalb der Klasse angesprochen werden kann. Die Methode (Funktion) Auto ist ein sogenannter Konstruktor. Sie wird ausgrufen, wenn eine Instanz der Klasse erzeugt wird. Mittels eines Parameters im Konstruktor kann man eine Instanz mit einer anderen Eigenschaft erzeugen. In diesem Beispiel ein Auto mit der angegebenen Farbe. Mit $this->farbe = $meinefarbe; weißt man die Farbe der Eigenschaft $farbe zu. $this bezieht sich immer auf die aktuelle Klasse. Über die Funktion zeigefarbe wird die Farbe wieder zurückgegeben. Sie ruft die Eigenschaft $farbe ab ung gibt sie mittels return zurück. Durch das Codewort public ist diese Funktion auch von außerhalb der Klasse erreichbar. 4.2 Die Instanz(en) Um nun Autos zu erzeugen ist folgender Code notwendig: $rot = new Auto("rot"); $blau = new Auto("blau); echo $rot->zeigefarbe(); echo $blau->zeigefarbe(); Es werden dabei zwei Instanzen der Klasse Auto erzeugt. Ein Auto ist Rot, das andere Blau. Nun kann über die Funktion zeigefarbe die jeweiligen Farben ausgegeben werden. 5 Zusammenfassung Die objektorientierte Programmierung stellt eine erhebliche Verbesserung des Programmierstils dar. Die Verwendung mag am Anfang etwas mühsam und 5

sinnlos erscheinen, aber beim ersten großen Projekt ist man über die klare Strukturierung des Programmes froh. Darum ist zu empfehlen, dass bereits bei kleinen Programmen die Objektorientierung verwendet wird, um einen späteren Ausbau der Funktionen zu ermöglichen. Ich hoffe ich habe Ihnen mit diesem Dokument die Möglichkeiten und Vorteile der OOP etwas näher gebracht. 6

6 Weiterführende Link Erklärung von OOP bei Wikibooks: http://de.wikibooks.org/wiki/websiteentwicklung:_php:_oop Erklärung von Peter Kropff: http://www.peterkropff.de/site/php/oop.htm 7