La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación Orientada a Objetos

Presentaciones similares


Presentación del tema: "Programación Orientada a Objetos"— Transcripción de la presentación:

1 Programación Orientada a Objetos
Proyecto UNA – Mora & Coto, 2015 Programación Orientada a Objetos Compilado por: Mag. Sonia Mora. Dra. Mayela Coto. EIF200 FUNDAMENTOS DE INFORMÁTICA

2 EIF200 FUNDAMENTOS DE INFORMÁTICA
Programa Un programa orientado a objetos se resume en tres sucesos: Creación de objetos cuando se necesitan, mediante un mensaje de construcción a la clase. Intercambio de mensajes entre objetos o entre usuario de objeto y objeto. Eliminar objetos cuando no se necesitan, mediante un mensaje de destrucción a la clase. EIF200 FUNDAMENTOS DE INFORMÁTICA

3 Problema: Salud y obesidad
La obesidad es una enfermedad crónica originada por muchas causas y con numerosas complicaciones. Puede causar diversos trastornos de salud como enfermedades cardiovasculares, diabetes, apnea del sueño, padecimientos de la vesícula, esofagitis, osteartrosis, osteoporosis, esteatosis hepática, problemas ortopédicos y disfunciones renales. Muchas de estas complicaciones pueden llevar a la muerte. La obesidad se caracteriza por el exceso de grasa en el organismo y se presenta cuando el Indice de Masa Corporal en el adulto es mayor de 25 unidades. Se desea realizar una aplicación que permita calcular el nivel de obesidad de las personas. EIF200 FUNDAMENTOS DE INFORMÁTICA

4 Problema: Salud y obesidad
El nivel de obesidad se calcula de la siguiente forma: Primero se calcula el Índice de Masa Corporal (IMC) Después de tener los valores de IMC se aplica la siguiente tabla para conocer el nivel de obesidad Clasificación IMC Infrapeso < de 18.5 Peso Normal 18.5 a 24.9 Sobrepeso 25 a 29.9 Obesidad a 39.9 Obesidad Mórbida >40 EIF200 FUNDAMENTOS DE INFORMÁTICA

5 Problema: Salud y obesidad
Por ejemplo, un hombre o una mujer que pese 120 kilos y mida 1.65 metros, tiene el IMC igual a 44, es decir, Obesidad Mórbida , con un riesgo relativo muy alto para el desarrollo de enfermedades cardiovasculares.                                 Peso       =        120 kg        =     120 kg     = 44                              Estatura²          1.65 x 1.65              EJERCICIO: Defina una clase que permita desarrollar la aplicación para calcular el grado de obesidad de una persona. EIF200 FUNDAMENTOS DE INFORMÁTICA

6 EIF200 FUNDAMENTOS DE INFORMÁTICA
Ejemplo Persona ¿Qué atributos requiere la clase Persona para el desarrollo de la aplicación? EIF200 FUNDAMENTOS DE INFORMÁTICA

