Einführung in die Programmierung und Objektorientierung – Anwendungsentwickler-Podcast #142

Eine Einführung in die wichtigsten Begriffe rund um Programmierung und Objektorientierung gibt es in der einhundertzweiundvierzigsten Episode des Anwendungsentwickler-Podcasts.

Probeabo bei Audible (Affiliate)

Inhalt

Compiler und IDE

  • Was ist ein Compiler?
    • Ein Compiler übersetzt Sourcecode (z.B. for (int i: numbers)), den ein Mensch schreibt, in Maschinencode (z.B: 00011010 00011010), den ein Computer ausführen kann.
    • Dafür muss der Sourcecode absolut fehlerfrei sein, sonst gibt es Compiler-Fehler.
    • Die einzuhaltenden Regeln werden durch die Syntax der Programmiersprache bestimmt. Zur Syntax gehören Rechtschreibung, Interpunktion und Grammatik.
  • Was ist eine IDE?
    • Eine Integrated Development Environment (integrierte Entwicklungsumgebung) ist eine Software, mit der andere Software entwickelt wird. Sie enthält meist einen Editor und den Compiler.

Objekte und Klassen

  • Was ist ein Objekt?
    • Ein Objekt ist ein Ding der realen Welt mit Eigenschaften und Funktionen, z.B. ein Auto mit Eigenschaft Farbe und Funktion fahren.
    • Ein Objekt ist immer nur ein Modell der Realität, das sich je nach Einsatzzweck unterscheiden kann. Beim Auto interessiert sich die Tankstellenanwendung vielleicht nur für das Kennzeichen und die Größe des Tanks, während eine Werkstatt sich für den Kilometerstand und den Hersteller interessiert.
  • Was ist eine Klasse?
    • Eine Klasse ist ein Bauplan für Objekte, in dem festgelegt wird, welche Eigenschaften und Funktionen alle (!) Objekte dieser Klasse haben müssen.
    • Aus einer Klasse können dann mehrere Objekte erzeugt werden, die alle die gleichen Eigenschaften und Funktionen haben, die sich jedoch in den Werten ihrer Eigenschaften unterscheiden können.
    • Beispiel: Die Klasse Auto definiert die Eigenschaft Farbe und die Funktion fahren. Aus dieser Klasse können zwei Objekte erstellt werden, von denen eins den Wert blau für die Farbe hat und das andere den Wert rot.
    • Außerdem kann noch ein weiteres Auto erstellt werden, das ebenfalls blau ist, mit dem anderen blauen Auto aber nichts zu tun hat. Genau wie in der Realität kann es „baugleiche“ Autos geben, die trotzdem individuelle Einzelstücke sind.

Datentypen und Variablen

  • Was ist ein Datentyp?
    • Ein Datentyp legt fest (und der Compiler prüft):
      • Art der Daten (z.B. Zahlen, Zeichenfolgen, Wahrheitswerte)
      • Länge der Daten (z.B. 32 Bit für Zahlen)
      • Erlaubte Operationen auf den Daten (z.B. Addition für Zahlen oder Konkatenation für Zeichenketten)
      • Nicht erlaubt wären:
        • Ganzzahl a = "Hallo"; ("Hallo" ist keine Ganzzahl)
        • Byte b = 32321; (32321 ist zu groß für ein Byte)
        • true + false (Wahrheitswerte können nicht addiert werden)
    • Verbreitete Datentypen, die es in vielen Programmiersprachen gibt:
      • Integer: Ganzzahlen (meist 32 Bit lang)
      • Double: Gleitkommazahlen
      • String: alphanumerische Zeichenketten
      • Boolean: Wahrheitswerte (true und false)
    • Man kann auch eigene Datentypen definieren. Das wären dann die Klassen, die eine beliebige Kombination aus anderen Datentypen als Attribute enthalten können.
  • Was ist eine Variable?
    • Eine Variable ist ein benannter Speicherbereich, der in einem Programm für die Verarbeitung verwendet werden kann, damit man nicht mit kryptischen Speicheradressen wie 0xA042BC2 arbeiten muss.
    • Variablen haben einen Datentyp und einen Bezeichner, z.B. Integer alterDerPerson (in Java).
    • Der Wert einer Variablen kann während der Programmlaufzeit verändert werden.

