capÍtulos de progra… · los objetos son los elementos principales de construcción. la...

34
Fundamentos de Programación Ing. Bruno López Takeyas, M.C. http://www.itnuevolaredo.edu.mx/Takeyas 1 CAPÍTULOS 1.- INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS 4.- CLASES Y OBJETOS 2 1 2

Upload: others

Post on 30-Apr-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 1

CAPÍTULOS1.- INTRODUCCIÓN AL PARADIGMA ORIENTADO

A OBJETOS4.- CLASES Y OBJETOS

2

1

2

Page 2: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 2

3

Preguntas detonadoras

�¿Qué es una clase?�¿Qué es un objeto?�¿Representa lo mismo una clase que un objeto?�Diversos objetos creados a partir de la misma clase, ¿son

iguales?�¿Qué significa el término instancia?�¿Cómo se logra que un objeto almacene datos y también

realice acciones?�¿Qué es un atributo, propiedad y método?�¿Cuál es la diferencia entre atributo y propiedad?�¿Cómo se diseña el modelo de una aplicación orientada a

objetos?

� Microsoft Visual Studio (programación en C# .Net)

� Nclass (software para el diseño de clases)

� WizFlow (software para diseñar diagramas de flujo)

� Enlaces de descarga en:� http://www.itnuevolaredo.edu.mx/Takeyas/Materias/POO/descargas.htm

4

Descarga de utilerías y herramientas

3

4

Page 3: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 3

5

Programación Orientada a Objetos

� POO es un conjunto de técnicas que puedenutilizarse para desarrollar programaseficientemente.

� Los objetos son los elementos principales deconstrucción.

� La Orientación a Objetos (OO) es el estilodominante de programación, descripción ymodelado de hoy en dia.

6

La POO es …

“Un método de implementación en el que losprogramas se organizan como coleccionescooperativas de objetos, cada uno de los cualesrepresenta una instancia de alguna clase y cuyasclases son todas miembros de una jerarquía declases unidas mediante relaciones”

Grady Booch

5

6

Page 4: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 4

7

Programación Orientada a Objetos

8

Objetos en el mundo real

LavadoraTelevisión

Perro

Persona Factura

7

8

Page 5: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 5

9

�Los objetos poseen características quelos distinguen entre sí.

�Los objetos tienen acciones asociadasa ellos.

Podemos darnoscuenta que…

10

Ejemplo: PERRO� Características:

� Nombre: “FIDO”

� Raza: “Chihuahua”

� Color: “Café”

� ….etc…

� Acciones:

� Ladrar [“Guau Guau”]

� Comer [“Chomp Chomp”]

� Dormir [“Zzzzzzzz”]

� …etc…

9

10

Page 6: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 6

11

Todos los objetos tienen Estado, Comportamiento e Identidad

ESTADO COMPORTAMIENTO IDENTIDAD

Valor de suscaracterísticas(Atributos)

Acciones quepuede realizar(Métodos)

Pertenecea una clasey tiene unnombreúnico

12

AbstracciónLa abstracción se centra en las características esenciales de algún objeto, en relación a laperspectiva del observador.

11

12

Page 7: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 7

13

Encapsulamiento

� Permite incluir en una sola entidadinformación y operaciones que controlan dichainformación.

� Permite:

� Componentes públicos [Accesibles, Visibles].

� Componentes privados [No accesibles, Ocultos].

� Restricción de accesos indebidos.

14

Clase

� Es una descripción de lascaracterísticas y acciones para un tipode objetos.

� Una clase NO es un objeto. Es solouna plantilla, plano, molde odefinición para crear objetos.

13

14

Page 8: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 8

15

Clase

� Contiene todas las características comunes de ese conjunto de objetos

� Clase = Modelo = Plantilla = Esquema = Descripción de la anatomía de los objetos.

� A partir de una clase se pueden crear muchosobjetos independientes con las mismascaracterísticas.

16

Objeto

� Unidad que combina datos y funciones.� Datos = Atributos = Características

� Funciones = Métodos = Procedimientos =Acciones

� Un objeto es creado a partir de una clase.

� Los datos y funciones están Encapsulados.

� Posee un nombre único (identificador).

� Un objeto es del tipo de una clase

� “Un objeto es la instancia de una clase”

� Un objeto es un ejemplar específico creado con la estructura de una clase.

15

16

Page 9: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 9

17

Instancia� Es la creación o manifestación concreta de un

objeto a partir de su clase

18

Clases y Objetos� “FIDO” es UN “PERRO”

� “FIDO” es del TIPO “PERRO”

� “FIDO” es un OBJETO

� “PERRO” es la CLASE de “FIDO”

� “CHESTER” es OTRO “PERRO”

� “CHESTER” también es del TIPO “PERRO”

� “CHESTER” es otro OBJETO

� “PERRO” también es la clase de “CHESTER”

17

18

Page 10: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 10

Clases y objetos

� Una clase es básicamente un plano para un tipo dedatos personalizado.

� Cuando se define una clase, se utiliza cargándolaen la memoria.

� Una clase que se ha cargado en la memoria sedenomina objeto o instancia.

� Se crea una instancia de una clase utilizando lapalabra clave de C# new

19

Clases en UML� Cada clase se representa en un rectángulo con tres

compartimentos:

� Nombre

� Atributos (datos)

� Métodos y propiedades

(acciones)

20

NombreDeLaClase

Aquí se escriben las características

Aquí se escriben las acciones

19

20

Page 11: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 11

21

Dentro de la clase…

� Se pueden declarar variables, propiedades,métodos, delegados, eventos, etc.

� Cada elemento puede tener un modificador deacceso.

� Un modificador de acceso especifica quienes estánautorizados a “ver” ese elemento.

� Si no se especifica ningún modificador de acceso,se asume que se trata de un elemento “private”.

22

Modificadores de acceso

� publicAccesible a todos los elementos

� privateAccesible solo a esa misma clase

� protectedAccesible solo a la misma clase y métodos de sus clasesderivadas. No accesible desde el exterior.

� internal

Accesible solo a ese ensamblado

� protected internalAccesible desde el mismo ensamblado, la misma clase y métodos de sus clases derivadas

21

22

Page 12: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 12

23

Modificadores de acceso

Modificador de acceso

Clase donde se declaró

Subclase

(Mismo assembly)

Subclase

(Distinto

Assembly)

Externamente

(Mismo

Assembly)

Externamente

(Distinto

Assembly)

private SI NO NO NO NO

internal SI SI NO SI NO

protected SI SI SI NO NO

protected internal

SI SI SI SI NO

public SI SI SI SI SI

Accesible desde …

Atributos

� Representan los datos de los objetos

� Son controlados a través de la declaración de variables

� Es importante identificar el tipo de dato

� Se debe seleccionar sólo aquellos atributos necesarios para el modelo planteado (abstracción)

24

23

24

Page 13: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 13

25

Atributos o campos

�Un atributo o campo es un dato común atodos los objetos de una determinada clase.

�Las variables declaradas dentro de una claseson ejemplos de atributos o campos

Ejemplo: Atributos de un estudiante

26

�Atributos:� claveMatrícula: “A-233”

� nombre: “Bruno López Takeyas”

� grado: 3

� grupo: ‘A’

� promedio: 87.4

string claveMatricula;

string nombre;

int grado;

char grupo;

float promedio;

25

26

Page 14: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 14

27

Tipos de datos más comunes enC#

� Numérico� Entero (int)� Real (float, double)

� Alfanumérico� Caracter (char)

� Cadena (string)

� Lógico� Booleano (bool)

� Calendario� Fecha y hora (DateTime)

Tipos de datos en C#

28

27

28

Page 15: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 15

Tipos de datos enteros

29

30

Tipo de Dato

Tamaño(bytes)

Valor más pequeño Valor más grande

Sbyte 1 -128 127

byte 1 0 255

Char 2 0 65, 535

Int16 ó short

2 -32, 768 32, 767

UInt16 ó ushort

2 0 65, 535

int ó Int32 4 -2, 147, 483, 648 2, 147, 483, 647

uint 4 0 4, 294, 967, 295

Int64 ó long

8 -9, 223, 372, 036, 854, 775, 808 9, 223, 372, 036, 854, 775, 807

UInt64 ó ulong

8 0 18,446,744,073,709,551,615

float 4 -3.402823E+38 3.402823E+38

double 8 -1.79769313486232E+308 1.79769313486232E+308

decimal 16 -79,228,162,514,264,337,593,543,950,335 79,228,162,514,264,337,593,543,950,335

29

30

Page 16: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 16

Identificadores� Pueden iniciar con una letra o _

� Evitar caracteres especiales como +, -, &

� Puede tener mayúsculas y minúsculas; sin embargo, edad no es lo mismo que Edad

� Puede ser de cualquier longitud; p. ejem.

� Edad_alumno, Sueldo_empleado

31

� http://www.itnuevolaredo.edu.mx/Takeyas/Ap

untes/POO/Apuntes/02.-

%20NomenclaturaComponentesProyecto.pdf

32

Nomenclatura sugerida para identificar los componentes de un proyecto

31

32

Page 17: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 17

33

Ejemplo: Variables con modificadores de acceso

class MiClase

{

//Si no se indica, es private

int _intNumero;

private int _intNumero1;

public int intNumero2;

protected int intNumero3 = 99;

internal int intNumero4;

protected internal int intNumero5;

}

Representación de modificadores de acceso en C# y UML

34

Modificador de acceso

Codificación enC#

Representaciónen UML

Privado private -Público public +

Protegido protected #Interno internal ~

Protegido interno protected internal #

33

34

Page 18: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 18

Métodos� Son las acciones que realizan los objetos y definen su

comportamiento

35

�Atributos:� claveMatrícula: “A-233”

� nombre: “Bruno López Takeyas”

� grado: 3

� grupo: ‘A’

� promedio: 87.4

�Acciones:� Leer()

� Investigar()

void Leer()

void Investigar()

Ejemplo de una clase

36

35

36

Page 19: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 19

Ejemplo de una clase

37

class CuentaBancaria

{

// Declaración de los atributos

public string strNombreCliente;

public DateTime dtmFechaDeInversion;

private double _dblSaldo;

// Definción de los métodos

public int CalcularDiasDeInversion() {

// Aquí se escribe el código de este método

}

private double ConsultarSaldo() {

// Aquí se escribe el código de este método

}

public void Depositar(double dblCantidad, DateTime dtmFecha) {

// Aquí se escribe el código de este método

}

public bool OtorgarBono() {

// Aquí se escribe el código de este método

}

}

38

Crear objetos:Instanciación� Una vez creada la clase, ya es posible “consumirla”

mediante la instanciación.

� La instanciación es el proceso de crear objetos a partir de una clase.

� Ejemplo en dos pasos:ClaseA miobjetoA;

miobjetoA = new ClaseA();

� Ejemplo en un paso:

ClaseA miobjetoA = new ClaseA();

1. Definir el tipo de “miObjetoA”

2. Adquirir memoria sin inicializar para el nuevo objeto usando new.

3. Ejecutar el constructor para inicializar la memoria y convertirla en un objeto usable

37

38

Page 20: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 20

Objetos en UML� En UML un objeto se representa como un rectángulo

con un nombre subrayado

39

miPersona miAutomóvil miCuentaBancaria

Los objetos no se crean automáticamente cuando se declaran

40

Accediendo a los miembros de los objetos

Asignación:

miobjetoA . Numero2 = 50;

Lectura:

miOtraVariable = miobjetoA . Numero2;

Nombre

del objetoSelección Miembro

39

40

Page 21: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 21

41

Propiedades

� Son mecanismos para acceder a los valores (variables) que poseen losobjetos.

� Algunos autores las consideran sinónimos de los datos, sin embargo nosiempre lo son (solamente en el caso de las propiedadesautoimplementadas).

� Se pueden implementar:� Declarando la variable como public

� No sería posible especificarla como Solo-Lectura o Solo-Escritura

� No se puede implementar código adicional asociado a la Lectura o Escritura de lavariable.

� Declarando un método de acceso a la variable� Empobrece la legibilidad del código. Puede crear confusión.

� Utilizando accesadores get{ } y set { } para las propiedades� Recomendado en C#

42

Implementando propiedadescon accesadores get, set

class Persona{

private int _intEdad;public int Edad{

get{

return _intEdad;}set{

_intEdad = value;}

}}

class Programa

{

static void Main()

{

Persona unaPersona = new

Persona();

unaPersona.Edad = 25;

System.Console.WriteLine

(unaPersona.Edad);

}

}

(Manera recomendada)

41

42

Page 22: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 22

43

Ejemplo de clase con propiedades

44

Codificación de la clase y sus propiedades

class Empleado

{

// Declaración de los atributos privados

private string _strNombre;

private int _intEdad;

private double _dblSueldo;

// Propiedad pública de lectura y escritura del nombre

public string Nombre

{

get

{

return _strNombre;

}

set

{

_strNombre = value;

}

}

// Propiedad pública de solo escritura para la edad

public int Edad

{

set

{

_intEdad = value;

}

}

// Propiedad pública de solo lectura para el sueldo

public double Sueldo

{

get

{

return _dblSueldo;

}

}

}

43

44

Page 23: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 23

45

Propiedades autoimplementadas

La propiedad autoimplementada debe tener los descriptores de acceso get y set; es decir, no puede ser de solo lectura o solo

escritura

46

Codificación de propiedades autoimplementadas

class Empleado

{

// Propiedades autoimplementadas

public string Nombre

{

get;

set;

}

public int Edad

{

get;

set;

}

public double Sueldo

{

get;

set;

}

}

45

46

Page 24: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 24

Ejercicio resuelto 1Definir una clase para manejar los artículos de unsupermercado cuyos datos son:

� Clave numérica

� Descripción

� Precio

� Cantidad en existencia

Defina los atributos y propiedades de acuerdo a los datosdel artículo, declare y cree un objeto, modifique eimprima sus valores.

47

Análisisa) Investigación preliminarInvestigar los tipos de datos necesarios para administrar laclave, descripción, precio y cantidad en existencia de unartículo que vende un supermercado.

