Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJosé Ángel Vega Modificado hace 5 años
1
FUNDAMENTOS DE LA PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION I / 2019 ING. ASENCIO
2
PROGRAMACION ORIENTADA A OBJETOS
La Programación Orientada a Objetos (POO) es un paradigma de programación que se basa en modelar objetos, sus características, su funcionamiento y sus relaciones. Es una forma de diseño y una metodología de desarrollo de software. Ing. Asencio 2019
3
PROGRAMACION ORIENTADA A OBJETOS
La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación. Ing. Asencio 2019
4
COMO SE PIENSA EN TERMINOS DE OBJETOS
Es muy parecido a cómo lo haríamos en la vida real. Por ejemplo, si pensamos en un carro, diríamos que el carro es el elemento principal; que tiene una serie de características como el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, acelerar, frenar o parar. Ing. Asencio 2019
5
CLASES Una Clase es una definición que agrupa características similares y comportamiento común de una entidad, ya sea del mundo real o virtual. (futuros objetos). Se puede ver como una plantilla o un molde que define objetos, estos van a tener la misma estructura y el mismo comportamiento. Ing. Asencio 2019
6
CLASES Una clase por lo tanto es una definición de una categoría de objetos. Esta definición describe las características y operaciones fundamentes de los objetos que pertenecen a dicha clase: atributos y métodos. Entonces, podemos decir que un objeto carro pertenece a una clase automóvil (carros, camionetas, camiones, ……….) Ing. Asencio 2019
7
CLASES En C# una clase puede tener los siguientes miembros:
Campos de datos o atributos: - Constantes(campos de solo lectura) y - Variables Declaraciones: Constructores propiedades y métodos. Ing. Asencio 2019
8
REPRESENTACIÓN GRÁFICA (UML)
Ing. Asencio 2019
9
OBJETOS Un objeto es una colección de datos y una serie de rutinas, llamadas métodos, que pueden manipular estos datos. Los objetos tienen un estado (atributos) y un comportamiento (métodos) Los objetos representan cosas físicas o abstractas. Ejemplos de objetos: un estudiante, un círculo, un automóvil, una cuenta corriente, …. Ing. Asencio 2019
10
OBJETOS Los objetos poseen:
Atributos que lo definen (campos de datos). Son las características individuales que diferencian un objeto de otro. Métodos que definen lo que hacen (Comportamientos ) son las operaciones (acciones o funciones) definidas para los objetos Ing. Asencio 2019
11
GRAFICAMENTE Objeto Campo de dato 1 Campo de dato 2 Método 1 Método 2
Ing. Asencio 2019
12
EJEMPLO Objeto círculo Campo de dato: radio Método: Calcular area
Método: Calcular perimetro Ing. Asencio 2019
13
El campo de datos radio, es el atributo que caracteriza el objeto círculo.
El comportamiento (métodos) del objeto círculo permite calcular su área y su perímetro. Ing. Asencio 2019
14
Ing. Asencio 2019
15
PROGRAMACION ORIENTADA A OBJETOS
Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas, en términos de objetos, atributos, propiedades, métodos y otras técnicas como: Herencia, Abstracción, Polimorfismo, Encapsulamiento y Reutilización de Código. Ing. Asencio 2019
16
COMO SE PIENSA EN TERMINOS DE OBJETOS
Recordemos nuestro ejemplo del carro, decíamos que este tiene una serie de características como el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como ponerse en marcha, acelerar, frenar o parar. Ing. Asencio 2019
17
COMO SE PIENSA EN TERMINOS DE OBJETOS
Pues en un esquema POO el carro sería el objeto, las características serían los atributos o campos de dato como el color o el modelo y las funcionalidades serían los métodos asociadas como ponerse en marcha, acelerar, frenar o parar. Ing. Asencio 2019
18
COMO SE PIENSA EN TERMINOS DE OBJETOS
La idea fundamental de la orientación a objetos es combinar (encapsular) en una sola unidad tanto los datos como las funciones que operan (manipulan) sobre ellos. Ing. Asencio 2019
19
Al diseñar una clase, no se crea un objeto.
Un objeto es una instancia (Ejemplar) de la clase y, por consiguiente, puede haber muchos objetos de la misma clase. La creación de una variable específica de un tipo particular de clase se conoce como instanciación (creación de instancias) de esa clase. Ing. Asencio 2019
20
- Declarar variables de ese tipo y - Crear objetos de ese tipo.
Una clase tiene un nombre y especifica los miembros que pertenecen a ella. Una vez que se define una clase, el nombre de la misma se convierte en un nuevo tipo de datos y se puede utilizar para: - Declarar variables de ese tipo y - Crear objetos de ese tipo. Ing. Asencio 2019
21
Las clase de declaran con el siguiente formato: class Nombre {
// Cuerpo de la clase } El cuerpo de la clase define los miembros. Todos los miembros de la clase deben tener nombres distintos, excepto en el caso de sobrecarga de métodos. Los métodos sobrecargados, es decir, definidos mas de una vez deben tener una lista de argumentos diferentes. Ing. Asencio 2019
22
En el siguiente ejemplo, se define una clase de nombre Circulo que se utilizará para construir objetos del tipo Circulo. class Circulo { double radio; public double CalcularArea() return radio * radio * ; } Ing. Asencio 2019
23
CONSTRUCTORES DE INSTANCIA
Un constructor de instancia es un tipo especial de método que permite inicializar una instancia de una clase a valores definidos por sus datos. Se ejecutan automáticamente al crear una instancia de clase. El constructor tiene exactamente el mismo nombre de la clase a la que pertenece. Ing. Asencio 2019
24
Si una clase no tiene constructores, se utiliza un constructor por omisión o constructor por defecto que no inicializa los datos del objeto. La accesibilidad del constructor por defecto, excepto para clases abstractas, es public. Ing. Asencio 2019
25
public Circulo ( ) // Constructor por { // defecto }
class Circulo { double radio; public Circulo ( ) // Constructor por { // defecto } public double CalcularArea() return radio * radio * ; Ing. Asencio 2019
26
La clase Circulo no tiene un método Main ( ) y por consiguiente, no se puede ejecutar.
La clase Circulo es, simplemente, una definición que se utiliza para declarar y crear objetos del tipo Circulo. Ing. Asencio 2019
27
DECLARACION Y CREACION DE UN OBJETO
Anteriormente dijimos que una clase es una plantilla que define los datos y los métodos del objeto. Un objeto es una instancia de una clase Se pueden crear muchas instancias de una clase. La creación de una instancia se conoce como instanciación. Ing. Asencio 2019
28
Una clase puede tener muchos objetos diferentes clase Circulo
objeto 1 de Circulo objeto 2 de Circulo Ing. Asencio 2019
29
La sintaxis para declarar un objeto es: NombreClase nombreObjeto ;
Ejemplo: Circulo miCirculo ; La variable miCirculo es una instancia de la clase Circulo. Ing. Asencio 2019
30
La declaración no crea el objeto.
La declaración de un objeto simplemente asocia el objeto con una clase, haciendo al objeto una instancia de esa clase. La declaración no crea el objeto. Para crear el objeto se necesita utilizar el operador new con el propósito de indicar a la computadora que cree un objeto y asigne espacio de memoria para él. Ing. Asencio 2019
31
La sintaxis para crear un objeto es:
nombreObjeto = new NombreClase ( ) ; Ejemplo: miCirculo = new Circulo ( ) ; Esta sentencia, crea un objeto llamado miCirculo y le asigna memoria. Ing. Asencio 2019
32
DECLARACION E INSTANCIACION
Podemos combinar la declaración y la instanciación en una sola sentencia. La sintaxis es: NombreClase nombreObjeto = new NombreClase ( ) ; Ejemplo: Circulo miCirculo = new Circulo ( ) ; Ing. Asencio 2019
33
ACCESO A DATOS Por seguridad, los atributos o campos de datos de una clase son privados, por lo que son visibles únicamente dentro de la clase. Para poder tener acceso a los atributos desde fuera de la clase, se hace a través de las propiedades. Ing. Asencio 2019
34
PROPIEDADES Las propiedades son la interfaz publica de los campos de datos en una clase. Las propiedades proporcionan un modo de leer o asignar valores a campos privados a través de los métodos especiales de acceso a la propiedad, denominados get y set. Ing. Asencio 2019
35
Estos métodos de encapsulamiento se utilizan sólo cuando es apropiado entregar los datos a otro objeto que solicite la información. Es importante encapsular los atributos de una clase, para que los objetos sólo puedan entregar los valores que sean programados por nosotros y no por nadie más. Ing. Asencio 2019
36
get utiliza la palabra reservada return para devolver el valor del campo.
set utiliza la palabra reservada value que representa el valor a asignar al campo. Las propiedades son extensiones de los campos, por lo que se accede a ellas de la misma forma que a las variables. Ing. Asencio 2019
37
Para cada atributo debe definirse una propiedad.
Las propiedades NO pueden llamarse igual a los atributos, por eso el nombre de la propiedad debe iniciar con una mayúscula, para diferenciarse del atributo. Las propiedades tienen acceso público. Ing. Asencio 2019
38
PROPIEDAD DEL ATRIBUTO radio
class Circulo { double radio; public double Radio get return radio; } set radio = value; } //Aquí finaliza la prop. public double CalcularArea() return Radio*Radio*Math.PI; PROPIEDAD DEL ATRIBUTO radio Ing. Asencio 2019
39
double radio; public double Radio { get return radio; } set
radio = value; Ing. Asencio 2019
40
ACCESO METODOS Cuando se ha creado un objeto, se puede acceder a sus datos y métodos utilizando la siguiente notación: nombreObjeto.propiedad nombreObjeto.Metodo ( ) Ejemplo: miCirculo.Radio miCirculo.CalcularArea ( ) Ing. Asencio 2019
41
static void Main(string[] args) { Circulo miCirculo = new Circulo(); miCirculo.Radio = 5.0; double Area = miCirculo.CalcularArea(); Console.WriteLine("El area es: {0}",Area ); Console.ReadKey(); } Ing. Asencio 2019
42
UTILIZACION DE METODOS
Los métodos son los miembros de un tipo clase donde se especifican las acciones que son realizadas por un objeto de la misma. Una invocación a un método es una petición al método para que ejecute su acción y lo haga con el objeto mencionado La invocación de un método se denomina también, llamar al método o pasar un mensaje a un objeto. Ing. Asencio 2019
43
Existen dos tipos de métodos, aquellos que devuelven un valor único (Ej: ReadLine) y aquellos que ejecutan alguna acción distinta de devolver un único valor (Ej: WriteLine). Los métodos que realizan una acción distinta de devolver un valor se denomina métodos void. Ing. Asencio 2019
44
Cuando un programa llama a un método, el control del programa se transfiere al método llamado.
Un método llamado devuelve el control al llamador cuando se ejecuta su sentencia return o cuando se alcanza la llave de cierre ( } ). Ing. Asencio 2019
45
EJEMPLO public class MiClase { int miCampo; public MiClase(int valor)//Constructor miCampo = valor; } Ing. Asencio 2019
46
El constructor de una clase debe comenzar con un modificador de acceso, seguido por el nombre del constructor, luego irán sus argumentos entre paréntesis y, por último, el cuerpo del constructor. Cuando se crea un objeto de la clase se deben proporcionar también los argumentos requeridos por el constructor. Ing. Asencio 2019
47
Los constructores se pueden sobrecargar, lo que permite construir objetos con diferentes tipos iniciales de datos, es decir, usar para su construcción argumentos de diferente tipo. Ing. Asencio 2019
48
public Circulo(double r) radio = r; } public Circulo ( ) radio = 5.00;
public class Circulo { double radio; public Circulo(double r) radio = r; } public Circulo ( ) radio = 5.00; public double CalcularArea ( ) return radio * radio * ; Ing. Asencio 2019
49
miCirculo = new Circulo(6.0);
Para crear un nuevo objeto Circulo de radio 6.0 se puede utilizar la siguiente sentencia: miCirculo = new Circulo(6.0); La sentencia anterior, asigna un valor de 6.0 a miCirculo.radio. Si tenemos la siguiente sentencia: miCirculo = new Circulo(); Se crea un círculo utilizando el segundo constructor que asigna el radio por defecto 5.0 a miCirculo.radio Ing. Asencio 2019
50
static void Main(string[] args) { double area;
Circulo miCirculo = new Circulo(6.0); area = miCirculo.CalcularArea(); Console.WriteLine("{0}", area); miCirculo = new Circulo(); Console.ReadKey(); } Ing. Asencio 2019
51
OJO: Los constructores son métodos especiales que no requieren un tipo de retorno , ni incluso void. Ej: public class MiClase { int miCampo; public MiClase (int valor ) miCampo = valor; } Ing. Asencio 2019
52
MiClase miObjeto = new MiClase(5);
Si se desea crear un objeto de la clase MiClase, se debe proporcionar un valor entero que la clase utiliza para inicializar el campo de datos miCampo. Este entero es el único argumento del constructor de MiClase. MiClase miObjeto = new MiClase(5); Esta sentencia no solo crea un objeto de la clase MiClase, sino que inicializa el campo miCampo al valor 5. Ing. Asencio 2019
53
EJERCICIO Elabore un programa que cree cinco objetos círculos, de radios almacenados en una estructura de datos y visualice sus áreas. Crearemos una clase circulo que tendrá un constructor que recibirá como parámetro el radio. Los radios se almacenarán en un array. Los cinco objetos creados comparten los mismos métodos. Ing. Asencio 2019
54
class Circulo { public double radio; public Circulo(double r) radio = r; } public double CalcularArea() return radio * radio * ; Ing. Asencio 2019
55
static void Main(string[] args) { double area; double[] radios = new double[] { 1, 2, 3, 4, 5}; foreach (double ra in radios) Circulo miCirculo = new Circulo(ra); area = miCirculo.CalcularArea(); double r = miCirculo.radio; Console.WriteLine("Radio: {0}", r); Console.WriteLine("Area: {0}", area); } Console.ReadKey(); Ing. Asencio 2019
56
ENCAPSULAMIENTO Es una de las maneras más eficientes de mantener la seguridad en las aplicaciones. POO Clases --- Plano de un objeto --- Características y funcionalidades --- Atributos y Métodos ---- Ej: Persona: Atributos Nombre, Número de DUI, estatura, color de la piel, peso, …….. Métodos ---- Caminar, hablar, reír, gritar, pensar, … Ing. Asencio 2019
57
La POO encapsula datos (atributos) y comportamientos (métodos) en paquetes denominados objetos. La ocultación de la información como termino sinónimo, gestiona la visibilidad de los elementos de un programa. Datos y acciones se combinan en una sola entidad, es decir, en un objeto de la clase, y se ocultan los detalles de implementación. Ing. Asencio 2019
58
La POO encapsula datos y comportamientos en objetos
La POO encapsula datos y comportamientos en objetos. Los objetos tienen la propiedad de ocultación de la información. Esta propiedad significa que aunque los objetos puedan conocer como comunicarse unos con otros a través de interfaces bien definidas, no pueden conocer como están implementados otros objetos. Los detalles de la implementación están ocultos dentro de los propios objetos. Ing. Asencio 2019
59
PROPIEDADES En la Programación Orientada a Objetos, los atributos son privados, esto es para tener seguridad sobre los valores del objeto. De ahí que, el acceso a los campos o atributos no debe efectuarse directamente. se deben mantener los atributos o campos de datos privadas o protegidos, y si se desea exponer públicamente se deben usar las propiedades Ing. Asencio 2019
60
HERENCIA Es una de las propiedades más sobresalientes de la programación orientada a objetos. Es un mecanismo que sirve para definir objetos basados en otros existentes. En terminología C#, la clase existente se denomina superclase, clase base o clase padre. La clase derivada de la superclase se denomina subclase, clase hija, clase extendido o clase derivada. Ing. Asencio 2019
61
En C#, salvo la clase object, cada clase tiene una superclase.
La clase object no tiene ninguna superclase y es la última clase padre de todas las otras clases. Cuando se define una clase en C# y no se proporciona explícitamente ninguna clase padre, se supone implícitamente que System.Object es su clase padre. Ing. Asencio 2019
62
JERARQUIA DE CLASES Persona Empleado Estudiante Abogado Ingeniero
Ing. Asencio 2019
63
Aquí podemos ver la definición de una clase para estudiantes.
Un estudiante es una persona, por lo que se puede definir la clase Estudiante que deriva de la clase persona Una clase derivada es una clase que se define añadiendo variables de instancia y métodos a una clase existente. Ing. Asencio 2019
64
La clase Persona es la superclase y la clase Estudiante es la clase derivada.
Las clase derivadas tienen todas las variables de instancia y los métodos de la superclase, más las variables de instancia y métodos que se necesite añadir. Ing. Asencio 2019
65
SINTAXIS PARA LA DEFINICION DE UNA SUBCLASE
public class nombreClase : ClaseBase Ejemplos: public class Estudiante : Persona public class Empleado : Persona public class Ingeniero : Empleado La herencia es siempre transitiva, de modo que una clase puede heredar características de superclase de muchos niveles. Ing. Asencio 2019
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.