Universidad Domingo Savio

Slides:



Advertisements
Presentaciones similares
Programación orientada a objetos en Visual Basic .NET
Advertisements

Métodos y parámetros.
Curso de java básico (scjp)
Curso de java básico (scjp)
C7 DESARROLLO DEL CORAZÓN Dr. José Roberto Martínez Abarca
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Definición de Clases y Variables de referencia.
Herencia en C#.
Fundamentos de la programación orientada a objetos
Creación y destrucción de objetos
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Arquitectura CLARO-TECNOTREE
El proceso de desarrollo de software
1.1 Concepto de Tipo de Datos Abstracto.
Informática II Prof. Dr. Gustavo Patiño MJ
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
UNIVERSIDAD LATINA (UNILA)
Aplicación del paradigma orientado a objetos
Diseño y programación de
PROGRAMACION ORIENTADA A OBJETOS
Programación Orientada a Objetos en Java
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Material de apoyo Unidad 2 Estructura de datos
Modificadores.
POO Java Módulo 3 Elementos de programas Identificadores
Lic. Rosemary Torrico Bascopé
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
SCJP Sun Certified Programmer for Java 6
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Sintaxis de C# (Declaraciones y Tipos)
Patrones Creacionales
Clases y objetos. La unidad fundamental del lenguaje Java es la clase, que proporciona la estructura de los objetos y mecanismos para fabricarlos, a partir.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Clases.
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Constructor  Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar.
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
Programación Orientada a Objetos
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Detalles Generales sobre Java
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
UNIVERSIDAD TECNICA DE BABAHOYO EXTENSION DE QUEVEDO  Espinales Lisseth G RUPO N º 2 Temas:  Herencia  Polimorfismo  Encapsulamiento  2 Ejemplos Estudiante.
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
HERENCIA.
Programación Orientada a Objetos: CLASES Y OBJETOS
Clases “ Es una Abstracción de un elemento del mundo real ”
Algunas Características de C++ no presentes en C Agustín J. González ELO-329.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Prof. Manuel B. Sánchez. Declaración de Objetos Una vez que la clase ha sido implementada se pueden declarar objetos como variables locales de métodos.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I Programación Orientada a Objetos 31/03/2017

Clases y Objetos en C# 31/03/2017

Agenda Representación de Clases Declaración de Clases Modificadores de Acceso Declaración de campos de instancia Declaración de métodos 31/03/2017

Representación de una clase 31/03/2017

Cómo se define una clase en C# Sintaxis: [atributos] [modificador_de_acceso] class nombre_de_la_clase [ : clase_base [ , interface(s) ] ] { Declaración_de_atributos Declaración_de_métodos } 31/03/2017