b) Definición del problema� Diseñar una clase que tenga como atributos privados la

clave numérica, descripción, precio y cantidad enexistencia de un artículo de un supermercado.

� Declarar y crear un objeto de dicha clase.� Solicitar al usuario que teclee el valor de cada atributo del

objeto.� Una vez capturados todos los datos del artículo, se deben

imprimir para su verificación.

48

47

48

Page 25: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 25

Análisis (cont.)c) Datos de entrada� Clave numérica del artículo (atributo:_intClaveNumerica, propiedad: ClaveNumerica) :entero

� Descripción del artículo (atributo: _strDescripcion,propiedad: Descripcion) : cadena

� Precio del artículo (atributo: _dblPrecio, propiedad:Precio) : real

� Cantidad en existencia del artículo (atributo:_dblCantidadEnExistencia, propiedad:CantidadEnExistencia) : real

d) Información de salida� Los mismos datos definidos en la entrada

49

Análisis (cont.)

e) Variables auxiliares

� Clase que define los datos de un artículo que vende el supermercado (Articulo)

� Objeto de dicha clase (miArticulo : Articulo)

50

49

50

Page 26: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 26

Diseño (diagrama de clase)

51

Implementación (codificación de la

clase)

52

class Articulo

{

// Atributos privados

private int _intClaveNumerica;

private string _strDescripcion;

private double _dblPrecio;

private double _dblCantidadEnExistencia;

// Propiedades públicas

public int ClaveNumerica

{

get { return _intClaveNumerica; }

set { _intClaveNumerica = value; }

}

public string Descripcion

{

get { return _strDescripcion; }

set { _strDescripcion = value; }

}

public double Precio

{

get { return _dblPrecio; }

set { _dblPrecio = value; }

}

public double CantidadEnExistencia

{

get { return _dblCantidadEnExistencia; }

set { _dblCantidadEnExistencia = value; }

}

}

