Klassendiagramm Personen

Schwarzwild80

Grünschnabel
Hallo werte PHP-Experten,

mein Studium der PHP Datenentwicklung schreitet gut voran. Dennoch benötige ich bitte bei folgender Aufgabe Eure Unterstützung.

Folgende Aufgabenstellung:
1679914814291.png
a) Codieren Sie die abgebildeten Klassen und deren Beziehungen mit PHP. Codieren Sie – sofern im Klassendiagramm angegeben – Konstruktoren sowie Getter- und Setter-Methoden. Achten Sie bitte darauf, dass Sie nur das codieren, was im Diagramm angegeben ist. Berücksichtigen Sie durchgängig starke Typisierung.

b) Erzeugen Sie von jeder Klasse eine Instanz und geben Sie sie mit var_dump() aus. Das Ergebnis sollte im Seitenquelltext aussehen wie auf der folgenden Abbildung.

Folgende Fehlermeldung erscheint:

Parse error: syntax error, unexpected '$objekt2' (T_VARIABLE), expecting function (T_FUNCTION) in /var/www/clients/client3/web5/web/benedikt/Klasse1a.php on line 19

Hier der "Klassen-Code":

PHP:
<title>Einsendeaufgabe 1 -Klassendiagramm umsetzen</title>
<?php
    include_once("personclass.php");
?>
</head>
<body>

<?php
class Mitarbeiter extends Person
{
 private $gruppierung=0;
 private $steuerklasse=0;
 private $kontonummer="String";

$objekt1=new Mitarbeiter($steuerklasse=1);
var_dump($objekt1);
}

class Kunde extends Person
{
 private $bonitaet=0;

 public function setBonitaet($boni)
 {
  $this->bonitaet=$boni;
 }

 public function getBonitaet()
 {
  return $this->bonitaet;
 }

$objek1=new Kunde($Bonitaet=100);
var_dump($objekt1);
}
?>
</body>
</html>



Hier die Personen Klassen:
PHP:
<?php

class Person
{
 protected $name="String";
 protected $vorname="String";

 public function __construct($nName="string", $vName="string")
 {
 $this->name=$nName;
 $this->vorname=$vName;
 }

 public function setName($nName)
 {
  $this->name=$nName;
 }

 public function getName()
 {
  return $this->name;
 }

 public function setVorname($vName)
 {
  $this->vorname=$vName;
 }

 public function getVorname()
 {
  return $this->vorname;
 }

$objekt1=new Person(Meier,Hans);
var_dump($objekt1);
}
?>



Könnt Ihr mir hier bitte weiterhelfen?

Vielen Dank im Voraus.
Gruß
Schwarzwild80
 
Zuletzt bearbeitet:
Zur Fehlermeldung: in PHP benötigen Klassen-Member einen "Visibility"-Qualifier (Private, Protected, Public)

Was ich aber eher seltsam finde:
1) Wieso willst du Instanzen innerhalb der Klasse( n) erzeugen??
2) Da "Mitarbeiter" und "Kunde" eine "Erweiterung" von "Person" sind, wundert mich dein Konstruktor-Aufruf
Für Mitarbeiter und Kunde müsste doch der Konstruktor-Aufruf derselbe sein wie für Person, oder?
3) In Person:
PHP:
$objekt1=new Person(Meier,Hans);
Meier und Hans sind keine Strings.....
 
Zur Fehlermeldung: in PHP benötigen Klassen-Member einen "Visibility"-Qualifier (Private, Protected, Public)

Was ich aber eher seltsam finde:
1) Wieso willst du Instanzen innerhalb der Klasse( n) erzeugen??
2) Da "Mitarbeiter" und "Kunde" eine "Erweiterung" von "Person" sind, wundert mich dein Konstruktor-Aufruf
Für Mitarbeiter und Kunde müsste doch der Konstruktor-Aufruf derselbe sein wie für Person, oder?
3) In Person:
PHP:
$objekt1=new Person(Meier,Hans);
Meier und Hans sind keine Strings.....
Moin Zvoni,
zu 1) Es ist eine Vorgabe in der Aufgabe.
zu 2) hab jetzt alles auf objekt1 geändert.

Fehlermeldung besteht immer noch.

Kann mir hier jmd. von Euch einen Denkanstoß geben?
Dank Euch.
Gruß
 
Die Initialisierung mit "String" ist Blödsinn, denn per Default heißt deine Person String String
Ein Objekt einer Klasse in der selbigen Klasse zu erzeugen ist ebenfalls Blödsinn. Diese Zeilen
PHP:
$objek1=new Kunde($Bonitaet=100);
var_dump($objekt1);
und
PHP:
$objekt1=new Person(Meier,Hans);
var_dump($objekt1);
müssen außerhalb der Klassedefinitionen stehen. Wobei $Bonitaet=100 und Meier,Hans auch falsch ist.
 
Die Initialisierung mit "String" ist Blödsinn, denn per Default heißt deine Person String String
Ein Objekt einer Klasse in der selbigen Klasse zu erzeugen ist ebenfalls Blödsinn. Diese Zeilen
PHP:
$objek1=new Kunde($Bonitaet=100);
var_dump($objekt1);
und
PHP:
$objekt1=new Person(Meier,Hans);
var_dump($objekt1);
müssen außerhalb der Klassedefinitionen stehen. Wobei $Bonitaet=100 und Meier,Hans auch falsch ist.
Hallo bdt600,

danke für den Input. Jetzt passt es.

Seit Ihr an der Lösung interessiert?

Gruß
Schwarzwild80
 

Neue Beiträge

Zurück