Usuario:ManuelRomero/DAW/Distancia/2015/tutorias/tutoria1/


 * La programación orientada a objetos
 * Se revisa las peculiaridades de php como lenguaje orientado a objetos
 * Se insiste en leer el wiki a pesar de que a veces pueda parecer un poco desordenado. pero es información importante. Cualquier cuestión que no quede clara o que se vea incompleta se debería comentar para solvertarlo.
 * En php hay dos aspecto peculiares sobre OOP


 * 1) Que no permite la sobrecarga/polimorfismo como la entendemos en otros lenguajes como java
 * 2) Que tiene lo que se llama métodos mágicos que son métodos que no se invocan de forma explícita, si no que implícitamente se invocas (si es que se han implementado) cuando ocurre algo
 * Sobre la primera cuestión se trabaja el ejemplo del racional:


 * Suponemos que queremos tener las siguientes opiciones de instanciar objetos
 * En este caso queremos sobre cargar el constructor. En php no se pueden crear métodos con el mismo nombre
 * Entonces lo que hacemos es crerar un solo método que tenga el máximo número de parámetros con el que se pueda invocar (en este caso 2) y con valores por defecto para aquellos que podrían no aparecer (en este caso los dos
 * Ahora en el método empezamos a interrogar sobre si existe o no el parámetro y el tipo de dato

Sobre la autocarga de clases, se ha comentado como en php si seguimos las buenas prácticas de programación se debe de implementar cada clase en un fichero que tenga su nombre Cuando en un programa principal, voy a usar clases en de incluir los ficheros que contengan la implementación de las clases
 * En este caso creamos este código, claramente sin optimizar ...
 * Autocarga de clases

Por lo que si tuvierámso la siguiente estructura de clases que se muestra en el ejemplo ue requerir cada fichero
 * Cada clase lo único que va a hacer es en el constructor escribir un texto (es solo un ejemplo)
 * Si en un programa principal queremos usar estas clases, tendríamos q
 * Pero si cada fichero está nombrado con el nombre de la clase, podemos usar una función de autocarga
 * Esta función es invocada de forma implícita cada vez que se instancia un objeto de una clase. En su invocación recibe como parámetro un a función de callback que tiene el nombre de esa clase como parámetro
 * Usando este hecho podríamos hacer
 * Esta función se llama spl_autload_register{}
 * La función que recibe de parámetro no nos importa el nombre, por lo que la podemos usar como una función anónima


 * Ahora tocaría poner código en esa función que tiene el parámetro nombre de la clase que queremos cargar

Examen de primera evaluación

 * El examen constará de dos partes
 * Teoría
 * Práctica

Teoría

 * Serán 20 preguntas de respuesta corta, de tipo teórico/práctica
 * En este apartado no se puede usar apuntes extras y se realiza sobre el papel
 * Ejemplo de posibles preguntas

Práctica

 * Será un ejercicio práctico que hay que implementar en el ordenador
 * No se pide que funcione, si no que esté bien planteado y organizado
 * Por ejemplo este año planteamos resolver el juego de mastermind más simplificado que como se ha planteado en las prácticas
 * Para esta parte del examen sí que se puede usar ordenador y todo el material que queráis, pero no se puede acceder a internet
 * Se podrá preguntar y se resolverán cuestiones de cómo se llama una determinada función que sé que hace tal cosa.
 * Todo lo que se diga para una alumna, se pondrá en común para todos en la pizarra, o se dirá en voz alta.
 * Si no traes equipo se dispondrá de uno en el aula con ubuntu como SO, netbeans como edi, e instalado apache como servidor web