6. implementacion de clases-formato.pptx
TRANSCRIPT
-
8/17/2019 6. Implementacion de clases-Formato.pptx
1/68
Compilado por:Mag. Sonia Mora.Dra. Mayela Coto.
Proyecto 0151-14 UNA – Mora & Coto, 2015
Programación Orientada a
Objetos
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
2/68
Programa !n programa orientado a objetos se res'me en
tres s'cesos: Creación de objetos c'ando se necesitan( mediante 'n
mensaje de constr'cción a la clase. Intercambio de mensajes entre objetos o entre
's'ario de objeto y objeto. Eliminar objetos c'ando no se necesitan( mediante 'n
mensaje de destr'cción a la clase.
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
3/68
Problema: Sal'd y obesidad )a obesidad es 'na en*ermedad crónica originada por m'c+as
ca'sas y con n'merosas complicaciones. P'ede ca'sar di,ersostrastornos de sal'd como en*ermedades cardio,asc'lares( diabetes(apnea del s'e-o( padecimientos de la ,esc'la( eso*agitis(osteartrosis( osteoporosis( esteatosis +ep/tica( problemasortop0dicos y dis*'nciones renales. M'c+as de estas complicacionesp'eden lle,ar a la m'erte.
)a obesidad se caracteri1a por el eceso de grasa en el organismo yse presenta c'ando el Indice de Masa Corporal en el ad'lto es mayorde 23 'nidades.
Se desea reali1ar 'na aplicación 4'e permita calc'lar el ni,el deobesidad de las personas.
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
4/68
Problema: Sal'd y obesidad El ni,el de obesidad se calc'la de la sig'iente *orma:
Primero se calc'la el 5ndice de Masa Corporal 6IMC7
Desp'0s de tener los ,alores de IMC se aplica la sig'iente tabla paraconocer el ni,el de obesidad
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
Clasificación IMCInfrapeso 8 de 9.3
Peso Normal 9.3 a 2;.<Sobrepeso 23 a 2
-
8/17/2019 6. Implementacion de clases-Formato.pptx
5/68
Problema: Sal'd y obesidad Por ejemplo( 'n +ombre o 'na m'jer 4'e pese 92 ?ilos y
mida 9.@3 metros( tiene el IMC ig'al a ;;( es decir(Obesidad Mórbida ( con 'n riesgo relati,o m'y alto parael desarrollo de en*ermedades cardio,asc'lares.
Peso A 92 ?g A 92 ?g A 44Estatura² 9.@3 9.@3 2.B223
EE%CICIO: De*ina 'na clase 4'e permita desarrollar laaplicación para calc'lar el grado de obesidad de 'napersona.
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
6/68
Ejemplo Persona '0 atrib'tos re4'iere la clase Persona para el
desarrollo de la aplicación
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
7/68
Sintais para la de*inición de clases
class nombreGdeGlaGclase H
1ona de atrib'tosJ 1ona de constr'ctores y destr'ctoresJ 1ona de otros m0todosJ
KJ
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
Indentación
En mayLsc'la ysing'lar
M! importante
-
8/17/2019 6. Implementacion de clases-Formato.pptx
8/68
Ejemplo: partes de 'na claseclass PersonaH private: string nombreJ
*loat pesoJ
*loat estat'raJ
de*inición de 'n constr'ctor sinpar/metros
public:
Persona6 7H
nombre A Ninde*inidoNJpeso A Jestat'ra A J
K
de*inición de 'n constr'ctor conpar/metros
Persona 6string 'n"ombre( *loat 'nPeso(*loat 'naEstat'ra7
Hnombre A 'n"ombreJpesoA 'nPesoJestat'ra A 'naEstat'raJK
K
a4' se p'eden colocar otros m0todosKJ *in de la clase
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
"ombre de la clase
ona deatrib'tos
ona de
m0todos
-
8/17/2019 6. Implementacion de clases-Formato.pptx
9/68
Ejemplo: partes de 'na claseclass PersonaH private: string nombreJ
*loat pesoJ
*loat estat'raJ
de*inición de 'n constr'ctor sinpar/metros
public:
Persona6 7H
nombre A Ninde*inidoNJpeso A Jestat'ra A J
K
de*inición de 'n constr'ctor conpar/metros
Persona 6string 'n"ombre( *loat 'nPeso(*loat 'naEstat'ra7
Hnombre A 'n"ombreJpesoA 'nPesoJestat'ra A 'naEstat'raJK
K
a4' se p'eden colocar otros m0todosKJ *in de la clase
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
Sólo se p'ede acceder a ellos con las *'nciones miembros declaradas enel interior de la clase
P'eden ser accedidosdesde otras clases
-
8/17/2019 6. Implementacion de clases-Formato.pptx
10/68
ona de atrib'tosclass PersonaH private:
string nombreJ
*loat pesoJ*loat estat'raJ
.
)os atrib'tos serepresentan comocampos y estos tienenidenti*icadores
En general( losidenti*icadores son'tili1ados para nombrarlas di*erentes entidades
presentes en 'na clase Campos ,ariables( campos
constants( etc. "ombres de m0todos Clases( objetos
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
11/68EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
Qisibilidad: #trib'tosRSímbol
oMnemóni
co Resultado
- PrivateAtributos privados solo puede servistos y utili!ados por "#todos de la"is"a clase$ Por o"isi% los atributosso privados$
PublicAtributos públicos puede ser vistosy utili!ados por "#todos de la "is"aclase y de otras clases$
' ProtectedR
Atributos protegidos puede ser
vistos y utili!ados por "#todos de la"is"a clase y por "#todos de clasesderivadas o subclases$
( )taticR
Atributos estáticos so *icos paratoda la clase, es decir, o perteecea i+* ee"plar u obeto de la
clase, pero puede ser vistos portodos los obetos de la clase$
* No se estudiarn como atributos en este curso
-
8/17/2019 6. Implementacion de clases-Formato.pptx
12/68
Identi*icadores
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
Sonnombressimbólicos
4'e se*ormanmediante'nasec'enciade letras ydgitos. EnC
El primer car/cter de 'n identi*icador tiene 4'e sersiempre 'na letra o 'n s'brayado( el car/cters'brayado se considera como 'na letra m/s.
!n identi*icador no p'ede contener espacios en blanco ni otro car/cter distinto a los citados.Caracteres especiales como R ( : . no son ,/lidos
C es sensible al 'so de mayLsc'las 6case sensitive) Por ejemplo: %es'ltado es di*erente de res'ltado y esdi*erente de res'l$ado.
"o p'ede ser 'na palabra cla,e o reser,ada
-
8/17/2019 6. Implementacion de clases-Formato.pptx
13/68
Ejemplostipo
Color pelo
=3
,alorGpromediomaimoT
salGprome
2$=3Ud9
Me92G1c
diaFeriado
Gpago$otal
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
14/68
Ejemplostipo correcto
Color pelo incorrecto "o se permiten blancos
=3 incorrecto Debe iniciar con letras o G
,alorGpromedio correctomaimoT incorrecto "o se permite T
salGprome correcto
2$=3Ud9 incorrecto Debe iniciar con letras o G
Me92G1c correcto
diaFeriado correcto
Gpago$otal correcto
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
15/68
Palabras reser,adas #lg'nos identi*icadores tienen 'n 'so especial en los
leng'ajes de programación. Estos identi*icadores sonconocidos como palabras cla,es o palabras reser,adas6?ey Vords o reser,ed Vords7( ya 4'e el programador no
p'ede darle 'n 'so di*erente al 4'e el leng'aje lescon*iere.
Por ejemplo: en el caso de class s' objeti,o es in*ormarleal compilador 4'e el identi*icador Persona describe 'na
claseJ mientras 4'e strin! permite Win*ormarX 4'e losatrib'tos nombre y apellidos almacenar/n cadenas decaracteres.
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
16/68
Palabras cla,es en Ca'to delete goto p'blic t+is
brea? do i* register template
case do'ble inline ret'rn typede*
matc+ else int s+ort 'nion
c+ar en'm long signed 'nsigned
class etern neV si1eo* ,irt'al
const *loat o,erload static ,oidcontin'e *or pri,ate str'ct ,olatile
de*a'lt *riend protected sVitc+ V+ile
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
17/68
Identi*icadores
• !sar identi*icadores nemot0cnicos 64'es'gieren el signi*icado de la entidad 4'enombran7. Por ejemplo( nombre( apellidos y
Edad son mas signi*icati,os para la lect'ra4'e n( a y E.
• "o sacri*icar la legibilidad por la longit'd delos identi*icadores. !tili1ar identi*icadorespron'nciables. Esto ay'da a la memori1ación
de los nombres y a la eplicación oral delcódigo *'ente. "o 'tili1ar *" en l'gar de*ec+a"acimiento.
Principiosimportantes
sobre el 'so delos
identi*icadores4'e deben
tenerse enc'enta son:
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
18/68
%eglas o con,enciones b/sicas)os identi*icadores se con*orman con las = primeras letras signi*icati,as decada palabra 4'e lo con*orma. )a primera letra debe ir en minLsc'la y laspalabras 4'e la componen lle,an la primera letra con mayLsc'la.
Sin embargo( si la ,ariable representa 'n dato simple y pe4'e-o se 'sa esa
palabra para representarla. Ejemplos: edad( s'ma( peso( pas( etc.
Ejemplos:
• Contenido de la ,ariable "ombre representati,o• Salario br'to sin imp'estos salYr'SinImp
• "ombre del empleado nomEmp• Imp'esto sobre la renta imp%en• #proimación polinomial eponencial aproPolEp
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
19/68
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
$ipos de datos !na clase p'ede tener ,arios atrib'tos de distintos tipos o
nat'rale1a. Cada 'no de los atrib'tos est/ 'nido a 'n tipo de dato.
C'ando se declara 'n atrib'to se debe escribir el tipo de datoal 4'e pertenece.
Esto se +ace con dos propósitos: 4'e la comp'tadora cono1ca c'anto espacio de memoria asignar
a cada atrib'to 4'e se declare para reconocer 4'e se est/n +aciendo las cosas correctamente.
Por ejemplo( si tengo 4'e s'mar dos atrib'tos( esperara 4'e ses'maran nLmero con nLmero y no cadenas de caracteres conelementos de tipo de dato n'm0rico.
-
8/17/2019 6. Implementacion de clases-Formato.pptx
20/68
$ipos de datos El tipo de dato m/s sencillo es el car/cter( 4'e sera 'n
solo elemento de 'na colección de 23@ smbolos( 4'ep'ede incl'ir: letras mayLsc'las y minLsc'las smbolos especiales como . ( J Z [ R \ 7 )a representación de los dgitos decimales como
smbolo y no como ,alor( etc(
)a identi*icación 4'e se 'tili1ar/ para este tipo de datos esc"ar# Por ejemplo se declara el atrib'toc+ar tamannoCamisaJ p'ede contener ]p^( ]m^ o ]g^.
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
21/68
$ipos de datos De 'na generali1ación del tipo car/cter( est/ la
cadena de caracteres. Consiste en la re'nión de 'nasec'encia de caracteres.
Se identi*ica con la palabra string. Ejemplo:string nombreEst'dianteJ p'ede contener W#rmando Carro MatosX
p'ede contener WYeatri1X
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
22/68
$ipos de datos )a representación de nLmeros tiene dos tipos
di*erentes( dependiendo si el nLmero tienedecimales o no. Si el nLmero no tiene decimales se le llama int 6;3( _=(
=3;37 Si tiene decimales se le llama float 6;3.=( _=.B32=;(
=3;3.7 Ejemplos:
int aJ a A 3 *loat bJ bA B.@B
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
23/68
$ipos de datos !n Lltimo tipo de dato es para ,alores lógicos( es
decir( 4'e p'ede ,aler solo *also o ,erdadero 6tr'e(*alse7. Este tipo se identi*ica con el nombre de boolean.
Ejemplo: bool siJ si A tr'eJ
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
24/68
$ipos de datos Se re*iere al tipo de in*ormación 4'e p'ede contener 'n atrib'to
6identi*icador7
Tipo Tamañobits. Rango Nota
bool / los siete bitssuperiores so
i+orados.
0 o 1 alor l%+ico
char / e -12/ a 12 si+ed.o de 0 a 255 usi+ed.
U car3cter ou eteropeueo
short 16 e -726/ a 726 si+ed.o de 0 a 65576 usi+ed.
8l doble de uc9ar
int 72 e -2144/764/ a 2144/764si+ed.
o de 0 a 42:4:62:6 usi+ed.
N*"eroetero
long 72 puede ser 64e otras
aruitecturas .
e -2144/764/ a 2144/764si+ed.
o de 0 a 42:4:62:6 usi+ed.
N*"eroetero
foat 72 e ;- 1$4027
-
8/17/2019 6. Implementacion de clases-Formato.pptx
25/68
Qariables$ipo de identi*icador 4'e se 'tili1an para conser,ar
,alores d'rante la ejec'ción de 'n programa.
Permiten representar ,alores 4'e no necesariamentese conocen c'ando se escriben las aplicaciones y a s' ,e1 p'eden cambiar d'rante la ejec'ción de 0stas.
#l contenido de las ,ariables se tiene acceso a tra,0sde los nombres simbólicos 6identi*icadores7 4'e las
identi*ican.
!na ,ariable debe tener 'n tipo asociado 4'e esprecisamente el tipo de los ,alores 4'e ella p'ede
conser,ar.
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
26/68
Declaración de ,ariables En la mayora de los leng'ajes las ,ariables tienen 4'e ser de*inidas o
declaradas antes de ser 'tili1adas.
Ejemplos:strin! nombreJfloat pesoJfloat estat'raJ
Son caracteri1adas por 'n tipo y 'n nombre simbólico.
El tipo determina: )a clase de ,alores 4'e p'ede tomar 'na ,ariable 6,alores reales en
el caso de peso7 )as operaciones en las 4'e p'ede participar 6aritm0ticas en peso7.
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
27/68
#signación de ,ariables
#signa ,alores a las ,ariables
!tili1a el operadorWAX
8,ariable> A 8epresión>J
Es 'na instr'cción 4'epermite asignarle 6WAX7 a
'na ,ariable68,ariable>7 el res'ltadode la e,al'ación de 'na
epresión 68epresión>7
)a instr'cción deasignación se ejec'ta:• se e,alLa la epresión a
la derec+a del operadorde asignación 6A7
• el res'ltado de estae,al'ación se le da como ,alor a la ,ariable 4'eest/ a la i14'ierda deloperador
)'ego de +abersee*ect'ado esta asignación
de ,alores a la ,ariable
de la i14'ierda este ,alors'stit'ye c'al4'ier otro4'e +'biera tenido conanterioridad la ,ariable.
"ota: Es importantedi*erenciar este operador
de asignación con el'tili1ado en lasig'aldades matem/ticas.
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
28/68
#signaciones
identi*icador A epresiónJ
Epresión Debe ser e,al'ada y res'ltar del tipo del identi*icador
P'ede ser aritm0tica( lógica( condicional.
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
29/68
Epresiones y Operadores !n operador es 'n car/cter o gr'po de caracteres 4'e
actLa sobre 'no( dos o m/s operandos para reali1ar 'nadeterminada operación con 'n determinado res'ltado.P'eden ser:
'narios( binarios y ternarios
Un operando es el ,alor constante o literal( el contenido
de 'na ,ariable 6objeto7( el res'ltado de la in,ocación de'n m0todo( el res'ltado de la e,al'ación de 'naoperación( etc.
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
30/68
Epresiones y Operadores Ejemplos de operadores de la mayora de los
leng'ajes: Operadores aritméticos:
suma + resta - producto *división / si los operandos son enteros trunca el
resultado en lugar de redondearlo
módulo % resto de la división enteramenos unario -más unario +
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
31/68
Epresiones y Operadores Ejemplos:
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
asi!nación resultado
9 A ;_2 R 3 9 ` 2R=J
2 A 6;_27 R 3 9 ` 62R=7J
= A 9B2J
;A 9B.2J
3A 92 T 2J
@ A 3 T 2J
B A tr'e and *alse:
-
8/17/2019 6. Implementacion de clases-Formato.pptx
32/68
Epresiones y Operadores Ejemplos:
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
asi!nación resultado
9 A ;_2 R 3 9 ` 2R=J _2
2 A 6;_27 R 3 9 ̀ 62R=7J 9;
= A 9B2
;A 9B.2 .3
3A 92 T 2
@ A 3 T 2 9
B A tr'e and *alse error
-
8/17/2019 6. Implementacion de clases-Formato.pptx
33/68
Ejemplos asignación de ,ariables int temperat'raJ int edad'anJ
temperat'ra A _3J
edad'an A 23J edad'an A edad'an 9J
int edadPedro A 2=J float peso A @.3J
c"ar letra A aJ bool eiste A trueJ strin! nombre'an A W'anWJ
strin! nombrePedro( nombre#naJ
nombrePedro A nombre'anJ nombre#na A W#naWEIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
34/68
Otros Operadores de #signación en C
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
=;
Operadoresde
asignacióncomp'estos
A_ARA
ATA
peso A peso 9J
peso A 9J
total A totalR.9=total RA .9=J
incremento67
decremento 6__7
peso A peso 9J
pesoJ
pesoA9J
,alor A ,alor _ 9J
,alor __J
,alor_A9J
-
8/17/2019 6. Implementacion de clases-Formato.pptx
35/68
Problema: C/lc'lo del tipo de obesidad $a tenemos los atributos necesarios para resolver el
problema
class PersonaH
private:string nombreJ*loat pesoJ*loat estat'raJ
KJ
%Cómo reali&amos los clculos necesarios'( a trav)s de u)mecanismos'
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
36/68
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
M0todos Eisten b/sicamente ; tipos de m0todos:
Constr'ctor y destr'ctor
Obtener yestablecer6get y set7
M0todo endonde sereali1anc/lc'los
M0todospri,ados
-
8/17/2019 6. Implementacion de clases-Formato.pptx
37/68
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
Qisibilidad: M0todosRSímbol
oMnemóni
co Resultado
- PrivateM#todos privados solo puede ser vistosy utili!ados por "#todos de la "is"aclase$
PublicM#todos públicos puede ser vistos yutili!ados por "#todos de la "is"a clase yde otras clases$ Por o"isi% los "#todosso p*blicos$
'Protecte
dR
M#todos protegidos puede ser vistos yutili!ados por "#todos de la "is"a clase ypor "#todos de clases derivadas osubclases$
= AbstractRM#todos abstractos o tieei"ple"etaci% e la clase ue seeucia, por lo tato, debe seri"ple"etados e subclases$
)taticRM#todos estáticos so *icos para toda la
clase, es decir, o perteece a i+*ee"plar u obeto de la clase, pero puede* No se estudiarn como m)todos en este curso
-
8/17/2019 6. Implementacion de clases-Formato.pptx
38/68
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
Constr'ctores$odas las clases tienen 'no o m/s m0todos 'sados para crear el objeto.Estos m0todos son llamados los constr'ctores 6ya 4'e constr'yen elobjeto7.
El constr'ctor es 'n m0todo especial 4'e sir,e para dar los ,aloresiniciales a los campos de 'n objeto en el momento en 4'e se crea.
En la mayora de los leng'ajes( el nombre del constr'ctor es siempre elnombre de la clase. #dem/s es preciso 4'e sea pLblico y 4'e no tenga
ningLn tipo o ,alor de retorno.
Como todos los m0todos( estos p'eden o no tener arg'mentos.
-
8/17/2019 6. Implementacion de clases-Formato.pptx
39/68
Ejemplo Persona S'ponga 4'e se 4'iere crear a la clase Persona
con los sig'ientes atrib'tos
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
40/68
Ejemplo: constr'ctor sin par/metrosEIF2 F!"D#ME"$OS DE I"FO%M&$IC#
#l crear 'n objeto Persona tendr/ el nombre
con ,alor de Winde*inidoX( ypeso y estat'racon ,alor de
Personita
o"bre> N N
apellido> N N
aoNaci"ieto> 0se
cedula> N N
Persona
peso> 0
estatura> 0
o"bre> ?ide@ido
class PersonaH private: string nombreJ
*loat pesoJ*loat estat'raJ
de*inición de 'n constr'ctor sinpar/metros
public:
Persona6 7H
nombre A Ninde*inidoNJpeso A Jestat'ra A J
K
-
8/17/2019 6. Implementacion de clases-Formato.pptx
41/68
Ejemplo: constr'ctor con par/metros
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
class PersonaH private: string nombreJ
*loat pesoJ*loat estat'raJ
de*inición de 'n constr'ctor sinpar/metros
public:
Persona6 7H
nombre A Ninde*inidoNJpeso A Jestat'ra A J
K
de*inición de 'n constr'ctor conpar/metros
Persona 6string 'n"ombre( *loat 'nPeso(*loat 'naEstat'ra7
H
nombre A 'n"ombreJpesoA 'nPesoJestat'ra A 'naEstat'raJK
K
a4' se p'eden colocar otros m0todosKJ *in de la clase
Se crea 'n objeto Persona con los ,alores
4'e contengan losidenti*icadores 'n"ombre('nPeso( 'naEstat'ra
-
8/17/2019 6. Implementacion de clases-Formato.pptx
42/68
)os atrib'tos deben seraccedidos por medio de los
m0todos
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
#trib'tos
m0todos
Objeto 9
mensajes
M0todos set y get
-
8/17/2019 6. Implementacion de clases-Formato.pptx
43/68
Encaps'lación )as clases tienen datos internos o atrib'tos
4'e g'ardan propiedades de los objetos Si estos atrib'tos necesitan ser accedidos
*'era de la clase( se re4'iere +acer 'so dem0todos 6set y get 7
Esto aseg'ra 4'e estos datos no p'edan sercambiados sin el conocimiento del objeto.
!no de los bene*icios de 'sar las *'ncionesset y get es 4'e el objeto p'ede reali1arciertas ,alidaciones para aseg'rarse 4'e eldato es ,/lido antes de almacenarlo.
)os atrib'tos son protegidos deinter*erencia y mal 'so por otros objetoseternos
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
Qe+c'lo
%adio
-
8/17/2019 6. Implementacion de clases-Formato.pptx
44/68
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
Com'nicación mediante m0todos
setCatidadCo"bustible 50$4.
Al obeto Carro2 se leevBa u "esae, coel ar+u"eto 50$4,para establecer sucatidad deco"bustible e 50$4
Al obeto Carro2 se leevBa u "esae, coel ar+u"eto 50$4,para establecer sucatidad deco"bustible e 50$4
Carro2 > Carro
cantidadCombustible
50.4
-
8/17/2019 6. Implementacion de clases-Formato.pptx
45/68
Com'nicación mediante M0todos
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
getilometraje 67
Al obeto Carro1 se leevBa u "esae paracosultarle por suilo"etrae actual$
Al obeto Carro1 se leevBa u "esae paracosultarle por suilo"etrae actual$
?ilometraje
Carro9 : Carro
+ilometra,e
9
-
8/17/2019 6. Implementacion de clases-Formato.pptx
46/68
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
M0todos set y get
Permiten obtener y
alterar en *ormaindi,id'al el ,alor de losatrib'tos.
!s'almente se de*inen
por cada atrib'to ydeben de*inirse dentrode la clase.
-
8/17/2019 6. Implementacion de clases-Formato.pptx
47/68
M0todos modi*icadores 6set7
Se encargan de modi*icar los atrib'tos de la clase.
S' principal *'nción es la de ,alidar los datos 4'e sepretenden asignar a las ,ariables( e,itando as la asignación
de ,alores no ,/lidos 4'e p'edan lle,ar a 'n estado deinconsistencia del objeto instanciado.
Ejemplo: clase 4'emaneje *ec+as y+oras
!n m0todo modi*icador debe ser capa1 de ,alidar el dato de entrada e impedir 4'e se
asignen ,alores in,/lidos como 'na +ora 2@o 'n mes 9;.
Estos m0todos tendr/n comonombre set seg'ido del nombredel atrib'to con la primera letra
mayLsc'la
set"ombre67
setFec+a67
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
48/68
M0todo set67 El m0todo set no de,'el,e ningLn ,alor 6,oid7( pero
recibe a tra,0s de s' par/metro 'n ,alor 4'e le asi!na alatrib'to.
El m0todo set cambia el estado del objeto. ,oid set"ombre 6string 'n"ombre7H nombre A 'n"ombreJK
,oid setPeso 6*loat 'nPeso7H pesoA 'nPesoJK
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
49/68
Ejemplo: m0todos set m0todos set ,oid set"ombre 6string p"ombre7 H
nombre A p"ombreJ K
,oid setPeso 6*loat 'nPeso7 H
pesoA 'nPesoJ K
,oid setEstat'ra 6*loat 'naEstat'ra7 Hestat'ra A 'naEstat'raJ K
KJ *in de la clase
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
class PersonaH private:
string nombreJ*loat pesoJ*loat estat'raJ
public:
m0todos constr'ctores
..
-
8/17/2019 6. Implementacion de clases-Formato.pptx
50/68
M0todos anali1adores 6get7
Se p'ede decir 4'e son m0todos de cons'lta( sir,enpara obtener el ,alor act'al almacenado en losatrib'tos de la clase pero "O modi*ican estosatrib'tos.
Cada atrib'to 4'e 4'iera ser accedido desde el eteriortendr/ 'n m0todo para leerlo
Estos m0todos tendr/n comonombre get seg'ido delnombre del atrib'to con laprimera letra mayLsc'la.
get"ombre67
getFec+a67
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
51/68
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
M0todo get67 El m0todo get de,'el,e el ,alor 4'e tiene 'n
atrib'to en partic'lar. Debe especi*icar el tipo del dato 4'e de,'el,e.
string get"ombre 6 7H ret'rn 6nombre7JK*loat getPeso 6 7
H ret'rn 6peso7JK
-
8/17/2019 6. Implementacion de clases-Formato.pptx
52/68
Ejemplo: m0todos getclass PersonaH private:
string nombreJ*loat pesoJ
*loat estat'raJ
public:
m0todos constr'ctores.. m0todos set..
m0todos getstring get"ombre 6 7 H
ret'rn6nombre7J K
*loat getPeso 6 7 H
ret'rn6peso7J K
*loat getEstat'ra6 7 Hret'rn6estat'ra7J K
KJ *in de la clase
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
53/68
M0todos destr'ctores)os destr'ctores son m0todos 4'e sir,en para eliminar 'n objeto de 'nadeterminada clase( liberando la memoria 'tili1ada por dic+o objeto.
C'ando se de*ine 'n destr'ctor para 'na clase( 0ste es llamadoa'tom/ticamente c'ando se abandona el /mbito en el 4'e *'e de*inido( ypor tanto no tienen por u) ser llamadas e-pl.citamente por elpro!ramador# Esto es as ecepto c'ando el objeto *'e creadodin/micamente con el operador neV
)os destr'ctores tienen el mismo nombre 4'e la clase( pero con el smbolo delante.
El destr'ctor no admitearg'mentos ni retorna 'n ,alor. Ejemplo
Persona67
H
Se m'rió la persona
KEIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
54/68
Ejemplo: m0todo destr'ctorclass PersonaH private:
string nombreJ*loat pesoJ
*loat estat'raJ
public:
m0todos constr'ctores..
m0todos set..
m0todos get.... m0todo destr'ctor
Persona67H Se destr'ye el objeto Persona KKJ *in de la clase
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
55/68
Ejemplo: clase Persona
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
)la,es inicial y *inal
class PersonaH private: string nombreJ
*loat pesoJ*loat estat'raJ
de*inición de 'n constr'ctor sinpar/metros
public:
Persona6 7H
nombre A Ninde*inidoNJpeso A Jestat'ra A J
K
de*inición de 'n constr'ctor conpar/metros
Persona 6string 'n"ombre( *loat 'nPeso(*loat 'naEstat'ra7
H
nombre A 'n"ombreJpesoA 'nPesoJestat'ra A 'naEstat'raJK
K
a4' se p'eden colocar otros m0todosKJ *in de la clase
P'nto y coma*inal
-
8/17/2019 6. Implementacion de clases-Formato.pptx
56/68
Ejemplo: clase Persona
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
class PersonaH private: string nombreJ
*loat pesoJ*loat estat'raJ
de*inición de 'n constr'ctor sinpar/metros
public:
Persona6 7Hnombre A Ninde*inidoNJpeso A Jestat'ra A J
K
de*inición de 'n constr'ctor conpar/metros
Persona 6string 'n"ombre( *loat 'nPeso(*loat 'naEstat'ra7
H
nombre A 'n"ombreJpesoA 'nPesoJestat'ra A 'naEstat'raJK
K
a4' se p'eden colocar otros m0todosKJ *in de la clase)la,es inicial
y *inal encada m0todo
-
8/17/2019 6. Implementacion de clases-Formato.pptx
57/68
Ejemplo: clase Persona
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
class PersonaH private: string nombreJ
*loat pesoJ*loat estat'raJ
de*inición de 'n constr'ctor sinpar/metros
public:
Persona6 7Hnombre A Ninde*inidoNJpeso A Jestat'ra A J
K
de*inición de 'n constr'ctor conpar/metros
Persona 6string 'n"ombre( *loat 'nPeso(*loat 'naEstat'ra7
H
nombre A 'n"ombreJpesoA 'nPesoJestat'ra A 'naEstat'raJK
K
a4' se p'eden colocar otros m0todosKJ *in de la clase
comentarios
-
8/17/2019 6. Implementacion de clases-Formato.pptx
58/68
Comentarios
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
Es teto 4'e se incl'ye en el código *'ente con el objeti,ode *acilitar s' legibilidad a los programadores.
"o tienen signi*icado alg'no para la ejec'ción de 'naaplicación o sea son ignorados por el compilador.
Ejemplos:
• identificación de la clase• atributos • int es e4'i,alente a entero• método de consulta o acceso • R Esto es 'n comentario 4'e ejempli*ica cómo se escriben
comentarios 4'e oc'pan ,arias lneas R
-
8/17/2019 6. Implementacion de clases-Formato.pptx
59/68
Clase Persona: !M)
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
60/68
Clase Persona: Ejemplo completo
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
class PersonaH private: string nombreJ
*loat pesoJ*loat estat'raJ
de*inición de 'n constr'ctor sinpar/metros
public:
Persona6 7Hnombre A Ninde*inidoNJpeso A Jestat'ra A J
K
de*inición de 'n constr'ctor conpar/metros
Persona 6string 'n"ombre( *loat 'nPeso(*loat 'naEstat'ra7
H
nombre A 'n"ombreJpesoA 'nPesoJestat'ra A 'naEstat'raJK
K
-
8/17/2019 6. Implementacion de clases-Formato.pptx
61/68
Clase Persona: Ejemplo completo m0todos set ,oid set"ombre 6string p"ombre7 H
nombre A p"ombreJ K
,oid setPeso 6*loat 'nPeso7 H
pesoA 'nPesoJ K
,oid setEstat'ra 6*loat 'naEstat'ra7Hestat'ra A 'naEstat'raJ K
m0todos getstring get"ombre 6 7 H
ret'rn6nombre7J K
*loat getPeso 6 7 H
ret'rn6peso7J K
*loat getEstat'ra6 7 Hret'rn6estat'ra7J K
Persona67H Se m'rió la persona K
KJ *in de la claseEIF2 F!"D#ME"$OS DE I"FO%M&$IC#
F#)$#" los m0todos de c/lc'lo
-
8/17/2019 6. Implementacion de clases-Formato.pptx
62/68
M0todos de c/lc'lo Son los m0todos 4'e permiten reali1ar di*erentes
operaciones sobre los objetos de la clase
Cómo calc'lamos la IMC de los objetos Persona
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
63/68
M0todos de c/lc'lo método !ue calcula el "#$ de una persona
*loat IMC67 H
ret'rn 6peso6estat'raRestat'ra77J K
%ec'erde 4'epeso y estat'rason atrib'tos de laclase Persona
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
64/68
En general )a sintais 4'e se 'sa para de*inir 'n m0todo es
la sig'iente:
8$ipoDe,'elto> 8identi*icador> 6\8Par/metros>7H 8instr'cciones>
K
Dentro de estas 8instr'cciones> se p'edeacceder a todos los miembros de*inidos en laclase( a la c'al pertenece el m0todo.
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
65/68
M0todos # s' ,e1 todo m0todo p'ede de,ol,er 'n ,alor como res'ltado de
+aber ejec'tado las 8instr'cciones>. En tal caso el tipo del ,alorde,'elto tiene 4'e coincidir con el especi*icado en 8$ipoDe,'elto>( yel m0todo tiene 4'e terminar con la cl/'s'la ret'rn 8,alor>
*loat IMC67 Hret'rn 6peso6estat'raRestat'ra77J
K
En caso 4'e se desee de*inir 'n m0todo 4'e no de,'el,a objeto alg'nose omite la cl/'s'la ret'rn y se especi*ica ,oid como 8$ipoDe,'elto>.
,oid setPeso 6*loat 'nPeso7 H pesoA 'nPesoJ K EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
-
8/17/2019 6. Implementacion de clases-Formato.pptx
66/68
M0todos Opcionalmente todo m0todo p'ede recibir en cada llamada 'na lista
de par/metros a los 4'e podr/ acceder en la ejec'ción de las8instr'cciones> del mismo. En 8par/metros> se indican los tipos ynombres de estos par/metros y es mediante estos nombres con los4'e se deber/ re*erirse a ellos en el c'erpo del m0todo
,oid setEstat'ra6*loat est7H estat'raAestJK
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
Para cambiar el ,alor del atrib'toestat'ra el m0todo debe conocer el n'e,o ,alor4'e se le desea asignar y como este "O es 'natrib'to DEYE ingresar como par/metro
-
8/17/2019 6. Implementacion de clases-Formato.pptx
67/68
M0todos Cómo calc'lamos el tipo de obesidad de
n'estro problema %ec'erden 4'e la *órm'la depende del IMC de la
persona
EIF2 F!"D#ME"$OS DE I"FO%M&$IC#
ensarlo como&'('
"ecesitamos 'na
estr'ct'ra4'e nos permita identi*icar el rango en el4'e se enc'entra el IMC
del objeto
-
8/17/2019 6. Implementacion de clases-Formato.pptx
68/68
!so did/ctico c'rso EIF 2Esc'ela de In*orm/tica
!ni,ersidad "acionalCosta %ica
Proyecto 0151-14 UNA – Mora & Coto, 2015