WebTec PHP 3
Messer Klausurfragen Objektorientiert
Messer Klausurfragen Objektorientiert
Fichier Détails
Cartes-fiches | 20 |
---|---|
Langue | Deutsch |
Catégorie | Informatique |
Niveau | Université |
Crée / Actualisé | 24.03.2018 / 24.03.2018 |
Lien de web |
https://card2brain.ch/box/20180324_webtec_php_3
|
Intégrer |
<iframe src="https://card2brain.ch/box/20180324_webtec_php_3/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
1. In PHP lassen sich Klassen definieren. Wie sieht der syntaktische Aufbau einer Klassendefinition aus? Skizzieren Sie das Prinzip.
[abstract] class Name [Inheritance] {
[Variablen-Deklarationen]
[Funktion-Deklarationen]
}
2. Wodurch können Sie in PHP Instanzen von Klassen erzeugen? Machen Sie ein sinnvolles Beispiel.
$Objektname= new Klassenname();
$auto1 = new Auto();
3. In PHP gibt es besondere Methoden, deren Namen mit "__" anfangen. Nennen Sie eine, die bei der Objekterzeugung eine wichtige Rolle spielt und erläutern Sie, was diese tut.
__construct, diese Funktion wird impliziert beim new() aufgerufen. Sie erzeugt ein neues Objekt vom zu initialisierten Klass.
4. Sie weisen aus Versehen einem nicht in einer Klasse definierten Attribut eines Objektes einen Wert zu. Was passiert?
Für dieses Objekt wird diese Attribute neu gelegt. Bei PHP kann man zur Laufzeit eine Attribute hinzufügen.
5. Lassen sich in PHP Methoden wie in Java überladen? Was wird unter Überladen verstanden - im Gegensatz zum Überschreiben? Falls nicht, warum? (KLAUSUR!)
Nein in PHP kann man Methoden nicht überladen, weil der Mechanismus nicht vorhanden ist. Überladen bedeutet, dass zwei oder mehrere Methoden mit einem gleichen Namen sein könnten, aber jeder davon kann verschiedene übergebene Variablen bekommen.
6. Was wird unter einem flachen und was unter einem tiefen Klonen verstanden?
Flaches Klonen = Kopieren der Werte und Referenzen nur der Wurzel eines Objekt-Geflechtes Tiefes Klonen = Kopieren des gesamten Objekt-Geflechtes
7. Ein Objekt wird in PHP ab Version 5 als Parameter an eine Funktion übergeben. Wird das Objekt kopiert oder wird dessen Adresse übergeben?
Ist das in Java auch so oder anders? Wenn ein Objekt übergeben wird, wird nur seine Adresse übergeben und nicht das Objekt selbst. Bei Java ist es auch genauso. (Strings und Arrays werden in PHP kopiert und nicht übergeben wie in Java).
8. Es wird in PHP ab Version 5 einer Funktion ein Array als Parameter übergeben. Wird dieses Array dazu kopiert oder wird dessen Adresse übergeben? Ist das in Java auch so oder anders?
Siehe 7 – ein Array wird kopiert. Nein, in Java wird nur seine Adresse übergeben.
9. Was wird in PHP schon vor Version 7 unter "type hints" bei der Verwendung von Klassen verstanden? Was lässt sich damit erreichen?
Mit Hilfe von „Type hints“ kann man die Objekttypen für übergebene Variable einschränken. Bis Version 7 könnte man nur Typen von Objekte beschränken und keine primitiven Datentypen z.B String, Array…
10.Was bedeutet Reflexion? Nennen Sie mind. 3 Beispiele für Routinen, mit denen Sie in PHP reflektieren können.
Reflexion in PHP sind ein Set von Routinen, mit denen man die Eigenschaften des Objektes sehen kann.
Beispiele: get_class()
Get_class_mehtods()
GetParentClass()
11.Wie sieht in PHP ein Interface aus? Machen Sie dazu ein Beispiel.
interface File {
public function read();
public function write();
public function open();
}
12.Wozu dienen Interfaces? Was wird getan, wenn "gegen ein Interface" programmiert wird?
Interfaces können wie einen Vertrag ausgesehen werden. Dieser ermöglicht die parallele Arbeit mehrerer Programmierer auf einem Code, weil jeder weiß, welche Methoden er implementieren soll uns welche ihm zur Verfügung stehen. Diese Vorgehensweise erhöht auch die Wiederverwendbarkeit des Codes. Wenn gegen ein Interface programmiert wird, wird das Interface implementiert und alle Methoden, die dort existieren, werden auch genommen, denn kann der Programmierer entscheiden, welche Methoden er implementiert.
13.Wie werden in PHP abstrakte Klassen deklariert? Und wie werden sie benutzt?
abstract class File {
abstract public function read();
abstract public function write();
abstract public function open();
}
Abstrakte Klassen werden hauptsächlich für Vererbung benutzt. Sie können auch benutzt werden, um sicher zu stellen, dass von einer Klasse keine Objekte erzeugen werden.
14.Wann wird in PHP mit einem "::" und wann mit einem "->" auf Elemente von Klassen zugegriffen? Erläutern Sie eine dazu gehörende allgemeine Merkregel.
:: - constante oder static, die Zuordnung existiert vor der Laufzeit
-> - was mit new() erzeugt wird, während der Laufzeit.
15.Wann wird "this" und wann wird "self" innerhalb von Funktionen in Klassen benutzt?
Mit this kann auf Objekte zugegriffen werden und mit self auf Konstante und Static Attributen.
16.Was bedeutet das Schlüsselwort final vor einem Attribut oder Methode einer PHP-Klasse?
Durch das Schlüsselwort final vor einer Klasse, Methode oder einem Attribut lässt sich ein Überschreiben durch Vererbung verhindern. final angewendet auf Attribute führt zu Konstanten innerhalb von Klassen und sollte auch so angewendet werden.
17.In welchen Fällen ist die magische Methode __clone() erforderlich? Was wird in dieser dann implementiert?
Die _clone Methode ist erforderlich in der Fall, wenn man ein Objekt clonen möchte und auch Attribute-Objekte clonen möchte. Was in Konstruktor steht soll mit dem Schlusselwort clone auch in der _Clone Methode stehen.
18.Was wird unter einer Wrapper-Klasse (Hüllklasse) verstanden? Wann sollten diese Klassen realisiert und benutzt werden?
Hüllklassen realisieren die Implementierung eines allgemeinen Interfaces
– z.B SQL DB und die Hüllklassen Oracle oder MySQL.
19.Was leisten Fabrik-Klassen? Wann sind sie sinnvoll? Fabrik-klassen dient dazu, den Aufbau eines oder mehre Objekte.
Sie sind sinnvoll, wenn ein Bau eins Objekts verdeckt werden soll oder wenn es mehrere Objekte gibt, die sich von einander nur per Konfiguration unterscheiden.
20.Müssen Fabrik- und Wrapper-Klassen gemeinsam benutzt werden?
Nein