51

52

Page 27: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 27

Implementación (codificación del método

principal)

53

static void Main(string[] args){

// Declaración y creación de un objetoArticulo miArticulo = new Articulo();

Console.Write("Teclee la clave del artículo:");miArticulo.ClaveNumerica = int.Parse(Console.ReadLine());

Console.Write("Teclee la descripción del artículo: ");miArticulo.Descripcion = Console.ReadLine();

Console.Write("Teclee el precio del artículo: ");miArticulo.Precio = double.Parse(Console.ReadLine());

Console.Write("Teclee la cantidad en existencia: ");miArticulo.CantidadEnExistencia = double.Parse(Console.ReadLine());

Console.WriteLine("Clave numérica = " + miArticulo.ClaveNumerica);Console.WriteLine("Descripción = " + miArticulo.Descripcion);Console.WriteLine("Precio = " + miArticulo.Precio);Console.WriteLine("Cantidad en existencia = " + miArticulo.CantidadEnExistencia);Console.ReadKey();

}

Ejercicio resuelto 2

Diseñe una clase para convertir una temperatura degrados farenheit a grados centígrados. La clase debetener un atributo que almacene la temperatura en gradosfarenheit, una propiedad de solo escritura para modificarsu valor y un método que haga la conversión. Declare ycree un objeto al que le introduzca el valor de latemperatura en grados farenheit y calcule, devuelva eimprima la conversión. Investigue la fórmulacorrespondiente.