Ejemplo de una clase class Dado { public Random generador; public Dado() { generador = new Random(); } public int Lanzar() { int valor = generador.Next(1, 7); return valor; 31/03/2017

Creación y uso de objetos Las clases son sólo declaraciones. Los verdaderos actores de la Programación Orientada a Objetos son los objetos. Una vez declarada una clase, podemos utilizar el nombre de la clase como un nuevo Tipo. Por lo que podemos declarar una variable de referencia a un objeto que sea del tipo de la clase. 31/03/2017

Creación y uso de objetos Dado d; Declara un objeto, d, que es una instancia de la clase Dado. Una instancia de un objeto es una variable de referencia, por lo tanto los datos del objeto se almacenan en el montículo (heap). Sin embargo el enunciado anterior no crea el objeto. Es necesario utilizar el operador new Dado d1 = new Dado(); Dado d2; d2 = new Dado(); 31/03/2017

Creación y uso de objetos Una vez que la instancia del objeto está definido, podemos acceder a los campos del objeto mediante el operador . int n = d1.Lanzar(); Console.WriteLine(d2.Lanzar()); 31/03/2017

Modificadores de visibilidad Los atributos y los métodos pueden tener modificadores, que indican los niveles de acceso que otros métodos pueden tener sobre ellos. C# cuenta con un conjunto de modificadores de visibilidad. 31/03/2017

Modificadores de Acceso de C# Modificador de acceso Restricción public Sin restricciones. Los miembros marcados como public están visibles a cualquier método de la clase private Los miembros de una clase A marcados como private son accesibles sólo a los métodos de la clase A. protected Los miembros de una clase A marcados protected pueden ser accedidos por los métodos de la clase A y también por los métodos de las clases derivadas de la clase A. 31/03/2017

Modificadores de Acceso de C# Modificador de acceso Restricción internal Los miembros de una clase A marcados internal pueden ser accedidos por los métodos de cualquier clase en el ensamblado (assembly) de A. protected internal Los miembros de una clase A marcados protected internal pueden ser accedidos por los métodos de la clase A y también por los métodos de las clases derivadas de la clase A, así como por los métodos de cualquier clase en el ensamblado (assembly) de A. Esto equivale a protected OR internal. 31/03/2017

Laboratorio 3: Encapsulamiento Modifique la clase DemoDado para generar el número aleatorio directamente, sin llamar al método Lanzar(): Console.WriteLine("Al lanzar el dado cayó {0}", d.generador.Next(1,7)); 31/03/2017

Laboratorio 3: Encapsulamiento Modifique el acceso al campo de instancia generador clase haciendo su acceso privado: private Random generador; Compile y ejecute el programa. ¿Qué sucedió? Vuelva a escribir el código para que se invoque al método Lanzar(). Console.WriteLine("Al lanzar el dado cayó {0}", d.Lanzar()); 31/03/2017

Encapsulamiento La recomendación es hacer que los campos de instancia tengan visibilidad privada, manteniéndolos en secreto, mientras que los métodos tengan visibilidad pública. En algunas ocasiones se puede requerir que un método tenga visibilidad privada. 31/03/2017

Declarando un campo de instancia Los campos de instancia almacenan los valores de los atributos que forman parte del estado de los objetos de una clase. Cada objeto almacenará por separado los valores de sus campos. Los campos de instancia de una clase pueden ser de lectura y escritura, de sólo lectura o de sólo escritura. 31/03/2017

Accediendo un campo de instancia. Para acceder un campo de instancia es necesario crear previamente un objeto (o instancia) de la clase. Para acceder a los campos de instancia se utiliza la siguiente sintaxis: Nombre_instancia.nombre_campo 31/03/2017

Métodos de instancia Los métodos son a las clases lo que los verbos son a las oraciones. Indican las acciones que definen el comportamiento de los objetos de la clase. Un método define una acción específica o un cálculo. Un método es identificado por su firma (signature), que consiste del nombre del método y el número y tipos de datos de sus parámetros. Además, un método tiene un valor de retorno, o la palabra reservada void si no se retorna nada, y una lista de modificadores que determina su accesibilidad y comportamiento polimórfico. 31/03/2017

Ejemplo de método public int Lanzar() { int valor = generador.Next(1, 7); return valor; } 31/03/2017

Parámetros Para poder realizar su acción o cálculo un método puede requerir información adicional que será enviada por el código que invoque el método. En el ejemplo anterior, el método Lanzar() no tiene parámetros. Sin embargo, un método puede tener cualquier número de parámetros. 31/03/2017

Métodos con parámetros public void Depositar(Decimal cantidad) { saldo = saldo + cantidad; } public void Transferir(double cantidad, CuentaBancaria otraCuenta) { if (Retirar(cantidad) == true) { otraCuenta.Depositar(cantidad); 31/03/2017

Métodos que retornan un valor public double GetSaldo() { return saldo; } public bool Retirar(double cantidad) { boolean seEfectuoRetiro; if (saldo >= cantidad) { saldo = saldo - cantidad; seEfectuoRetiro = true; } else { seEfectuoRetiro = false; return seEfectuoRetiro; 31/03/2017

Sobrecarga de métodos public CuentaBancaria() { saldo = 0.0; } public CuentaBancaria(double nuevoSaldo) { saldo = nuevoSaldo; 31/03/2017

Métodos get y set ¿Si los atributos son privados cómo otros objetos pueden acceder a ellos ? Los Métodos selectores (métodos get) devuelven todo el o parte del estado de un objeto encapsulado. Los métodos modificadores (métodos set) cambian todo el o parte del estado de un objeto encapsulado. 31/03/2017

Alcance Las variables declaradas dentro de un método, constructor u otro bloque de código no pueden ser utilizadas en toda la clase. El Alcance de una variable se refiere a la parte de un programa donde puede ser utilizada una variable. Una variable sólo puede ser utilizada en dentro del bloque de código donde ha sido definida. Así, dependiendo de donde estén declaradas, una variable puede tener alcance de clase o puede ser una variable local. 31/03/2017

Ejemplo de alcance class MiClase { int x; public void UnMetodo(int a) { Console.WriteLine(“{0}\t{1}”,x, this.x); if (a > 0) { int x = 5; Console.WriteLine(“{0}\t{1}”,x, a); } 31/03/2017

Constructores Un constructor es un método especial que es invocado automáticamente cuando se instancia (crea) un objeto. Los constructores frecuentemente se utilizan para inicializar las variables de atributo de un objeto. 31/03/2017

Ejemplo de constructor class Dado { public Random generador; public Dado() { generador = new Random(); } public int Lanzar() { int valor = generador.Next(1, 7); return valor; 31/03/2017

Constructores Como con los métodos, es posible sobrecargar los constructores, incluyendo múltiples constructores en una clase, cada uno con el mismo nombre y una serie diferente de argumentos. 31/03/2017

Constructor predeterminado Cuando el compilador encuentra una clase que no tiene un constructor explícitamente definido, inserta un constructor predeterminado. Por lo tanto toda clase tiene un constructor. El constructor predeterminado no recibe argumentos. Se recomienda, declarar constructores dentro de una clase para evitar que el compilador inserte un constructor predeterminado. 31/03/2017

La referencia this La palabra reservada this hace referencia a la instancia actual de un objeto. La referencia this es una referencia oculta que se pasa a todos los métodos no estáticos de una clase. Cada método puede hacer referencia a los otros métodos y variables de instancia de ese objeto por medio de la referencia this. 31/03/2017

Usos de la referencia this Por lo general se utiliza para calificar miembros de instancia que pueden ser ocultados por los parámetros: Public CuentaBancaria(decimal saldo) { this.saldo = saldo; } 31/03/2017

Usos de la referencia this También se puede utilizar para pasar el objeto actual como un parámetro a otro objeto: class miClase { public void MiMetodo(OtraClase otroObjeto) { otroObjeto.OtroMetodo(this); } 31/03/2017

Usos de la referencia this Otro uso es para llamar a un constructor sobrecargado desde otro constructor: class CuentaBancaria { private decimal saldo; public CuentaBancaria() : this(0) { } public CuentaBancaria(decimal saldoInicial) { this.saldo = saldoInicial; … 31/03/2017

Usos de la referencia this Finalmente, la referencia this se puede utilizar para invocar explícitamente métodos y miembros de clase, como una forma de documentación: public bool Retirar(double cantidad) { boolean seEfectuoRetiro; if (this.saldo >= cantidad) { this.saldo = this.saldo - cantidad; seEfectuoRetiro = true; } else { seEfectuoRetiro = false; } return seEfectuoRetiro; 31/03/2017

Encapsulamiento de datos con propiedades Las propiedades permiten a los cliente el acceso al estado de los objetos de la clase como si estuvieran accediendo directamente a los campos miembros, mientras realmente implementan ese acceso a través de un método de la clase. Por lo general el cliente desea acceder al estado del objeto y no trabajar con métodos. El diseñador de la clase quiere encapsular la implementación ocultando los campos miembros, proporcionando el acceso indirectamente a través de un método. 31/03/2017

Encapsulamiento de datos con propiedades Para declarar una propiedad, escriba el tipo y el nombre de la propiedad, seguido de un par de llaves. Dentro de las llaves se pueden declarar los métodos de acceso get y set. Ninguno de estos métodos de acceso tienen parámetros explícitos. Sin embargo, el método set tiene un parámetro implícito de nombre value, como se muestra a continuación. 31/03/2017

Ejemplo de propiedades Public class Curso { private string nombre; public string NombreDelCurso { get { return nombre; } set { nombre = value; 31/03/2017

Ejemplo de propiedades Curso mate = new Curso(); mate.NombreDelCurso = “Matemáticas I”; Console.WriteLine(“Nombre del curso: {0}”, mate.NombreDelCurso; 31/03/2017

Ejemplo de propiedades public class Empleado { private string nombre; public string Nombre { get { return nombre; } set { if (value == null) { throw new NullReferenceException(); } else { value = value.Trim(); if (value == “”) { throw new ApplicationException(“El nombre está en blanco”); nombre = value; 31/03/2017

Propiedades Puede incluirse sólo la parte del getter o del setter de una propiedad para cambiar la accesibilidad de la propiedad. Si se proporciona sólo el getter la propiedad será de sólo lectura. Si se proporciona sólo el setter, algo que es muy raro, la propiedad será de sólo escritura. 31/03/2017

Ejemplo public clase CuentaBancaria { private decimal saldo; public decimal Saldo { get { return saldo; } 31/03/2017

Propiedades como campos virtuales Algunas veces no se requiere contar con un campo miembro para implementar las propiedades. La propiedad podría calcular el valor a partir de otros campos miembros. 31/03/2017

Ejemplo public class Empleado { private string nombre; private string apellidos public string NombreCompleto { get { return nombre + “ “ + apellidos; } 31/03/2017