7 Sintaxis para la definición de clases
class nombre_de_la_clase { // zona de atributos; // zona de constructores y destructores; // zona de otros métodos; }; En mayúscula y singular Indentación MUY importante EIF200 FUNDAMENTOS DE INFORMÁTICA

8 Ejemplo: partes de una clase
Nombre de la clase Ejemplo: partes de una clase class Persona { private: string nombre; float peso; float estatura; // definición de un constructor sin parámetros public: Persona( ) nombre = "indefinido"; peso = 0; estatura = 0; } // definición de un constructor con parámetros Persona (string unNombre, float unPeso, float unaEstatura) { nombre = unNombre; peso= unPeso; estatura = unaEstatura;} } // aquí se pueden colocar otros métodos }; // fin de la clase Zona de atributos Zona de métodos EIF200 FUNDAMENTOS DE INFORMÁTICA

9 Ejemplo: partes de una clase
Sólo se puede acceder a ellos con las funciones miembros declaradas en el interior de la clase class Persona { private: string nombre; float peso; float estatura; // definición de un constructor sin parámetros public: Persona( ) nombre = "indefinido"; peso = 0; estatura = 0; } // definición de un constructor con parámetros Persona (string unNombre, float unPeso, float unaEstatura) { nombre = unNombre; peso= unPeso; estatura = unaEstatura;} } // aquí se pueden colocar otros métodos }; // fin de la clase Pueden ser accedidos desde otras clases EIF200 FUNDAMENTOS DE INFORMÁTICA

10 EIF200 FUNDAMENTOS DE INFORMÁTICA
Zona de atributos class Persona { private: string nombre; float peso; float estatura; ……… ………. Los atributos se representan como campos y estos tienen identificadores En general, los identificadores son utilizados para nombrar las diferentes entidades presentes en una clase Campos variables, campos constants, etc. Nombres de métodos Clases, objetos EIF200 FUNDAMENTOS DE INFORMÁTICA

11 Visibilidad: Atributos*
Símbolo Mnemónico Resultado - Private Atributos privados solo pueden ser vistos y utilizados por métodos de la misma clase. Por omisión los atributos son privados. + Public Atributos públicos pueden ser vistos y utilizados por métodos de la misma clase y de otras clases. # Protected* Atributos protegidos pueden ser vistos y utilizados por métodos de la misma clase y por métodos de clases derivadas o subclases. _ Static* Atributos estáticos son únicos para toda la clase, es decir, no pertenecen a ningún ejemplar u objeto de la clase, pero pueden ser vistos por todos los objetos de la clase. * No se estudiarán como atributos en este curso EIF200 FUNDAMENTOS DE INFORMÁTICA

12 EIF200 FUNDAMENTOS DE INFORMÁTICA
Identificadores Son nombres simbólicos que se forman mediante una secuencia de letras y dígitos. En C++ El primer carácter de un identificador tiene que ser siempre una letra o un subrayado, el carácter subrayado se considera como una letra más. Un identificador no puede contener espacios en blanco ni otro carácter distinto a los citados. Caracteres especiales como * , : /. no son válidos C++ es sensible al uso de mayúsculas (case sensitive) Por ejemplo: Resultado es diferente de resultado y es diferente de resulTado. No puede ser una palabra clave o reservada EIF200 FUNDAMENTOS DE INFORMÁTICA

13 EIF200 FUNDAMENTOS DE INFORMÁTICA
Ejemplos tipo Color pelo 35 valor_promedio maximo% sal_prome 82T35Gd1 Me12_zc diaFeriado _pagoTotal EIF200 FUNDAMENTOS DE INFORMÁTICA

14 EIF200 FUNDAMENTOS DE INFORMÁTICA
Ejemplos tipo correcto Color pelo incorrecto No se permiten blancos 35 Debe iniciar con letras o _ valor_promedio maximo% No se permite % sal_prome 82T35Gd1 Me12_zc diaFeriado _pagoTotal EIF200 FUNDAMENTOS DE INFORMÁTICA

15 EIF200 FUNDAMENTOS DE INFORMÁTICA
Palabras reservadas Algunos identificadores tienen un uso especial en los lenguajes de programación. Estos identificadores son conocidos como palabras claves o palabras reservadas (key words o reserved words), ya que el programador no puede darle un uso diferente al que el lenguaje les confiere. Por ejemplo: en el caso de class su objetivo es informarle al compilador que el identificador Persona describe una clase; mientras que string permite “informar” que los atributos nombre y apellidos almacenarán cadenas de caracteres. EIF200 FUNDAMENTOS DE INFORMÁTICA

16 EIF200 FUNDAMENTOS DE INFORMÁTICA
Palabras claves en C++ auto delete goto public this break do if register template case double inline return typedef match else int short union char enum long signed unsigned class extern new sizeof virtual const float overload static void continue for private struct volatile default friend protected switch while EIF200 FUNDAMENTOS DE INFORMÁTICA

17 EIF200 FUNDAMENTOS DE INFORMÁTICA
Identificadores Usar identificadores nemotécnicos (que sugieren el significado de la entidad que nombran). Por ejemplo, nombre, apellidos y Edad son mas significativos para la lectura que n, a y E. No sacrificar la legibilidad por la longitud de los identificadores. Utilizar identificadores pronunciables. Esto ayuda a la memorización de los nombres y a la explicación oral del código fuente. No utilizar fN en lugar de fechaNacimiento. Principios importantes sobre el uso de los identificadores que deben tenerse en cuenta son: EIF200 FUNDAMENTOS DE INFORMÁTICA

18 Reglas o convenciones básicas
Los identificadores se conforman con las 3 primeras letras significativas de cada palabra que lo conforma. La primera letra debe ir en minúscula y las palabras que la componen llevan la primera letra con mayúscula. Sin embargo, si la variable representa un dato simple y pequeño se usa esa palabra para representarla. Ejemplos: edad, suma, peso, país, etc. Ejemplos: Contenido de la variable Nombre representativo Salario bruto sin impuestos salBruSinImp Nombre del empleado nomEmp Impuesto sobre la renta impRen Aproximación polinomial exponencial aproPolExp EIF200 FUNDAMENTOS DE INFORMÁTICA

19 EIF200 FUNDAMENTOS DE INFORMÁTICA
Tipos de datos Una clase puede tener varios atributos de distintos tipos o naturaleza. Cada uno de los atributos está unido a un tipo de dato. Cuando se declara un atributo se debe escribir el tipo de dato al que pertenece. Esto se hace con dos propósitos: que la computadora conozca cuanto espacio de memoria asignar a cada atributo que se declare para reconocer que se están haciendo las cosas correctamente. Por ejemplo, si tengo que sumar dos atributos, esperaría que se sumaran número con número y no cadenas de caracteres con elementos de tipo de dato numérico. EIF200 FUNDAMENTOS DE INFORMÁTICA

20 EIF200 FUNDAMENTOS DE INFORMÁTICA
Tipos de datos El tipo de dato más sencillo es el carácter, que sería un solo elemento de una colección de 256 símbolos, que puede incluir: letras mayúsculas y minúsculas símbolos especiales como . , ; / & # ? * + [ ) La representación de los dígitos decimales como símbolo y no como valor, etc, La identificación que se utilizará para este tipo de datos es char. Por ejemplo se declara el atributo char tamannoCamisa; → puede contener ‘p’, ‘m’ o ‘g’. EIF200 FUNDAMENTOS DE INFORMÁTICA

21 EIF200 FUNDAMENTOS DE INFORMÁTICA
Tipos de datos De una generalización del tipo carácter, está la cadena de caracteres. Consiste en la reunión de una secuencia de caracteres. Se identifica con la palabra string. Ejemplo: string nombreEstudiante; puede contener “Armando Carro Matos” puede contener “Beatriz” EIF200 FUNDAMENTOS DE INFORMÁTICA

22 EIF200 FUNDAMENTOS DE INFORMÁTICA
Tipos de datos La representación de números tiene dos tipos diferentes, dependiendo si el número tiene decimales o no. Si el número no tiene decimales se le llama int (45, -3, 3545) Si tiene decimales se le llama float (45.3, , ) Ejemplos: int a; // a = 5 float b; // b= 7.678 EIF200 FUNDAMENTOS DE INFORMÁTICA

23 EIF200 FUNDAMENTOS DE INFORMÁTICA
Tipos de datos Un último tipo de dato es para valores lógicos, es decir, que puede valer solo falso o verdadero (true, false). Este tipo se identifica con el nombre de boolean. Ejemplo: bool si; // si = true; EIF200 FUNDAMENTOS DE INFORMÁTICA

24 Tipos de datos Se refiere al tipo de información que puede contener un atributo (identificador) Tipo Tamaño(bits) Rango Nota bool 8 (los siete bits superiores son ignorados) 0 o 1 Valor lógico char 8 De -128 a 127 (signed) o de 0 a 255 (unsigned) Un carácter o un entero pequeño short 16 De a (signed) o de 0 a (unsigned) El doble de un char int 32 De a (signed) o de 0 a (unsigned) Número entero long 32 (puede ser 64 en otras arquitecturas ) float De +/ x10-45 a x10+38 Número real double 64 De +/ x a x10+308 Número real de alta precisión

25 EIF200 FUNDAMENTOS DE INFORMÁTICA
Variables Tipo de identificador que se utilizan para conservar valores durante la ejecución de un programa. Permiten representar valores que no necesariamente se conocen cuando se escriben las aplicaciones y a su vez pueden cambiar durante la ejecución de éstas. Al contenido de las variables se tiene acceso a través de los nombres simbólicos (identificadores) que las identifican. Una variable debe tener un tipo asociado que es precisamente el tipo de los valores que ella puede conservar. EIF200 FUNDAMENTOS DE INFORMÁTICA

26 Declaración de variables
En la mayoría de los lenguajes las variables tienen que ser definidas o declaradas antes de ser utilizadas. Ejemplos: string nombre; float peso; float estatura; Son caracterizadas por un tipo y un nombre simbólico. El tipo determina: La clase de valores que puede tomar una variable (valores reales en el caso de peso) Las operaciones en las que puede participar (aritméticas en peso). EIF200 FUNDAMENTOS DE INFORMÁTICA

27 Asignación de variables
Asigna valores a las variables Utiliza el operador “=” <variable> = <expresión>; Es una instrucción que permite asignarle (“=”) a una variable (<variable>) el resultado de la evaluación de una expresión (<expresión>) La instrucción de asignación se ejecuta: se evalúa la expresión a la derecha del operador de asignación (=) el resultado de esta evaluación se le da como valor a la variable que está a la izquierda del operador Luego de haberse efectuado esta asignación de valores a la variable de la izquierda este valor sustituye cualquier otro que hubiera tenido con anterioridad la variable. Nota: Es importante diferenciar este operador de asignación con el utilizado en las igualdades matemáticas. EIF200 FUNDAMENTOS DE INFORMÁTICA

28 EIF200 FUNDAMENTOS DE INFORMÁTICA
Asignaciones identificador = expresión; Expresión Debe ser evaluada y resultar del tipo del identificador Puede ser aritmética, lógica, condicional. EIF200 FUNDAMENTOS DE INFORMÁTICA

29 Expresiones y Operadores
Un operador es un carácter o grupo de caracteres que actúa sobre uno, dos o más operandos para realizar una determinada operación con un determinado resultado. Pueden ser: unarios, binarios y ternarios Un operando es el valor constante o literal, el contenido de una variable (objeto), el resultado de la invocación de un método, el resultado de la evaluación de una operación, etc. EIF200 FUNDAMENTOS DE INFORMÁTICA

30 Expresiones y Operadores
Ejemplos de operadores de la mayoría de los lenguajes: 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 entera menos unario - más unario + EIF200 FUNDAMENTOS DE INFORMÁTICA

31 Expresiones y Operadores
Ejemplos: asignación resultado x1 = 4+-2 * – 2*3; x2 = (4+-2) * – (2*3); x3 = 17/2; x4= 17.0/2; x5= 12 % 2; x6 = 5 % 2; 7x = true and false: EIF200 FUNDAMENTOS DE INFORMÁTICA

32 Expresiones y Operadores
Ejemplos: asignación resultado x1 = 4+-2 * – 2*3; -2 x2 = (4+-2) * – (2*3); 14 x3 = 17/2 8 x4= 17.0/2 8.5 x5= 12 % 2 x6 = 5 % 2 1 7x = true and false error EIF200 FUNDAMENTOS DE INFORMÁTICA

33 Ejemplos asignación de variables
int temperatura; int edadJuan; temperatura = -5; edadJuan = 25; edadJuan = edadJuan + 1; int edadPedro = 23; float peso = 60.5; char letra = 'a'; bool existe = true; string nombreJuan = “Juan“; string nombrePedro, nombreAna; nombrePedro = nombreJuan; nombreAna = “Ana“; EIF200 FUNDAMENTOS DE INFORMÁTICA

34 Otros Operadores de Asignación en C++
Operadores de asignación compuestos += -= *= /= %= peso = peso + 10; peso += 10; total = total*0.13 total *= 0.13; incremento(++) decremento (--) peso = peso + 1; peso++; peso+=1; valor = valor - 1; valor --; valor-=1; EIF200 FUNDAMENTOS DE INFORMÁTICA

35 Problema: Cálculo del tipo de obesidad
Ya tenemos los atributos necesarios para resolver el problema class Persona { private: string nombre; float peso; float estatura; ……… }; ¿Cómo realizamos los cálculos necesarios?, a través de qué mecanismos? EIF200 FUNDAMENTOS DE INFORMÁTICA

36 Métodos Existen básicamente 4 tipos de métodos:
Constructor y destructor Obtener y establecer (get y set) Método en donde se realizan cálculos Métodos privados EIF200 FUNDAMENTOS DE INFORMÁTICA

37 Visibilidad: Métodos*
Símbolo Mnemónico Resultado - Private Métodos privados solo pueden ser vistos y utilizados por métodos de la misma clase. + Public Métodos públicos pueden ser vistos y utilizados por métodos de la misma clase y de otras clases. Por omisión los métodos son públicos. # Protected* Métodos protegidos pueden ser vistos y utilizados por métodos de la misma clase y por métodos de clases derivadas o subclases. * Abstract* Métodos abstractos no tienen implementación en la clase que se enuncian, por lo tanto, deben ser implementados en subclases. _ Static* Métodos estáticos son únicos para toda la clase, es decir, no pertenecen a ningún ejemplar u objeto de la clase, pero pueden ser vistos y utilizados por todos los objetos de la clase. * No se estudiarán como métodos en este curso EIF200 FUNDAMENTOS DE INFORMÁTICA

38 EIF200 FUNDAMENTOS DE INFORMÁTICA
Constructores Todas las clases tienen uno o más métodos usados para crear el objeto. Estos métodos son llamados los constructores (ya que construyen el objeto). El constructor es un método especial que sirve para dar los valores iniciales a los campos de un objeto en el momento en que se crea. En la mayoría de los lenguajes, el nombre del constructor es siempre el nombre de la clase. Además es preciso que sea público y que no tenga ningún tipo o valor de retorno. Como todos los métodos, estos pueden o no tener argumentos. EIF200 FUNDAMENTOS DE INFORMÁTICA

39 EIF200 FUNDAMENTOS DE INFORMÁTICA
Ejemplo Persona Suponga que se quiere crear a la clase Persona con los siguientes atributos EIF200 FUNDAMENTOS DE INFORMÁTICA

40 Ejemplo: constructor sin parámetros
class Persona { private: string nombre; float peso; float estatura; // definición de un constructor sin parámetros public: Persona( ) nombre = "indefinido"; peso = 0; estatura = 0; } EIF200 FUNDAMENTOS DE INFORMÁTICA Al crear un objeto Persona tendrá el nombre con valor de “indefinido”, y peso y estatura con valor de 0 Persona peso: 0 estatura: 0 nombre: “indefinido " Personita nombre: " " apellido: " " annoNacimiento: 0 cedula: " " sexo: ' '

41 Ejemplo: constructor con parámetros
class Persona { private: string nombre; float peso; float estatura; // definición de un constructor sin parámetros public: Persona( ) nombre = "indefinido"; peso = 0; estatura = 0; } // definición de un constructor con parámetros Persona (string unNombre, float unPeso, float unaEstatura) { nombre = unNombre; peso= unPeso; estatura = unaEstatura;} } // aquí se pueden colocar otros métodos }; // fin de la clase Se crea un objeto Persona con los valores que contengan los identificadores unNombre, unPeso, unaEstatura EIF200 FUNDAMENTOS DE INFORMÁTICA

42 Los atributos deben ser accedidos por medio de los métodos
Métodos set y get Objeto 1 Los atributos deben ser accedidos por medio de los métodos Atributos métodos mensajes EIF200 FUNDAMENTOS DE INFORMÁTICA

43 EIF200 FUNDAMENTOS DE INFORMÁTICA
Encapsulación Radio Las clases tienen datos internos o atributos que guardan propiedades de los objetos Si estos atributos necesitan ser accedidos fuera de la clase, se requiere hacer uso de métodos (set y get) Esto asegura que estos datos no puedan ser cambiados sin el conocimiento del objeto. Uno de los beneficios de usar las funciones set y get es que el objeto puede realizar ciertas validaciones para asegurarse que el dato es válido antes de almacenarlo. Los atributos son protegidos de interferencia y mal uso por otros objetos externos Vehículo EIF200 FUNDAMENTOS DE INFORMÁTICA

44 Comunicación mediante métodos
Al objeto Carro2 se le envía un mensaje, con el argumento 50.4, para establecer su cantidad de combustible en 50.4 Carro2 : Carro setCantidadCombustible (50.4) cantidadCombustible 50.4 EIF200 FUNDAMENTOS DE INFORMÁTICA

45 Comunicación mediante métodos
Al objeto Carro1 se le envía un mensaje para consultarle por su kilometraje actual. Carro1 : Carro kilometraje getKilometraje () kilometraje EIF200 FUNDAMENTOS DE INFORMÁTICA

46 EIF200 FUNDAMENTOS DE INFORMÁTICA
Métodos set y get Permiten obtener y alterar en forma individual el valor de los atributos. Usualmente se definen por cada atributo y deben definirse dentro de la clase. EIF200 FUNDAMENTOS DE INFORMÁTICA

47 Métodos modificadores (set)
Se encargan de modificar los atributos de la clase. Su principal función es la de validar los datos que se pretenden asignar a las variables, evitando así la asignación de valores no válidos que puedan llevar a un estado de inconsistencia del objeto instanciado. Ejemplo: clase que maneje fechas y horas Un método modificador debe ser capaz de validar el dato de entrada e impedir que se asignen valores inválidos como una hora 26 o un mes 14. Estos métodos tendrán como nombre set seguido del nombre del atributo con la primera letra mayúscula setNombre() setFecha() EIF200 FUNDAMENTOS DE INFORMÁTICA

48 EIF200 FUNDAMENTOS DE INFORMÁTICA
Método set() El método set no devuelve ningún valor (void), pero recibe a través de su parámetro un valor que le asigna al atributo. El método set cambia el estado del objeto. void setNombre (string unNombre) { nombre = unNombre; } void setPeso (float unPeso) peso= unPeso; EIF200 FUNDAMENTOS DE INFORMÁTICA

49 EIF200 FUNDAMENTOS DE INFORMÁTICA
Ejemplo: métodos set class Persona { private: string nombre; float peso; float estatura; public: // métodos constructores ……. // métodos set void setNombre (string pNombre) { nombre = pNombre; } void setPeso (float unPeso) { peso= unPeso; } void setEstatura (float unaEstatura) { estatura = unaEstatura; } …… }; // fin de la clase EIF200 FUNDAMENTOS DE INFORMÁTICA

50 Métodos analizadores (get)
Se puede decir que son métodos de consulta, sirven para obtener el valor actual almacenado en los atributos de la clase pero NO modifican estos atributos. Cada atributo que quiera ser accedido desde el exterior tendrá un método para leerlo Estos métodos tendrán como nombre get seguido del nombre del atributo con la primera letra mayúscula. getNombre() getFecha() EIF200 FUNDAMENTOS DE INFORMÁTICA

51 EIF200 FUNDAMENTOS DE INFORMÁTICA
Método get() El método get devuelve el valor que tiene un atributo en particular. Debe especificar el tipo del dato que devuelve. string getNombre ( ) { return (nombre); } float getPeso ( ) return (peso); EIF200 FUNDAMENTOS DE INFORMÁTICA

52 EIF200 FUNDAMENTOS DE INFORMÁTICA
Ejemplo: métodos get class Persona { private: string nombre; float peso; float estatura; public: // métodos constructores ……. // métodos set // métodos get string getNombre ( ) { return(nombre); } float getPeso ( ) { return(peso); } float getEstatura( ) { return(estatura); } …… }; // fin de la clase EIF200 FUNDAMENTOS DE INFORMÁTICA

53 EIF200 FUNDAMENTOS DE INFORMÁTICA
Métodos destructores Los destructores son métodos que sirven para eliminar un objeto de una determinada clase, liberando la memoria utilizada por dicho objeto. Cuando se define un destructor para una clase, éste es llamado automáticamente cuando se abandona el ámbito en el que fue definido, y por tanto no tienen por qué ser llamadas explícitamente por el programador. Esto es así excepto cuando el objeto fue creado dinámicamente con el operador new Los destructores tienen el mismo nombre que la clase, pero con el símbolo ~ delante. El destructor no admite argumentos ni retorna un valor. Ejemplo ~Persona() { //Se murió la persona } EIF200 FUNDAMENTOS DE INFORMÁTICA

54 Ejemplo: método destructor
class Persona { private: string nombre; float peso; float estatura; public: // métodos constructores ……. // métodos set // métodos get ….. …… // método destructor ~Persona() { //Se destruye el objeto Persona } }; // fin de la clase EIF200 FUNDAMENTOS DE INFORMÁTICA

55 Ejemplo: clase Persona
class Persona { private: string nombre; float peso; float estatura; // definición de un constructor sin parámetros public: Persona( ) nombre = "indefinido"; peso = 0; estatura = 0; } Llaves inicial y final // definición de un constructor con parámetros Persona (string unNombre, float unPeso, float unaEstatura) { nombre = unNombre; peso= unPeso; estatura = unaEstatura;} } // aquí se pueden colocar otros métodos }; // fin de la clase Punto y coma final EIF200 FUNDAMENTOS DE INFORMÁTICA

56 Ejemplo: clase Persona
class Persona { private: string nombre; float peso; float estatura; // definición de un constructor sin parámetros public: Persona( ) nombre = "indefinido"; peso = 0; estatura = 0; } // definición de un constructor con parámetros Persona (string unNombre, float unPeso, float unaEstatura) { nombre = unNombre; peso= unPeso; estatura = unaEstatura;} } // aquí se pueden colocar otros métodos }; // fin de la clase Llaves inicial y final en cada método EIF200 FUNDAMENTOS DE INFORMÁTICA

57 Ejemplo: clase Persona
class Persona { private: string nombre; float peso; float estatura; // definición de un constructor sin parámetros public: Persona( ) nombre = "indefinido"; peso = 0; estatura = 0; } // definición de un constructor con parámetros Persona (string unNombre, float unPeso, float unaEstatura) { nombre = unNombre; peso= unPeso; estatura = unaEstatura;} } // aquí se pueden colocar otros métodos }; // fin de la clase comentarios EIF200 FUNDAMENTOS DE INFORMÁTICA

58 EIF200 FUNDAMENTOS DE INFORMÁTICA
Comentarios Es texto que se incluye en el código fuente con el objetivo de facilitar su legibilidad a los programadores. No tienen significado alguno para la ejecución de una aplicación o sea son ignorados por el compilador. Ejemplos: // identificación de la clase // atributos … // int es equivalente a entero // método de consulta o acceso … /* Esto es un comentario que ejemplifica cómo se escriben comentarios que ocupan varias líneas */ EIF200 FUNDAMENTOS DE INFORMÁTICA

59 EIF200 FUNDAMENTOS DE INFORMÁTICA
Clase Persona: UML EIF200 FUNDAMENTOS DE INFORMÁTICA

60 Clase Persona: Ejemplo completo
class Persona { private: string nombre; float peso; float estatura; // definición de un constructor sin parámetros public: Persona( ) nombre = "indefinido"; peso = 0; estatura = 0; } // definición de un constructor con parámetros Persona (string unNombre, float unPeso, float unaEstatura) { nombre = unNombre; peso= unPeso; estatura = unaEstatura;} } EIF200 FUNDAMENTOS DE INFORMÁTICA

61 Clase Persona: Ejemplo completo
// métodos get string getNombre ( ) { return(nombre); } float getPeso ( ) { return(peso); } float getEstatura( ) { return(estatura); } ~Persona() { //Se murió la persona } }; // fin de la clase // métodos set void setNombre (string pNombre) { nombre = pNombre; } void setPeso (float unPeso) { peso= unPeso; } void setEstatura (float unaEstatura) { estatura = unaEstatura; } FALTAN los métodos de cálculo!!! EIF200 FUNDAMENTOS DE INFORMÁTICA

62 EIF200 FUNDAMENTOS DE INFORMÁTICA
Métodos de cálculo Son los métodos que permiten realizar diferentes operaciones sobre los objetos de la clase ¿Cómo calculamos la IMC de los objetos Persona? EIF200 FUNDAMENTOS DE INFORMÁTICA

63 EIF200 FUNDAMENTOS DE INFORMÁTICA
Métodos de cálculo // método que calcula el IMC de una persona float IMC() { return (peso/(estatura*estatura)); } Recuerde que peso y estatura son atributos de la clase Persona EIF200 FUNDAMENTOS DE INFORMÁTICA

64 EIF200 FUNDAMENTOS DE INFORMÁTICA
En general… La sintaxis que se usa para definir un método es la siguiente: <TipoDevuelto> <identificador> ([<Parámetros>]) { <instrucciones> } Dentro de estas <instrucciones> se puede acceder a todos los miembros definidos en la clase, a la cual pertenece el método. EIF200 FUNDAMENTOS DE INFORMÁTICA

65 EIF200 FUNDAMENTOS DE INFORMÁTICA
Métodos A su vez todo método puede devolver un valor como resultado de haber ejecutado las <instrucciones>. En tal caso el tipo del valor devuelto tiene que coincidir con el especificado en <TipoDevuelto>, y el método tiene que terminar con la cláusula return <valor> float IMC() { return (peso/(estatura*estatura)); } En caso que se desee definir un método que no devuelva objeto alguno se omite la cláusula return y se especifica void como <TipoDevuelto>. void setPeso (float unPeso) { peso= unPeso; } EIF200 FUNDAMENTOS DE INFORMÁTICA

66 EIF200 FUNDAMENTOS DE INFORMÁTICA
Métodos Opcionalmente todo método puede recibir en cada llamada una lista de parámetros a los que podrá acceder en la ejecución de las <instrucciones> del mismo. En <parámetros> se indican los tipos y nombres de estos parámetros y es mediante estos nombres con los que se deberá referirse a ellos en el cuerpo del método void setEstatura(float est) { estatura=est; } Para cambiar el valor del atributo estatura el método debe conocer el nuevo valor que se le desea asignar y como este NO es un atributo DEBE ingresar como parámetro EIF200 FUNDAMENTOS DE INFORMÁTICA

67 Métodos ¿Cómo calculamos el tipo de obesidad de nuestro problema?
Recuerden que la fórmula depende del IMC de la persona Necesitamos una estructura que nos permita identificar el rango en el que se encuentra el IMC del objeto Pensarlo como TAREA EIF200 FUNDAMENTOS DE INFORMÁTICA

68 Uso didáctico curso EIF 200
Proyecto UNA – Mora & Coto, 2015 Uso didáctico curso EIF 200 Escuela de Informática Universidad Nacional Costa Rica EIF200 FUNDAMENTOS DE INFORMÁTICA


Descargar ppt "Programación Orientada a Objetos"

Presentaciones similares


Anuncios Google