54

53

54

Page 28: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 28

Análisisa) Investigación preliminarInvestigar la fórmula para convertir una temperatura de grados Farenheita grados centígrados. La fórmula es:

b) Definición del problema� Diseñar una clase que tenga como atributo privado la temperatura en

grados farenheit con su respectiva propiedad de sólo escritura. Dicha clase debe contener un método (función) que haga la conversión a grados centígrados y devuelva el resultado.

� Declarar y crear un objeto de dicha clase.� Capturar la temperatura en grados farenheit e introducirla al objeto

correspondiente.� Ejecutar el método de conversión que se ubica dentro del objeto para

calcular la temperatura en grados centígrados y devolver el resultado.� Recibir el valor devuelto por el método para imprimir el resultado.

55

Análisis (cont.)c) Datos de entrada

� Temperatura en grados farenheit (atributo: _dblGradosFarenheit, propiedad: GradosFarenheit) : real

d) Información de salida

� Temperatura en grados centígrados (dblGradosCentigrados: real)

56

55

56

Page 29: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 29

Análisis (cont.)

e) Variables auxiliares

� Clase que controla la temperatura en grados farenheit y laconvierte a grados centígrados(TemperaturaGradosFarenheit)

� Objeto de dicha clase (miTemperaturaGradosFarenheit :TemperaturaGradosFarenheit)