Ausdrücke, Operationen und Anweisungen

  • Was ist ein Ausdruck (oder eine Expression)?
    • Ein Ausdruck führt bei der Auswertung zu einem Resultat.
    • Beispiele: 1 + 2 (-> 3), (43.2 + 2) * 3 (-> 135.6), "Hallo" + "Welt" (-> "HalloWelt")
  • Was sind Operatoren und Operanden?
    • Operanden sind die Werte, die verarbeitet werden sollen.
    • Operatoren verknüpfen die Operanden zu Ausdrücken. Sie bilden z.B. die arithmetischen Operationen (Addition, Multiplikation usw.) ab.
    • Je nach Typ hat ein Operator einen (unär), zwei (binär) oder drei (ternär) Operanden.
    • 1 + 2 -> 1 und 2 sind die Operanden, die mit dem Operator + (Addition) zum Ausdruck verknüpft werden, dessen Resultat 3 ist.
    • Beispiele für arithmetische Operatoren: +, -, *, /, %
  • Was ist eine Anweisung (oder ein Statement)?
    • In der imperativen Programmierung formulieren wir unsere Programme in Form von Anweisungen oder Befehlen, die der Computer ausführen soll.
    • Beispiele: Wertzuweisungen zu Variablen, Ausgaben, if, for
    • Anweisungen müssen mit Semikolons abgeschlossen werden (in Java).
  • Was ist ein Algorithmus?
    • Ein Algorithmus ist eine Beschreibung zur Lösung eines Problems.
    • Beispiel: Rezept zum Backen eines Apfelkuchens. Löst das Problem eines fehlenden Apfelkuchens! 😉
    • Algorithmen können beliebig oft wiederholt werden und sollten immer zu einem vorhersagbaren Ergebnis führen (z.B. einem leckeren Apfelkuchen).
    • Algorithmen bestehen aus drei grundlegenden Strukturen:
      • Sequenz: Eine Folge von Anweisungen, die der Reihe nach abgearbeitet werden.
        • Beispiel: schaeleApfel; zerkleinereApfel; legeApfelAufTeig;
      • Verzweigung: Eine Fallunterscheidung, bei der abhängig von einer Prüfung unterschiedliche Anweisungen ausgeführt werden.
        • Beispiel: if (schokostreuselGewuenscht) { fuegeSchokostreuselHinzu; }
      • Wiederholung: Das mehrfache Ausführen der gleichen Anweisung(en).
        • Beispiel: for (Apfel a: aepfel) { schaeleApfel(a); }

Blöcke und Methoden

  • Was ist ein Block?
    • Ein Block fasst eine Gruppe aus Anweisungen zusammen und ergibt damit eine neue Anweisung.
    • Ein Block kann grundsätzlich überall verwendet werden, wo auch eine Anweisung erlaubt ist.
    • Ein Block wird an einigen Stellen erwartet, z.B. um den Rumpf einer Schleife oder Verzweigung zu definieren.
    • Blöcke werden in vielen Programmiersprachen in geschweifte Klammern ({}) eingeschlossen.
  • Was ist eine Methode?
    • Eine Methode ist ein wiederverwendbarer, benannter Algorithmus.
    • Der Kopf einer Methode besteht aus: Rückgabewert, Name, Parametern.
    • Der Rückgabewert ist der Datentyp, den die Methode als ihr Ergebnis liefert.
    • Die Parameter sind mehrere Variablen (Datentyp + Name), mit denen die Methode arbeitet. Sie werden vom Aufrufer in die Methode hineingegeben.
    • Der Rumpf enthält die Implementierung als Folge von Anweisungen in einem Block.
    • Die konkreten Werte, die der Aufrufer für die Parameter übergibt (z.B. 5 für den Parameter zahl), heißen Argumente.
    • Nicht jede Methode muss einen Werte zurückgeben, es gibt daher auch void als Pseudo-Rückgabewert.

Literaturempfehlungen

Eine gute Einleitung in die obigen Themen gibt es in Java ist auch eine Insel von Christian Ullenboom*.

Christian Ullenboom - Java ist auch eine Insel (Affiliate)*

Links

Probeabo bei Audible (Affiliate)

Polyglot Clean Code Developer
About the Author
Ausbildungsleiter für Fachinformatiker Anwendungsentwicklung und Systemintegration, IHK-Prüfer und Hochschuldozent für Programmierung und Software-Engineering.

3 comments on “Einführung in die Programmierung und Objektorientierung – Anwendungsentwickler-Podcast #142

  1. Marcel sagt:

    Bei den Apfelkuchen hab ich direkt Hunger bekommen. SG aus der Praxis 🙂

  2. Stefan Macke sagt:

    Hehe 🙂 Das hatte ich zwar nicht beabsichtigt, aber schön, dass ich dich so erreichen konnte!

  3. Sally sagt:

    War super, dankeschön! 😀

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax