Practica 5 POO
Carlos NavaPráctica o problema8 de Junio de 2020
6.286 Palabras (26 Páginas)286 Visitas
INSTITUTO POLITECNICO NACIONAL[pic 1][pic 2]
ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
DEPARTAMENTO DE ENERGIA ELECTRICA
PARCIAL 2
PRACTICA No. 5
CLASE CLASS
PROGRAMACION ORIENTADA A OBJETOS.
ALUMNO:
Nava Munive Carlos
GRUPO:
2AV7
Tabla De Contenido
Introducción y objetivos
Marco Teórico
Programas:
Ejercicio 1
Ejercicio 2
Ejercicio 3
Ejercicio 4
Ejercicio 5
Ejercicio 6
Ejercicio 6.2
Ejercicio 7
Ejercicio 8
Conclusiones
Referencias
Introducción
Las clases permiten la construcción de tipos definidos por el usuario, extendiendo el conjunto de tipos elementales.
Las clases son una extensión y evolución natural de los struct. Cada clase contiene:
Datos (los datos miembro o campos) y las funciones que los manipulan (las funciones miembro o los métodos).
Mediante los campos especificamos las propiedades de los objetos y mediante los métodos se modela su comportamiento y las acciones que pueden realizar
Objetivo
Entender el funcionamiento de la clase class aplicándola de una manera correcta, aprendiendo cuál es su uso e importancia en la programación orientada a objetos.
Marco Teórico
Un representante de una clase es un objeto. Un objeto es, a una clase, lo que una variable a un tipo.
Class MiClase{
// Declaración de datos miembro
// Declaración de métodos
};
MiClase objeto1, objeto2;
En la declaración de una clase, para cada dato miembro (campo o método), debe especificarse mediante los modificadores de acceso el ámbito desde el cual puede accederse a dicho miembro.
Son:
-Private
Solo se permite su acceso desde las funciones miembro (métodos) de la clase.
-Public
Se permite su acceso desde cualquier punto que pueda usar la clase. Un dato público es accesible desde cualquier objeto de la clase.
-Protected
Se permite su uso en los métodos de la clase y en los de las clases derivadas mediante herencia.
Cada objeto tendrá sus propios datos miembros (excepto si se declaran static) y solo existe una copia de los métodos aplicable a todos los objetos de la clase.
Declaración de datos miembro:
class Polinomio {
private:
float * Coef; int Grado;
int MaxGrado;
// Declaración de métodos
};
Métodos de la clase:
Los métodos de una clase son funciones que sirven para manipular las variables de la clase, de ahí viene la primera característica relevante de la programación orientada a objetos que es el encapsulamiento, ya que en lo posible se va a tratar de que solo pueda accederse a una variable de clase a través de un método de la clase. Los métodos se declaran y definen de la misma manera que una función cualquiera en una aplicación convencional de C++, dicho de otro modo, en su firma expresan el tipo del valor de retorno, un nombre para el método y una lista de parámetros de entrada. Usualmente se hace la declaración de los métodos al interior de la clase, mientras que la definición se hace por fuera de la clase ayudándose del operador de resolución de ámbito :: para indicar que el método que se está definiendo pertenece a la clase en cuestión.
void MiClase::cambiarVar1(int a) //Definición del método por fuera de la clase { var1 = a; }
double MiClase::calcularArea(const double& x, const double& y) //Definición del método por fuera de la clase { return x*y*var2; }
Constructor de la clase
Es una función miembro que se ejecuta cuando se crea un nuevo objeto de esa clase,
- Se llama exactamente igual que esa clase
- NO retorna valor de ningún tipo
- Sin necesidad de indicar void.
- Se utilizan para inicializar valores a los datos miembros de la clase (variables)
- Por default un constructor no tiene ningún parámetro.
- Un constructor con parámetros nos puede ayudar a inicializar los valores del objeto cuando se crea este.
Destructor
Es una función miembro de la clase que se ejecuta siempre que un objeto.
Se utiliza el operador tilde ~
NO retorna valor, ni tiene ningún parámetro de entrada.
Programación Orientada a Objetos (POO)
La programación orientada a objetos es un enfoque de programación que combina datos y acciones asociadas (métodos) en estructuras lógicas (objetos). Este enfoque aumenta la capacidad para administrar la complejidad del software, lo cual resulta especialmente importante cuando se desarrollan y mantienen aplicaciones y estructuras de datos de gran tamaño. (MATLAB, 2018).
La programación Orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos en sus interacciones, para diseñar aplicaciones y programas informáticos.
Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos. (Ángel Roldán, 2017).
La POO es una forma especial de programar, este paradigma de programación es cercano a como expresamos las cosas en la vida real en nuestro día a día. Con la POO tenemos que aprender a pensar las cosas de una manera distinta para poder escribir nuestros programas en términos de objetos, propiedades y métodos. La POO tiene como principio que todo en la vida es un objeto programable, entonces para empezar a programar con este paradigma tendríamos que empezar con desarrollar nuestro pensamiento basado en objetos.
Características de un Objeto
• Polimorfismo:
En programación orientada a objetos, el polimorfismo se refiere a la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos. El único requisito que deben cumplir los objetos que se utilizan de manera polimórfica es saber responder al mensaje que se les envía.
La apariencia del código puede ser muy diferente dependiendo del lenguaje que se utilice, más allá de las obvias diferencias sintácticas.
Por ejemplo, en un lenguaje de programación que cuenta con un sistema de tipos dinámico (en los que las variables pueden contener datos de cualquier tipo u objetos de cualquier clase) como Smalltalk se requiere que los objetos que se utilizan de modo polimórfico sean parte de una jerarquía de clases.
• Herencia:
La herencia es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una clase existente. La herencia (a la que habitualmente se denomina subclase) proviene del hecho de que la subclase (la nueva clase creada) contiene los atributos y métodos de la clase primaria. La principal ventaja de la herencia es la capacidad para definir atributos y métodos nuevos para la subclase, que luego se aplican a los atributos y métodos heredados.
Esta particularidad permite crear una estructura jerárquica de clases cada vez más especializada. La gran ventaja es que uno ya no debe comenzar desde cero cuando desea especializar una clase existente. Como resultado, se pueden adquirir bibliotecas de clases que ofrecen una base que puede especializarse a voluntad (la compañía que vende estas clases tiende a proteger las datos miembro usando la encapsulación).
• Encapsulamiento:
La encapsulación es un mecanismo que consiste en organizar datos y métodos de una estructura, conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un objeto.
• Abstracción:
La abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan. En programación, el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?" (Característica de caja negra). El común denominador en la evolución de los lenguajes de programación, desde los clásicos o imperativos hasta los orientados a objetos, ha sido el nivel de abstracción del que cada uno de ellos hace uso.
...