57

Diseño (diagrama de clase)

58

57

58

Page 30: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 30

Diseño (diagrama de flujo del

método)

59

Nombre dela clase

Tipo de datodel valordevuelto

Nombre delmétodo

Implementación (codificación de la

clase)

60

class TemperaturaGradosFarenheit{

// Atributo privadoprivate double _dblGradosFarenheit;

// Propiedad pública de solo escriturapublic double GradosFarenheit{

set { _dblGradosFarenheit = value; }}

public double ConvertirAGradosCentigrados(){

return (5 * (_dblGradosFarenheit - 32) / 9);}

}

59

60

Page 31: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 31

Implementación (codificación del método

principal)

61

static void Main(string[] args)

{

// Declaración y creación de un objeto

TemperaturaGradosFarenheit miTemperaturaGradosFarenheit = new

TemperaturaGradosFarenheit();

// Captura la temperatura en °F

Console.Write("Teclee la temperatura en grados farenheit: ");

miTemperaturaGradosFarenheit.GradosFarenheit =

double.Parse(Console.ReadLine());

// Invoca el método para hacer la conversión e imprime el

resultado

Console.Write("La temperatura en °C = " +

miTemperaturaGradosFarenheit.ConvertirAGradosCentigrados().ToStrin

g("N2"));

Console.ReadKey();

}

62

Software para diagramas de clases�NClass es software para el diseño de

diagramas de clases.

�Puede descargarse de manera gratuita en:

http://nclass.sourceforge.net

61

62

Page 32: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 32

63

¿Cómo exportar un diagrama de NClass?

64

Software para diagramas de flujo�WizFlow es software para el diseño de

diagramas de flujo.

63

64

Page 33: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 33

65

¿Cómo exportar un diagrama de WizFlow?

� No se deben capturar datos calculables

� Los datos calculables NO deben ser atributos

� Una vez creado el objeto, primero se deben introducir sus valores y después ejecutar sus métodos

� No se recomienda capturar ni imprimir datos desde un método ubicado dentro de una clase

66

Consejos al diseñar clases y utilizar objetos

65

66

Page 34: CAPÍTULOS de Progra… · Los objetos son los elementos principales de construcción. La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modeladodehoyendia

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 34

Otros títulos del autor

http://www.itnuevolaredo.edu.mx/Takeyas/Libro

Bruno López [email protected]

67