Upload
yulipao2508
View
216
Download
0
Embed Size (px)
Citation preview
7/25/2019 fb bd2
http://slidepdf.com/reader/full/fb-bd2 1/5
Conceptos básicos deProgramación Orientada a Objetos:
Objeto:
Se trata de un ente abstracto usado en programación que permite separar los diferentes componentes de
un programa, simplificando así su elaboración, depuración y posteriores mejoras.
Los objetos integran, a diferencia de los métodos procedurales, tanto los procedimientos como las
variables y datos referentes al objeto.
A los objetos se les otorga ciertas características en la vida real. Cada parte del programa que se desea
realiar es tratado como objeto, siendo así estas partes independientes las unas de las otras.Los objetos
se componen de ! partes fundamentales" metodos, eventos y atributos.
Métodos:
Son aquellas funciones que permite efectuar el objeto y que nos rinden alg#n tipo de servicio durante el
transcurso del programa.
$eterminan a su ve como va a responder el objeto cuando recibe un mensaje.
Eventos:
Son aquellas acciones mediante las cuales el objeto reconoce que se est% interactuando con él.
$e esta forma el objeto se activa y responde al evento seg#n lo programado en su código.
Atributos:
Características que aplican al objeto solo en el caso en que el sea visible en pantalla por el usuario&
entonces sus atributos son el aspecto que refleja, tanto en color, tama'o, posición, si est% o no
(abilitado.
Ejemplo de objeto: un coc(e.
Se considera un coc(e un objeto, totalmente diferenciado del alquitr%n donde est% aparcado.
Sus atributos son su color, marca, modelo, n#mero de matrícula, n#mero de puertas,...
Sus eventos todos aquellas acciones por las cuales si el coc(e tuviera vida propia reconocería que le
estamos dando un uso, como abrir la puerta, girar el volante, embragar, abrir el capot, ....
Los métodos son todo aquello que nos ofrece el coc(e como (acer sonar una bocina cuando tocamos el
cla)on *evento+, llevarnos por la carretera, reducir la velocidad al pisar el freno *evento+, ...
Mensajes:
Aunque los objetos se (an de diferenciar claramente en una aplicación, estos se (an de poder
comunicar para poder trabajar en conjunto y construir así aplicaciones.
sto se (ace posible a través de lo que se denomina paso de mensajes. Cuando un objeto quiere
7/25/2019 fb bd2
http://slidepdf.com/reader/full/fb-bd2 2/5
comunicarse con otro lo que (ace es enviarle un mensaje con los datos que desea transmitir.
n el simil del coc(e, al apretar el cla)on, el objeto cla)on envía un mensaje a la bocina indic%ndole
que (aga sonar cierto sonido.
La potencia de este sistema radica en que el objeto emisor no necesita saber la forma en que el objeto
receptor va a realiar la acción. Simplemente este la ejecuta y el emisor se desentiende del como& de
(ec(o ni le importa, solo tiene conocimiento de que se est% realiando.-ara que todo esto sea posible es necesario una buena programación de los eventos y de los métodos de
cada objeto.
l conjunto de mensajes a los que un objeto puede responder se denomina protocolo del objeto.
Instancia:
Se llama instancia a todo objeto que derive de alg#n otro. $e esta forma, todos los objetos son
instancias de alg#n otro, menos la clase bject que es la madre de todas.
Clases: $escripción de de objeto. Consta de una serie de métodos y datos que resumen las
características de este objeto. $efinir clases permite trabajar con código reutiliable. -uesto que desdeuna clase se puede crear una instancia y así reutiliar el código escrito para esta si tener que volver a
escribir el código para la instancia. La instancia toma el patrón de la clase padre. Sin embargo, las
variables son idependientes.
Herencia:
/ecanismo para compartir autom%ticamente métodos y datos entre classes, subclases y objetos.
-ermite crear nuevas clases introduciendo las variaciones con respecto a su clase padre.
Herencia simple: una subclase puede (erecar datos y métodos de una clase simple así como a'adir o
sustraer ciertos comportamientos.
Herencia múltiple:posibilidad de adquirir métodos y datos de varias clases simult%neamente.
Encapsulación:
$efine el comportamiento de una clase u objeto que tiene dentro de él todo tipo de métodos y datos
pero que solo es accesible mediante el paso de mensajes. y los datos a través de los métodos del
objeto0clase.
Polimorismo:
Los objetos responden a los mensajes que se les envían. 1n mismo mensaje puede ser interpretado o
dar paso a distintas acciones seg#n que objeto es el destinatario.Con este sistema el emisor se desentiende de los detalles de la ejecución *aunque el programador (a de
saber en todo momento cuales son las consecuencias de ese mensaje+.
!iempo real durante el cual el objeto e"iste en memoria:
Los objetos se crean a medida que estos son requeridos *en ve de todos a la ve, con la consiguiente
pérdida de memoria+ y se eliminan de la misma forma.
Persistencia:
7/25/2019 fb bd2
http://slidepdf.com/reader/full/fb-bd2 3/5
Abstracción:
#igadura dinámica:
$lob:
2inary Large 2ject. tipo de dato util para almacenar grandes datos. Se suelen usar muc(o en bases de
datos .
Herencia
La herencia es un mecanismo que permite la definición de una clase a partir de la
definición de otra ya existente. La herencia permite compartir automáticamente
métodos y datos entre clases, subclases y objetos.
La herencia está fuertemente ligada a la reutilización del código en la P. !sto es, elcódigo de cualquiera de las clases puede ser utilizado sin más que crear una clase
deri"ada de ella, o bien una subclase .
#ay dos tipos de herencia$ #erencia %imple y #erencia &'ltiple . La primera indica que se
pueden definir nue"as clases solamente a partir de una clase inicial mientras que la
segunda indica que se pueden definir nue"as clases a partir de dos o más clases iniciales.
(a"a sólo permite herencia simple
#erencia %imple La herencia en )** es un mecanismo de abstracción creado para poder
facilitar, y mejorar el dise+o de las clases de un programa. )on ella se pueden crear
nue"as clases a partir de clases ya hechas, siempre y cuando tengan un tipo de relación
especial. !n la herencia, las clases deri"adas heredan- los datos y las funciones miembro
de las clases base, pudiendo las clases deri"adas redefinir estos comportamientos
polimorfismo/ y a+adir comportamientos nue"os propios de las clases deri"adas. Para no
romper el principio de encapsulamiento ocultar datos cuyo conocimiento no es necesario
para el uso de las clases/, se proporciona un nue"o modo de "isibilidad de los
datos0funciones$ protected-. )ualquier cosa que tenga "isibilidad protected se
comportará como p'blica en la clase 1ase y en las que componen la jerarqu2a de herencia,
y como pri"ada en las clases que 3 sean de la jerarqu2a de la herencia. 4ntes de utilizar
la herencia, nos tenemos que hacer una pregunta, y si tiene sentido, podemos intentar
usar esta jerarqu2a$ %i la frase 5clase16 !%783 5clase46 tiene sentido, entonces estamos
ante un posible caso de herencia donde clase 4 será la clase base y clase 1 la deri"ada.
!jemplo$ clases 1arco, 4corazado, )arguero, etc9 un 4corazado !%783 1arco, un
)arguero !%783 1arco, un :rasatlántico !%783 1arco, etc9 !n este ejemplo tendr2amos
las cosas generales de un 1arco en )**/ class 1arco ;
7/25/2019 fb bd2
http://slidepdf.com/reader/full/fb-bd2 4/5
protected$
char< nombre=
float peso=
public$
00)onstructores y demás funciones básicas de barco
>= y ahora las caracter2sticas de las clases deri"adas, podr2an a la "ez que heredan las de
barco/ a+adir cosas propias del subtipo de barco que "amos a crear, por ejemplo$ )lass
)arguero$ public 1arco ; 00 !sta es la manera de especificar que hereda de 1arco
pri"ate$
float carga=
00!l resto de cosas
>=
)lass 4corazado$ public 1arco ;
pri"ate$
int numero4rmas=
int %oldados=
00 !lresto de cosas
>= Por 'ltimo, hay que mencionar que existen ? clases de herencia que se diferencian en el
modo de manejar la "isibilidad de los componentes de la clase resultante$ @ #erencia
publica class Aeri"ada$ public 1ase / $ )on este tipo de herencia se respetan los
comportamientos originales de las "isibilidades de la clase 1ase en la clase Aeri"ada. @#erencia pri"ada clase Aeri"ada$ pri"ate 1ase/ $ )on este tipo de herencia todo
componente de la clase 1ase, será pri"ado en la clase Aeri"ada ojoB siempre será pri"ado
aunque ese dato fuese p'blico en la clase 1ase/ @ #erencia protegida clase Aeri"ada$
protected 1ase/ $ )on este tipo de herencia, todo componente publico y protegido de la
clase 1ase, será protegido en la clase Aeri"ada, y los componentes pri"ados, siguen
siendo pri"ados. #erencia &'ltiple La herencia m'ltiple es el mecanismo que permite al
programador hacer clases deri"adas a partir, no de una sola clase base, sino de "arias.
7/25/2019 fb bd2
http://slidepdf.com/reader/full/fb-bd2 5/5
Para entender esto mejor, pongamos un ejemplo$ )uando "es a quien te atiende en una
tienda, como persona que es, podrás suponer que puede hablar, comer, andar, pero, por
otro lado, como empleado que es, también podrás suponer que tiene un jefe, que puede
cobrarte dinero por la compra, que puede de"ol"erte el cambio, etc9 %i esto lo
trasladamos a la programación ser2a herencia m'ltiple clase empleadoCtienda/$ class
Persona ; …
#ablar/=
)aminar/=
…
>=
class !mpleado ;
Persona jefe=
int sueldo=
)obrar/=
…
>=
class empleadoCtienda$ public Persona, !mpleado ;
…
4lmacenar %tocD/=
)omprobar !xistencias?/=
…
>= Por tanto, es posible utilizar más de una clase para que otra herede sus
caracter2sticas.