📄 delphi03.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Delphi und OOP</title>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<meta name="Author" content="Mirko Pabst">
<meta name="Classification" content="Education, Bildung">
<meta name="Description" content="Delphi und OOP - Grundkurs Informatik am Lessing-Gymnasium Plauen">
<meta name="KeyWords" content="Delphi, OOP, Objekt, objektorientiert, Klassen, Vererbung, Eigenschaften, Methoden, Ereignisse, Grundkurs, Mirko, Pabst, Programmierung, Lessing, Unterricht, Schule">
</head>
<body TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" BACKGROUND="acrop_bk.gif">
<table CELLSPACING="0" CELLPADDING="0">
<tr>
<td valign="top" width="159"><img SRC="athena.gif" ALT="athena.gif (7242 Byte)" WIDTH="157" HEIGHT="140"></td>
<td><div align="center"><center><table BORDER="1" BGCOLOR="#C0C0C0">
<tr>
<td ALIGN="LEFT" BGCOLOR="#EEEEEE"><img SRC="top.gif" WIDTH="593" HEIGHT="17"><br>
<font SIZE="+2" COLOR="#FF0000"><b> 3. Delphi und OOP</b></font></td>
</tr>
<tr>
<td ALIGN="center" BGCOLOR="#EEEEEE" valign="middle"><a HREF="index.htm"><img SRC="i.gif" BORDER="0" WIDTH="73" HEIGHT="25"></a> <a HREF="delphi02.htm"><img SRC="l.gif" BORDER="0" HEIGHT="24" WIDTH="25"></a> <a HREF="dpue010.htm"><img SRC="r.gif" BORDER="0" WIDTH="25" HEIGHT="25"></a></td>
</tr>
<tr>
<td BGCOLOR="#EEEEEE"> <a HREF="#3.1.">3.1. Vorbemerkungen<br>
</a> <a HREF="#3.2.">3.2. Klassen, Instanzen und Vererbung<br>
</a> <a HREF="#3.3.">3.3. Objekteigenschaften, Ereignisse und Methoden</a></td>
</tr>
</table>
</center></div></td>
</tr>
</table>
<h2><a HREF="#3.2."><img SRC="ru.gif" BORDER="0" ALIGN="TEXTTOP" WIDTH="25" HEIGHT="25"></a><font COLOR="#FF0000"> <a NAME="3.1."></a>3.1. Vorbemerkungen</font></h2>
<blockquote>
<p>Die Komponentenstruktur von Delphi folgt weitgehend dem Konzept der Objektorientierten
Programmierung (OOP). Eine umfassende Vermittlung der Begriffswelt, der Strukturen und
Denkweisen der OOP w黵de den Rahmen eines Programmiergrundkurses beim derzeitigen
Vorkenntnisstand der Sch黮er bei weitem sprengen und auch von den Intentionen des
gegenw鋜tigen Lehrplanes wegf黨ren.</p>
<p>Zum Einsteig in die visuelle Programmierung wird zun鋍hst auch kaum das Ziel vorhanden
sein, eigene Komponenten zu programmieren; vielmehr wird die zielgerichtete <strong>Nutzung,
Kombination und Modifikation <u>vorhandener</u> Komponenten, gepaart mit einfachen
Probleml鰏ungsalgorithmen</strong> im Mittelpunkt des Interesses stehen. Einen Gro遲eil
der Arbeit mit den Objekten, z.B. Klassendefinition und Instanzendeklaration, erledigt das
Programmiersystem ohnehin automatisch im Hintergrund, w鋒rend der Programmierende im
Vordergrund per Mausklick sein Formular zusammenbastelt.</p>
<p>Aus diesem Grunde soll hier lediglich der Versuch stehen, mittels didaktischer
Reduktion zu einer eher intuitiven, jedoch ausbauf鋒igen Sichtweise auf die OOP zu
gelangen.</p>
<p>Als Voraussetzung wird an dieser Stelle angenommen, dass die Sch黮er bereits einige
praktische Erfahrungen beim visuellen Programmieren gesammelt haben, Komponenten
ausw鋒len, platzieren und bestimmte Eigenschaften sowohl zur Entwurfszeit als auch zur
Laufzeit des Programms zielgerichtet 鋘dern k鰊nen.</p>
</blockquote>
<hr>
<p><a HREF="#Anfang"><img SRC="ho.gif" BORDER="0" WIDTH="25" HEIGHT="24"> <font SIZE="-1">Seitenanfang</font></a></p>
<h2><a HREF="#3.3."><img SRC="ru.gif" BORDER="0" ALIGN="TEXTTOP" WIDTH="25" HEIGHT="25"></a><font COLOR="#FF0000"> <a NAME="3.2."></a>3.2. Klassen, Instanzen und Vererbung</font></h2>
<blockquote>
<p><font SIZE="+1" COLOR="#004000"><b>a) Begriffserkl鋜ungen</b></font></p>
<blockquote>
<table BORDER="1" CELLPADDING="5">
<tr>
<td valign="top" bgcolor="#D0FFFF"><b>Klasse:<br>
</b>(Objekttyp)</td>
<td valign="top" bgcolor="#FFFFD0">Aus einer Menge gleichartiger Objekte lassen sich deren
typische Merkmale ableiten und daraus Vorschriften f黵 die Bildung neuer Objekte
formulieren. <br>
Eine solche Vorschrift wird in der OOP als Definition einer Klasse (eines Objekttyps)
bezeichnet.<br>
Hierbei werden Eigenschaften des Objekts (Erscheinungsbild, Datenfelder) sowie Methoden
(Aktionen, die das Objekt ausf黨ren kann) beschrieben.</td>
</tr>
<tr>
<td valign="top" bgcolor="#D0FFFF"><b>Instanz:<br>
</b>(Objekt)</td>
<td valign="top" bgcolor="#FFFFD0">... ist die auf Grundlage einer Klassendefinition
erzeugte Struktur. Im Programm wird eine Instanz (ein Objekt) durch Deklaration
einer Variablen eines bestimmten Objekttyps (einer Klasse) erzeugt.</td>
</tr>
<tr>
<td valign="top" bgcolor="#D0FFFF"><b>Vererbung:</b></td>
<td valign="top" bgcolor="#FFFFD0">Objekte (Nachkommen) k鰊nen andere Objekte (Vorfahren)
beerben und erhalten dadurch deren Eigenschaften und Methoden. Die Eigenschaften und
Methoden k鰊nen dabei erg鋘zt und/oder ver鋘dert werden.</td>
</tr>
</table>
</blockquote>
</blockquote>
<blockquote>
<p><b><font COLOR="#004000"> <br>
<font SIZE="+1">b) Verdeutlichung durch Beispiele</font></font></b></p>
<blockquote>
<table BORDER="1" CELLPADDING="5">
<tr>
<td bgcolor="#FFFFD0"><img SRC="form1.jpg" ALT="form1.jpg (28001 Byte)" HSPACE="4" ALIGN="LEFT" WIDTH="470" HEIGHT="166">In der Abbildung sehen wir links ein leeres Formularobjekt, wie es vom
Delphi-System automatisch erzeugt wird. In seinem Erscheinungsbild und seiner
Funktionalit鋞 sind bereits die typischen Merkmale eines Windows-Fensters enthalten. <p>In
der zugeh鰎igen Unit ist unter type die Klasse TForm1 definiert, welche alle Merkmale
ihres Vorfahren vom Typ TForm erbt.</p>
<p>Unter var wird anschlie遝nd ein Objekt (eine Instanz) des Objekttyps (der Klasse)
TForm1 deklariert. </p>
<p>Das somit erzeugte Objekt verf黦t jedoch gegen黚er seinem Vorfahren 黚er keinerlei
neue Eigenschaften oder Methoden. </td>
</tr>
<tr>
<td bgcolor="#FFFFD0"><img SRC="form2.jpg" ALT="form2.jpg (40862 Byte)" WIDTH="671" HEIGHT="206"> <p>Aus der
Komponentenpalette wurden per Mausklick in das Formular 2 ein Edit-Feld und ein Button
platziert. Au遝rdem wurde 黚er den Objektinspektor eine Referenz f黵 das Ereignis
Button1Click geschaffen - Voraussetzung daf黵, dass das Formularobjekt zur Laufzeit des
Programms auf das Anklicken des Buttons reagieren kann. </p>
<p>Die entsprechende Klassendefinition des Objekttyps sagt aus, dass TForm2 alle Merkmale
von TForm (Windows-Fenster) erbt und diese durch Einbindung der Komponenten Edit1 und
Button1 erg鋘zt werden. (Dabei erbt Edit1 wiederum alle Eigenschaften des vordefinierten
Objekttyps TEdit und Button1 diejenigen von TButton.) <br>
Als neue Methode enth鋖t TForm2 die Ereignisbehandlungsroutine Button1Click, deren
Anweisungsfolge weiter unten im Implementationsteil zu programmieren ist.</p>
<p>Schlie遧ich wird wieder unter var ein Objekt (eine Instanz) namens Form2 des
Objekttyps (der Klasse) TForm2 deklariert. </td>
</tr>
</table>
</blockquote>
</blockquote>
<p><a HREF="#Anfang"><img SRC="ho.gif" BORDER="0" WIDTH="25" HEIGHT="24"> <font SIZE="-1">Seitenanfang</font></a></p>
<h2><a NAME="1.1."></a><a HREF="#Ende"><img SRC="ru.gif" BORDER="0" ALIGN="TEXTTOP" WIDTH="25" HEIGHT="25"></a><font COLOR="#FF0000"> <a NAME="3.3."></a>3.3. Objekteigenschaften, Ereignisse und
Methoden</font></h2>
<blockquote>
<p><font SIZE="+1" COLOR="#004000"><b>a) Kernaussagen:</b></font></p>
<blockquote>
<table BORDER="1" CELLPADDING="5">
<tr>
<td bgcolor="#FFFFD0"><ol>
<li><font SIZE="+0" COLOR="#0000FF">Delphi folgt mit seinem Konzept weitgehend dem Prinzip
der objektorientierten Programmierung, wobei viele <b>Objekte</b> in ihrer Grundform
bereits als <b>Komponenten</b> vorgegeben sind.<br>
</font></li>
<li><font SIZE="+0" COLOR="#0000FF"><b>Objekte</b> (Komponenten) besitzen bestimmte
voreingestellte <b>Eigenschaften</b>, die zur Entwurfszeit oder zur Laufzeit des Programms
ge鋘dert werden k鰊nen.<br>
</font></li>
<li><font SIZE="+0" COLOR="#0000FF"><b>Methoden</b> stellen die F鋒igkeit von <b>Objekten</b>
dar, auf bestimmte <b>Ereignisse</b> zu reagieren (Ereignisbehandlungsroutinen).<br>
</font></li>
<li><font SIZE="+0" COLOR="#0000FF">L鰏t zur Laufzeit eines Programms ein <b>Ereignis</b>
eine <b>Methode</b> aus, so ver鋘dert diese zielgerichtet bestimmte <b>Eigenschaften</b>
von <b>Objekten</b>.</font></li>
</ol>
</td>
</tr>
</table>
</blockquote>
<p> </p>
<p><font SIZE="+1" COLOR="#004000"><b>b) Verdeutlichung an einem Beispiel:</b></font></p>
<blockquote>
<p><font SIZE="+0">Das Formularobjekt "Form1" enthalte die Komponenten Button1
und Edit1. <br>
Tritt das Button-Click-Ereignis ein, soll die Eigenschaft Text von Edit1 neu belegt
werden.</font></p>
<table BORDER="1">
<tr>
<td><img SRC="oop1.jpg" ALT="oop1.jpg (32073 Byte)" WIDTH="600" HEIGHT="278"></td>
</tr>
</table>
</blockquote>
<p> </p>
</blockquote>
<p align="center"><a NAME="Ende"></a><a HREF="#Anfang"><img SRC="ho.gif" BORDER="0" WIDTH="25" HEIGHT="24"></a> <a HREF="index.htm"><img SRC="i.gif" BORDER="0" WIDTH="73" HEIGHT="25"></a> <a HREF="dpue010.htm"><img SRC="r.gif" BORDER="0" WIDTH="25" HEIGHT="25"></a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -