Está en la página 1de 9

Mayor Cantidad del tema, tomado de: (Programador 5 Estrellas)

DCE0_FundamentosDeProgramacion
DCE0_ProgramacionOO_C#_!"E#
C$%$C#E%&'#(C$' POO
ABSTRACCIN
(gnorancia 'electi)a
*a a+stracci,n nos ayuda a tra+a-ar con cosas com.le-as
'e en/oca en lo im.ortante
(gnora lo 0ue no es im.ortante (sim.li/ica)
1na clase es una a+stracci,n en la 0ue:
'e en/ati2an las caracter3sticas rele)antes
'e su.rimen otras caracter3sticas
1na clase de+e ca.turar una y solo una a+stracci,n cla)e
El proceso de abstraccin permite seleccionar las caractersticas relevantes
dentro de un conjunto e identificar comportamientos comunes para definir
nuevos tipos de entidades en el mundo real. La abstraccin es clave en el
proceso de anlisis y diseo orientado a objetos, ya que mediante ella podemos
llegar a armar un conjunto de clases que permitan modelar la realidad o el
problema que se quiere atacar.
HERENCIA
Es una relaci,n entre clases en la cual una clase com.arte la
estructura y com.ortamiento de/inido en otra clase (4rady !ooc5)
Cada clase 0ue 5ereda de otra .osee:
*os atri+utos de la clase +ase adem6s de los .ro.ios
'o.orta todos o algunos de los m7todos de la clase +ase
1na su+clase 5ereda de una clase +ase
La herencia en la !""# es una potente arma que podemos utili$ar para varias
cosas, entre ellas, por ejemplo, ahorrar lneas de cdigo heredando de otras clases,
compartiendo variables miembro o funcin miembro. %ambi&n podemos generar
superclases abstractas para definir comportamientos gen&ricos que necesitemos.
La herencia es una de las caractersticas que ms se hace notar a la hora de
escribir cdigo, o reutili$ar cdigo de otros programadores. '#
ENCAPSULAMIENTO
Princi.io 0ue esta+lece 0ue los atri+utos .ro.ios de un o+-eto no de+en ser
)isi+les desde otros o+-etos
De+en ser declarados como .ri)ados
(8)5tt.:99:::;-oan+allestermoragues;com9+log9ingenieria<so/t:are9analisis<sistemas9.rogramacion<
orientada<a<o+-etos<5erencia;5tml
(=) 5tt.:99:::;.ol;una;.y9arc5i)os9asi9.aradigmas908Conce.tosOO;.d/
Mayor Cantidad del tema, tomado de: (Programador 5 Estrellas)
DCE0_FundamentosDeProgramacion
DCE0_ProgramacionOO_C#_!"E#
Permite a+straer al resto del mundo de la com.le-idad de la im.lementaci,n
interna
Permite e>.oner el estado del o+-eto s,lo a tra)7s del com.ortamiento 0ue
le 5ayamos de/inido mediante miem+ros .?+licos
@Por 0u7 es ?tilA
Punto de Control9alidaci,n
Me-or res.uesta ante los Cam+ios
"tro de los pilares de la orientacin a objetos es el encapsulamiento. !ara entender
este principio veamos un ejemplo prctico(
)omo todos ustedes se imaginarn, no es necesario ser mecnico de automviles
para poder manejar uno. *i el comprender cmo es el funcionamiento interno del
motor, la direccin, los frenos, los cilindros, etc. fuera requisito para poder manejar
un automvil, seran muchos menos los conductores certificados y sera mucho ms
difcil aprender a manejar. Es ms, si a cualquier automotri$ se le ocurriera cambiar
el funcionamiento interno de alguna de estas cosas, probablemente todos los
conductores tendran que volver a aprender como funciona el nuevo componente
interno para poder seguir manejando sin problemas. !or suerte esto no es as, ya
que la complejidad interna del funcionamiento de un automvil est escondida de
los conductores usuarios#. !ara poder interactuar con el automvil, &ste nos
e+pone una interfa$ sencilla y definida, que no cambia nunca por ms que cambien
internamente el funcionamiento de sus componentes. Esta interfa$ est compuesta
por el volante, los pedales, la palanca de cambios, el asiento, etc. ,e esta forma
decimos que el automvil ha encapsulado su complejidad interna.
POLIMORFISMO
Es la .ro.iedad 0ue tienen los o+-etos de .ermitir in)ocar gen7ricamente un
com.ortamiento (m7todo) cuya im.lementaci,n ser6 delegada al o+-eto
corres.ondiente reci7n en tiem.o de e-ecuci,n
El .olimor/ismo tiende a e>istir en las relaciones de 5erencia, .ero no
siem.re es as3
E-em.lo:
-qu tenemos un ejemplo prctico de la implementacin de polimorfismo en un
diseo orientado a objetos. !or un lado tenemos la clase base .%ransporte/, que
posee los m&todos .-van$ar/ y .0renar/. !or otro lado tenemos tres clases distintas
derivadas de la clase .%ransporte/, cada una de las cuales podr sobrescribir la
implementacin de los m&todos -van$ar y 0renar para que su comportamiento sea
ms especfico.
-hora bien, como todas heredan de la misma clase base, las clases derivadas
pueden ser tratadas gen&ricamente. Esto quiere decir que podramos tener un
array que almacene objetos de tipo %ransporte, y recorrerlo luego para llamar al
m&todo .-van$ar/ de cada uno. ,e esta forma, en tiempo de codificacin es
imposible saber a qu& m&todo .-van$ar/ se est llamando en realidad al del -uto1
(8)5tt.:99:::;-oan+allestermoragues;com9+log9ingenieria<so/t:are9analisis<sistemas9.rogramacion<
orientada<a<o+-etos<5erencia;5tml
(=) 5tt.:99:::;.ol;una;.y9arc5i)os9asi9.aradigmas908Conce.tosOO;.d/
Mayor Cantidad del tema, tomado de: (Programador 5 Estrellas)
DCE0_FundamentosDeProgramacion
DCE0_ProgramacionOO_C#_!"E#
-l del caballo1 -l del transbordador1#, sino que esta decisin es tomada en tiempo
de ejecucin en base al tipo particular de objeto que est& instanciado.
En pseudocdigo, esto se escribira de la siguiente manera(
,efinir array%ransportes 2# de tipo %ransporte
array%ransportes'# 3 nuevo -utomvil# 445n automvil E* 56 %7!" ,E transporte
array%ransportes8# 3 nuevo %ransbordador# 445n %ransbordador E* 56 %7!" ,E
transporte
array%ransportes2# 3 nuevo )aballo# 445n )aballo E* 56 %7!" ,E transporte
!or )ada %ransporte t en array%ransportes#
t.-van$ar#
t.0renar#
0in
RELACIONES
#odo sistema a+arca muc5as clases y o+-etos
*os o+-etos contri+uyen en el com.ortamiento de un sistema cola+orando
entre si
*a cola+oraci,n se logra a tra)7s de las relaciones
E>isten dos ti.os .rinci.ales de relaciones
$sociaci,n
$gregaci,n
RELACIONES DE ASOCIACIN
1na asociaci,n es una cone>i,n entre dos clases 0ue re.resenta una
comunicaci,n
1na asociaci,n .uede tener nom+re
*a comunicaci,n .uede ser tanto uni como +i<direccional (.or
de/ecto)
*a multi.licidad es el n?mero de instancias 0ue .artici.an en una
asociaci,n
E-em.lo:
(8)5tt.:99:::;-oan+allestermoragues;com9+log9ingenieria<so/t:are9analisis<sistemas9.rogramacion<
orientada<a<o+-etos<5erencia;5tml
(=) 5tt.:99:::;.ol;una;.y9arc5i)os9asi9.aradigmas908Conce.tosOO;.d/
Mayor Cantidad del tema, tomado de: (Programador 5 Estrellas)
DCE0_FundamentosDeProgramacion
DCE0_ProgramacionOO_C#_!"E#
1na Persona es DueBa de un e53culo
1n e53culo Pertenece a una Persona
Esta se di)ide:
Com.osici,n
$gregaci,n
RELACIN DE COMPOSICIN (=)
$gregar o com.oner )arios o+-etos .ara o+tener una mayor /uncionalidad
C 1n o+-eto se .uede construir a .artir de otros o+-etos
RELACIONES DE AGREGACIN
*a agregaci,n es una /orma es.ecial de asociaci,n donde un todo se
relaciona con sus .artes
#am+i7n se conoce como Duna .arte deE o una relaci,n de
contenci,n
E-em.lo:
1na Puerta es una .arte de un e53culo
El e53culo es a2ul, la Puerta es $2ul
Mo)er el e53culo im.lica mo)er la Puerta
(8)5tt.:99:::;-oan+allestermoragues;com9+log9ingenieria<so/t:are9analisis<sistemas9.rogramacion<
orientada<a<o+-etos<5erencia;5tml
(=) 5tt.:99:::;.ol;una;.y9arc5i)os9asi9.aradigmas908Conce.tosOO;.d/
Persona Vehiculo
-dueo
Mayor Cantidad del tema, tomado de: (Programador 5 Estrellas)
DCE0_FundamentosDeProgramacion
DCE0_ProgramacionOO_C#_!"E#
ELEMENTOS DE LA POO (PROGRAMACIN ORIENTADA A OBJETOS)
En la actualidad, el .aradigma de orientaci,n a o+-etos es sin lugar a dudas
el m6s utili2ado .or las em.resas de todo el mundo a la 5ora de encarar
desarrollos de a.licaciones de so/t:are, ya 0ue .ermite re.resentar de
manera relati)amente sim.le modelos y realidades muy com.le-as y esto
5ace 0ue el so/t:are sea m6s /6cil de .rogramar, com.render y mantener;
Por otra .arte, luego de m6s de =0 aBos de in)estigaci,n y desarrollo so+re
Orientaci,n a O+-etos .areciera ser 0ue la industria se 5a dado cuenta 0ue
el .aradigma est6 lo su/icientemente maduro como .ara dar so.orte a las
a.licaciones m6s im.ortantes del mundo actual;
@Fu7 es un o+-etoA
(n/ormalmente, un o+-eto re.resenta una entidad del mundo real
Entidades F3sicas
(E-;: e53culo, Casa, Producto)
Entidades Conce.tuales
(E-;: Proceso Fu3mico, #ransacci,n !ancaria)
Entidades de 'o/t:are
(E-;: *ista Enla2ada, (nter/a2 4r6/ica)
De/inici,n Formal (%um+aug5):
D1n o+-eto es un conce.to, a+stracci,n o cosa con un
signi/icado y l3mites claros en el .ro+lema en cuesti,nE
1n o+-eto .osee (!ooc5):
Estado
Com.ortamiento
(dentidad
En resumen un o+-eto es una a+stracci,n de la realidad 0ue tiene un
signi/icado concreto y claro .ara el .ro+lema 0ue se est6 modelando;
QU ES UNA CLASE?
1na clase es una descri.ci,n de un gru.o de o+-etos con:
(8)5tt.:99:::;-oan+allestermoragues;com9+log9ingenieria<so/t:are9analisis<sistemas9.rogramacion<
orientada<a<o+-etos<5erencia;5tml
(=) 5tt.:99:::;.ol;una;.y9arc5i)os9asi9.aradigmas908Conce.tosOO;.d/
+Mover()
Vehiculo
-color
Puerta
Mayor Cantidad del tema, tomado de: (Programador 5 Estrellas)
DCE0_FundamentosDeProgramacion
DCE0_ProgramacionOO_C#_!"E#
Pro.iedades en com?n (atri+utos)
Com.ortamiento similar (o.eraciones)
*a misma /orma de relacionarse con otros o+-etos (relaciones)
1na sem6ntica en com?n (signi/ican lo mismo)
1na clase es una a+stracci,n 0ue:
En/ati2a las caracter3sticas rele)antes
'u.rime otras caracter3sticas (sim.li/icaci,n)
1n o+-eto es una instancia de una clase
METODOS
E>iste una clasi/icaci,n de los m7todos seg?n su o+-eti)o:
'on las /uncionalidades asociadas a los o+-etos; Cuando estamos
.rogramando las clases las llamamos m7todos;
*os m7todos son como /unciones 0ue est6n asociadas a un o+-eto;
1n m7todo NO es una /unci,n;
1na /unci,n tiene 0 o m6s argumentos, el m7todo tiene '(EMP%E 8 o m6s;
Ese argumento o+ligatorio
Con el nom+re de una /unci,n dis.onemos de una im.lementaci,n, con un
m7todo tenemos la .osi+ilidad de una im.lementaci,n .or o+-eto
(em.leando el mismo nom+re);
(8)5tt.:99:::;-oan+allestermoragues;com9+log9ingenieria<so/t:are9analisis<sistemas9.rogramacion<
orientada<a<o+-etos<5erencia;5tml
(=) 5tt.:99:::;.ol;una;.y9arc5i)os9asi9.aradigmas908Conce.tosOO;.d/
Mayor Cantidad del tema, tomado de: (Programador 5 Estrellas)
DCE0_FundamentosDeProgramacion
DCE0_ProgramacionOO_C#_!"E#
SOBRECARGA DE MTODOS
*a so+recarga de m7todos es la creaci,n de )arios m7todos con el
mismo nom+re .ero con di/erentes /irmas y de/iniciones;
SOBRE ESCRITURA DE MTODOS
*a so+reescritura de m7todos es una caracter3stica m6s de la
5erencia en Ga)a; Es decir, en Ga)a las nue)as clases se .ueden de/inir
e>tendiendo clases ya e>istentes; $0u3 surgen los conce.tos de
subc!s" 0ue ser3a la clase o+tenida, y su#"$c!s", 0ue ser3a la
clase 0ue est6 siendo e>tendida, tal como tam+i7n ya se 5a
e>.licado;
Cuando una nue)a clase se e>tiende desde otra 0ue ya e>ist3a, todas
las )aria+les y m7todos 0ue son miem+ros de la su.erclase (y todos
a0uellos miem+ros de los antecesores de la su.erclase) ser6n
tam+i7n miem+ros de la su+clase;
ATRIBUTOS
Caracter3sticas de cada o+-eto o .ro.iedades del mismo
PROPIEDADES
*as .ro.iedades .ermiten im.lementar el enca.sulamiento, im.idiendo el
acceso directo a los atri+utos de una clase y .ro.orcionando un mecanismo
.ara .oder o+tener y asignar sus )alores;
",tese 0ue como !;"E# no distingue entre may?sculas y min?sculas no es
.osi+le utili2ar .ara el miem+ro de la clase el mismo nom+re 0ue .ara la
Pro.iedad; 'in em+argo, es im.ortante 0ue am+os tengan nom+res
signi/icati)os .ara la l,gica de la a.licaci,n; "o se recomienda el agregado
de .re/i-os o su/i-os a los nom+res;
Mensa-es (Comentarios)
C# so.orta H ti.os de comentarios
string nom+re I DGuanEJ 99 Comentario de una sola l3nea
9K Comentario con mas
de una l3neaK9
999 LsummaryM
999 Documentaci,n NM* 0ue .uede ser consumida .or otras
999 5erramientas .ara mostrar ayuda din6mica o generar
999 documentaci,n en )arios /ormatos
999 L9summaryM
(8)5tt.:99:::;-oan+allestermoragues;com9+log9ingenieria<so/t:are9analisis<sistemas9.rogramacion<
orientada<a<o+-etos<5erencia;5tml
(=) 5tt.:99:::;.ol;una;.y9arc5i)os9asi9.aradigmas908Conce.tosOO;.d/
Mayor Cantidad del tema, tomado de: (Programador 5 Estrellas)
DCE0_FundamentosDeProgramacion
DCE0_ProgramacionOO_C#_!"E#
.u+lic class Matematica O
999 LsummaryM
999 Calcula la suma de dos n?meros enteros
999 L9summaryM
999 L.aram nameIP>PMEl .rimer o.erando de la sumaL9.aramM
999 L.aram nameIPyPMEl segundo o.erando de la sumaL9.aramM
999 LreturnsM *a suma entera de am+os o.erandosL9returnsM
.u+lic int 'umar (int >, int y) Oreturn > Q yJR
%B&NET s'#'$(! )'s (*#'s )" c'+",(!$*'s
SComentario sim.le
Dim nom+re $s 'tring I DGuanE
SSS LsummaryM
SSS Documentaci,n NM* 0ue descri+e un ti.o y sus miem+ros
SSS L9summaryM
SSS L.aram nameIP>PMEl .rimer o.erando de la sumaL9.aramM
SSS L.aram nameIPyPMEl segundo o.erando de la sumaL9.aramM
SSS LreturnsM *a suma entera de am+os o.erandosL9returnsM
Pu+lic Function 'umar (> as (nteger, y as (nteger) as (nteger
return > Q y
End Function
INTERFACES
%ecurso de diseBo so.ortado .or los lengua-es orientados a o+-etos
0ue .ermite de/inir com.ortamiento
Permite 0ue clases 0ue no est6n estrec5amente relacionadas entre s3
de+an tener el mismo com.ortamiento
*a im.lementaci,n de una inter/a2 es un contrato 0ue o+liga a la
clase a im.lementar todos los m7todos de/inidos en la inter/a2
(8)5tt.:99:::;-oan+allestermoragues;com9+log9ingenieria<so/t:are9analisis<sistemas9.rogramacion<
orientada<a<o+-etos<5erencia;5tml
(=) 5tt.:99:::;.ol;una;.y9arc5i)os9asi9.aradigmas908Conce.tosOO;.d/
Mayor Cantidad del tema, tomado de: (Programador 5 Estrellas)
DCE0_FundamentosDeProgramacion
DCE0_ProgramacionOO_C#_!"E#
'e crean las inter/aces 0ue de/inen com.ortamiento
Tidroa)i,n de+er6 de/inir los com.ortamientos de cada una de las
inter/aces 0ue im.lemente
(8)5tt.:99:::;-oan+allestermoragues;com9+log9ingenieria<so/t:are9analisis<sistemas9.rogramacion<
orientada<a<o+-etos<5erencia;5tml
(=) 5tt.:99:::;.ol;una;.y9arc5i)os9asi9.aradigmas908Conce.tosOO;.d/
Vehiculo
Avin Barco
Aereo Terrestre Acuatico
Automvil
Hidroavion
+Navegar()
interface
Acuatico
+Volar()
interface
Aereo

También podría gustarte