Ejercicio clases

Vamos a crear una clase Alumno con las propiedades Nombre y Nota. En el constructor pedimos el nombre. La nota no puede ser menor que 1 ni mayor que 10, menos al inicio que vale 0 (su valor por defecto).

En el toString mostramos el nombre y la nota sólo si es distinto de 0.

Si queremos obtener la nota antes de ponerla nos debe saltar una excepción.

Sobreescrimos el Equals y el operador == y != que nos devolverá cierto si el nombre es el mismo independientemente de la nota.

Crearemos también una clase Aula que tiene un nombre y una capacidad. Almacena un array de alumnos con tamaño máximo de esa capacidad. Nombre y capacidad se piden en el constructor. En el constructor se creará el array con el tamaño que nos pongan.

Creamos un método AddAlumno que nos añade el alumno que nos pasan al array.

Sobrecargamos el método para que pasándole una cadena son cree un alumno y lo añada al array.

Se añaden en la primera posición libre que haya.

Si ya hay un alumno con ese nombre se lanza una excepción.

Si el aula ya está llena se lanza una excepción.

Creamos un método OutAlumno que pasándole un string nos elimina el alumno que se llame así. Si el alumno no está no elimina nada.

Creamos un método Destroy que nos elimina todos los alumnos de la clase.

Creamos un método Contains que pasándole un String nos devuelve true si hay un alumno con ese nombre.

Creamos un método Puntua al que se le pasa el nombre de un alumno y su nota. Si el alumno no existe no hace nada.

Método Media que nos devuelve la media de notas de la clase de los Alumnos que tengan nota.

 

 

Ejemplo clases

<?php
        //Enter your code here, enjoy!
class empleado {
    public $sueldo;
    private $nombre;
function paga(){
return $this->sueldo/12;
}
public function __get($propiedad) {
if (property_exists($this, $propiedad)) {
return $this->$propiedad;
}
}
public function __set($property, $value) {
if (property_exists($this, $property)) {
   if (!empty($value)){
$this->$property = $value;
   }
}
}
}
class comercial extends empleado{
    public $comision=.1;
    public $ventas=200000;
function paga(){
$p=parent::paga();
return $p+$this->ventas*$this->comision/12;
}
}
$juan= new empleado();
$juan->nombre=”Juan”;
echo $juan->nombre;
$juan->nombre=””;
echo $juan->nombre;
$juan->sueldo=30000;
echo $juan->paga().”|”;
$ana=new comercial();
$ana->sueldo=30000;
echo $ana->paga();