6. implementacion de clases-formato.pptx

Upload: jose-barrantes-araya

Post on 06-Jul-2018

212 views

Category:

Documents


0 download

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