Documentos de Académico
Documentos de Profesional
Documentos de Cultura
er as
co
eH w
o.
Control Semana 3
rs e
ou urc
Alvaro Figueroa
Programación Avanzada
o
aC s
Instituto IACC
vi y re
20 de Julio de 2020
ed d
ar stu
is
Th
sh
This study source was downloaded by 100000823313695 from CourseHero.com on 06-20-2021 12:46:55 GMT -05:00
https://www.coursehero.com/file/76650940/470487558-Alvaro-Figueroa-COntrol3-docxdocx/
Desarrollo
Usted ha sido seleccionado para diseñar lógicamente (puede usar elementos gráficos como
Santiago, este sistema debe manejar las personas dentro del proceso como son: estudiantes
con todos sus atributos ( nombre, apellido, rut, dirección) y apoderados también con sus
atributos ( nombre, apellido, rut, dirección), que año y asignaturas cursan cada uno de los
m
Ahora bien, basándose en esa situación ejemplificar gráficamente:
er as
co
1. Clases abstractas, rasgos, clases anónimas y sobrecarga.
eH w
o.
2. Muestre como seria la iteración de objetos con los métodos mágicos y
rs e
ou urc
palabras clave final.
1. Las clases Abstractas tienen unas particularidades que la diferencian con la clase normal,
como:
ed d
ar stu
- Al definir una clase abstracta, hay que anteponer en el nombre abstract. Ej:
echo $saludo;}
sh
- No se permite generar una instancia desde la clase abstracta, es decir, no se puede definir un
This study source was downloaded by 100000823313695 from CourseHero.com on 06-20-2021 12:46:55 GMT -05:00
https://www.coursehero.com/file/76650940/470487558-Alvaro-Figueroa-COntrol3-docxdocx/
$no_se_puede = new clase_abstracta();
En relación a las clases del trabajo de la semana anterior, se puede definir la clase personas como
abstracta, ya que es una abstracción de las clases hijas colegio, alumno y apoderado, si se
considera que alumno y apoderado son personas naturales y colegio es persona jurídica, no
m
vamos a querer que la clase personas sea instanciada, pero si que pueda heredar.
er as
co
eH w
o.
rs e
ou urc
o
aC s
vi y re
ed d
ar stu
is
Th
sh
This study source was downloaded by 100000823313695 from CourseHero.com on 06-20-2021 12:46:55 GMT -05:00
https://www.coursehero.com/file/76650940/470487558-Alvaro-Figueroa-COntrol3-docxdocx/
2. Para comenzar, hay que tener presente que si se extiende una clase, la clase hija hereda los
métodos públicos y protegido, así, cuando se quiere que una clase hija contenga un rasgo
Si tenemos la clase padre “personas”, la clase hija “alumno”, no heredó algunos métodos, por lo
que, para dar origen a estos métodos se puede incluir un rasgo “TRIAT”. Hay que destacar que
no se debe abusar de los rasgos, siendo muy precavido con su funcionalidad. Por ej.:
Si deseamos definir una nueva clase, pero, tiene un rasgo alumnos especiales, que no van
m
- Se declara el rasgo
er as
co
trait alumnoespecial {
eH w
o.
public $especial = 'Alumno da sólo examen'; public function speak() {
rs e
ou urc
echo $this->phrase;
}
o
aC s
}
vi y re
$this->speak(); }
is
}}
sh
This study source was downloaded by 100000823313695 from CourseHero.com on 06-20-2021 12:46:55 GMT -05:00
https://www.coursehero.com/file/76650940/470487558-Alvaro-Figueroa-COntrol3-docxdocx/
Una clase, que al crearla no lleva nombre, se le denomina “clase anónima” (no quiere decir que
no lo tenga), si no que, PHP le asignará uno internamente. Se utilizan cuando requerimos crear
var_dump($param); }
m
Hay que destacar que no se puede tener acceso a las variables o funciones protegidas de este tipo
er as
co
de clase.
eH w
o.
rs e
ou urc
También están las “sobre cargas”, con las que se puede crear propiedades y métodos de forma
dinámica. Se debe definir como públicos. Ej.: de la sobre carga “__call” perteneciente a la clase
o
aC s
personas.
vi y re
Hay que entender que hay personas con 1 nombre y otras con 2 nombres. Por lo que se usa la
sobrecarga, donde, al momento de ingresar un nombre, usará una función y al ingresar el otro
ed d
ar stu
<?php
is
class Personas
{
sh
//Propiedades de la clase
This study source was downloaded by 100000823313695 from CourseHero.com on 06-20-2021 12:46:55 GMT -05:00
https://www.coursehero.com/file/76650940/470487558-Alvaro-Figueroa-COntrol3-docxdocx/
if ($metodo = 'nombres') {
if (count($argumentos) == 1) {
$this->nombre1 = $argumentos[0]; }
if (count($argumentos) == 2)
}}
m
function get_nombre1() {
er as
co
return $this->nombre1; }
eH w
o.
function get_nombre2() {
rs e
ou urc
return $this->nombre2; }
}
o
aC s
$persona2->nombres('José', 'Iván');
echo "Mostrando con los dos nombres : " . $persona2->get_nombre1() . " ". $persona2-
>get_nombre2();
sh
?>
This study source was downloaded by 100000823313695 from CourseHero.com on 06-20-2021 12:46:55 GMT -05:00
https://www.coursehero.com/file/76650940/470487558-Alvaro-Figueroa-COntrol3-docxdocx/
Así, cuando se ingresa uno o dos nombres con el argumento nombre, se ejecutoa la función de
m
Hay dos maneras de utilizar éste método:
er as
co
- Cuando una clase es heredada, no podemos generar un nuevo método con el mismo nombre del
eH w
o.
método heredado.
rs e
ou urc
- Si la clase define un método final, esta clase no puede ser heredable.
o
aC s
siguiente manera:
ed d
ar stu
is
Th
sh
This study source was downloaded by 100000823313695 from CourseHero.com on 06-20-2021 12:46:55 GMT -05:00
https://www.coursehero.com/file/76650940/470487558-Alvaro-Figueroa-COntrol3-docxdocx/
Con los puntos anteriores podemos realizar un diagrama representativo:
Th
sh is
ar stu
ed d
vi y re
aC s
o
https://www.coursehero.com/file/76650940/470487558-Alvaro-Figueroa-COntrol3-docxdocx/
ou urc
rs e
This study source was downloaded by 100000823313695 from CourseHero.com on 06-20-2021 12:46:55 GMT -05:00
eH w
er as
o.
co
m
Bibliografía
IACC, (2020). Contenido semana 3, consultado el 6 de Julio del 2020, En: campus.iacc.cl
Bibliografía
IACC (2020). Programación Orientada a Objetos con PHP. Programación Avanzada I. Semana
3.
m
er as
co
eH w
o.
rs e
ou urc
o
aC s
vi y re
ed d
ar stu
is
Th
sh
This study source was downloaded by 100000823313695 from CourseHero.com on 06-20-2021 12:46:55 GMT -05:00
https://www.coursehero.com/file/76650940/470487558-Alvaro-Figueroa-COntrol3-docxdocx/
Powered by TCPDF (www.tcpdf.org)