SlideShare una empresa de Scribd logo
1 de 60
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Programación Orientada a Objetos
Unidad 2: Clases y Objetos
www.itsguasave.edu.mx
PROGRAMACIÓN ORIENTADA A OBJETOS
Competencia de la unidad:
Aplica los conceptos de clases y objetos en el desarrollo de
programas para solución de problemas de acuerdo al
paradigma orientado a objetos.
Lenguaje de programación a utilizar
• C # (Visual Studio para trabajar en modo consola)
PROGRAMACIÓN ORIENTADA A OBJETOS
Estructura básica de un programa en C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
//declaración de variables globales
static void Main(string[] args)
{
}
}
}
PROGRAMACIÓN ORIENTADA A OBJETOS
Identificadores
Un identificador le da nombre único a un elemento en un programa
(Variables, procedimientos, etc.).
• No puede contener operadores como + - * /
• Debe iniciar con letra o el guion bajo ( _ )
• Puede tener cualquier longitud
• Puede contener mayúsculas y minúsculas
• En un identificador sí se hace diferencia entre mayúsculas y
minúsculas. De esta manera, “suma” es diferente de “Suma”
• No debe ser una palabra reservada
PROGRAMACIÓN ORIENTADA A OBJETOS
Tipos de Datos
• int número entero
• double número flotante
• char un solo carácter
• string cadena de caracteres
• bool booleano (Verdadero, Falso)
• DateTime fecha/hora
PROGRAMACIÓN ORIENTADA A OBJETOS
Declaración de Variables
string Nombre;
int HorasTrabajadas;
double SueldoPorHora;
char Otro;
También se pueden inicializar las variables al mismo tiempo que se declaran:
string Nombre = “Juan”;
int HorasTrabajadas = 40;
double SueldoPorHora = 150.00;
char Otro = 'N';
PROGRAMACIÓN ORIENTADA A OBJETOS
Impresión de información (Proyectos de Consola)
Console.WriteLine (" Hola ");
Console.WriteLine( Sueldo );
Console.WriteLine ( " Mi nombre es {0} y gano {1} ", Nombre, Sueldo);
Console.WriteLine (" Nombre: " + Nombre);
PROGRAMACIÓN ORIENTADA A OBJETOS
Parámetros de sustitución
Concatenación
Sentencias using
Si se agregan al inicio de la clase, NO es necesario repetirlas en cada
instrucción.
Por ejemplo, si al inicio de la clase se agrega:
using System;
puede usarse durante toda la clase:
Console.WriteLine( “ Hola Mundo ” );
en lugar de:
System.Console.WriteLine( “Hola Mundo ” );
PROGRAMACIÓN ORIENTADA A OBJETOS
Pedir Datos (captura en proyectos de consola)
Nombre = Console.ReadLine();
HorasTrabajadas = Convert.ToInt32(Console.ReadLine());
HorasTrabajadas = int.Parse(Console.ReadLine());
PROGRAMACIÓN ORIENTADA A OBJETOS
Conversión de String a Entero
TAMBIEN puede hacerse así:
Pedir un dato StringEl resultado se almacena
en esta variable
Cálculos y Asignaciones
SueldoTotal = HorasTrabajadas * SueldoPorHora;
Descuento = SueldoTotal * 0.08;
SueldoTotal = SueldoTotal - Descuento;
Bonos = 200;
SueldoTotal = SueldoTotal + Bonos;
PROGRAMACIÓN ORIENTADA A OBJETOS
Cálculos
Asignación
Operadores Aritméticos
+ Suma
- Resta
* Multiplicación
/ División
% Residuo de división entera
= Igualdad
++ Incremento en 1
-- Decremento en 1
PROGRAMACIÓN ORIENTADA A OBJETOS
Jerarquía:
Primero se ejecutan * / (el que está más a la izuierda)
Después se ejecutan + - (el que está más a la izuierda)
Los paréntesis alteran la jerarquía
Operadores de asignación adicionales
Sirven para simplificar expresiones de asignación. Ejemplos:
a += 5 → a = a + 5
a -= 5 → a = a - 5
a *= 5 → a = a * 5
a /= 5 → a = a / 5
Ejemplos con los Operadores de Autoincremento:
x ++ → x = x + 1
x -- → x = x - 1
PROGRAMACIÓN ORIENTADA A OBJETOS
Clases y objetos
• Una clase es básicamente un plano para un tipo de datos personalizado.
• Cuando se define una clase, se utiliza cargándola en la memoria.
• Una clase que se ha cargado en la memoria se denomina objeto o instancia.
• Se crea una instancia de una clase utilizando la palabra reservada new
PROGRAMACIÓN ORIENTADA A OBJETOS
Cómo declarar una clase
class nombre_de_la_clase
{
//contenido de la clase …
}
PROGRAMACIÓN ORIENTADA A OBJETOS
Dentro de la clase…
• Se pueden declarar variables, propiedades, métodos, delegados, eventos,
etc.
• Cada elemento puede tener un modificador de acceso.
• Un modificador de acceso especifica quienes están autorizados a “ver” ese
elemento.
• Si no se especifica ningún modificador de acceso, se asume que se trata de
un elemento “private”.
PROGRAMACIÓN ORIENTADA A OBJETOS
Modificadores de acceso
Cuando no se indica el modificador de acceso por default es private
• public: Accesible a todos los elementos
• private: Accesible solo a esa misma clase
• protected: Accesible solo a la misma clase y métodos de sus clases
derivadas. No accesible desde el exterior.
• internal: Accesible solo a ese ensamblado
• protected internal: Accesible desde el mismo ensamblado, la misma clase y
métodos de sus clases derivadas
PROGRAMACIÓN ORIENTADA A OBJETOS
Modificadores de acceso
PROGRAMACIÓN ORIENTADA A OBJETOS
Atributos o campos
• Un atributo o campo es un dato
común a todos los objetos de una
determinada clase.
• Las variables declaradas dentro
de una clase son ejemplos de
atributos o campos.
PROGRAMACIÓN ORIENTADA A OBJETOS
// Ejemplo de una clase
class CuentaBancaria
{
public string strNombreCliente;
public DateTime dtmFechaDeInversion;
private double _dblSaldo;
public int CalcularDiasDeInversion() {
…
}
private double ConsultarSaldo() {
…
}
public void Depositar(double
dblCantidad, DateTime dtmFecha) {
…
}
public bool OtorgarBono() {
…
}
}// fin de la clase
PROGRAMACIÓN ORIENTADA A OBJETOS
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();
PROGRAMACIÓN ORIENTADA A OBJETOS
Accediendo a los miembros de los objetos
• Asignación:
miobjetoA . Numero2 = 50;
• Lectura:
miVariable = miobjetoA.Numero2;
PROGRAMACIÓN ORIENTADA A OBJETOS
Nombre
del objeto
Selección Miembro Operación
Ejercicio
• Utilizando POO hacer programa para solucionar el área de un círculo:
Fórmula=pi*(r*r)
• Debes declarar la clase Circle y heredarla en un objeto llamado circulo,
• Dentro de la clase debes declarar el constructor correspondiente y un
método que calcule el área del circulo regresando el valor correspondiente
a la rutina principal y desplegarlo allí.
PROGRAMACIÓN ORIENTADA A OBJETOS
Métodos
• Contienen instrucciones para ejecutar al momento de ser invocados.
Un método contiene:
• Modificador de Acceso (Determina su visibilidad)
• Tipo de dato (Devuelto al finalizar su ejecución)
• Identificador (Nombre con el cual se invoca)
• Parámetros (Cero o mas variables que recibe el método)
PROGRAMACIÓN ORIENTADA A OBJETOS
La referencia this
• Para hacer referencia (explícita) a un elemento que se encuentra dentro de la misma clase (ésta)
se utiliza “this”.
class Articulo {
private double precio;
public void Articulo() {
precio = 0;
}
public void setPrecio (double precio ){
this.precio = precio;
}
public double getPrecio() {
return this.precio;
}
}// fin de la clase
PROGRAMACIÓN ORIENTADA A OBJETOS
La referencia this…
class Programa {
static void Main() {
double precio=0;
Articulo art = new Articulo();
art.setPrecio(34.00);
precio=art.getPrecio();
Console.WriteLine(precio);
Console.ReadLine();
}
}// fin de la clase
PROGRAMACIÓN ORIENTADA A OBJETOS
Codificación de la referencia this
class Persona {
private string nombre;
private int edad;
public void ModificarDatos(string nombre, int edad) {
this.nombre = nombre;
this.edad = edad;
}
}
PROGRAMACIÓN ORIENTADA A OBJETOS
Sobrecarga
• Se refiere a la posibilidad de crear métodos que posean el mismo nombre y
difieran en la cantidad y/o tipo de parámetros (firma).
• No es posible crear 2 funciones con el mismo identificador que solo difieran
en el tipo de dato devuelto (misma firma).
static bool impresion(int num)
static char impresion(int num)
PROGRAMACIÓN ORIENTADA A OBJETOS
Error (misma firma)
Ejemplo de Sobrecarga
class Impresion {
public void Imprimir() {
Console.WriteLine("Sistema de Usuarios");
}
public void Imprimir(string mensaje){
Console.WriteLine(mensaje);
}
public void Imprimir (string titulo, string mensaje) {
Console.WriteLine("===== " + titulo + " =====");
Console.WriteLine(mensaje);
}
}// fin de la clase
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo de Sobrecarga…
class Programa {
static void Main() {
Impresion im = new Impresion ();
im.Imprimir();
im.Imprimir("Siga las instrucciones en pantalla",
"Use minusculas");
im.Imprimir(" Gracias! ");
Console.ReadLine();
}
}// fin de la clase
PROGRAMACIÓN ORIENTADA A OBJETOS
Método constructor
• Método especial que es invocado automáticamente cada vez que un objeto
nuevo es creado (new).
• Debe poseer el mismo nombre de la clase.
• No posee tipo de dato de retorno.
• Si la clase no posee un constructor, C# crea uno vacío por default.
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
¿Qué es un constructor?
Ejemplo:
class Persona {
public string Nombre;
public Persona() {
Nombre = "Desconocido";
}
}
PROGRAMACIÓN ORIENTADA A OBJETOS
class Programa {
static void Main() {
Persona unaPersona = new
Persona();
Console.WriteLine(
unaPersona.Nombre);
Console.ReadLine();
}
}
Constructor con parámetros
class Persona {
public string Nombre;
public Persona(string Nombre) {
this.Nombre = Nombre;
}
}
class Programa {
static void Main() {
Persona otraPersona = new
Persona("Ramóan");
Console.WriteLine(
otraPersona.Nombre);
Console.ReadLine();
}
}
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio: basándose en los dos ejemplos anteriores realice un
programa utilizando métodos constructores sobrecargados, deben
ser al menos dos métodos, y también debe realizar las funciones
get() y set() correspondientes el atributo Nombre.
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio: Utilizando POO hacer un programa que solucione el problema de una
gasolinera, sus bombas surten la gasolina en galones pero la cobran en litros,
mostrar en pantalla cuanto se debe cobrar dependiendo de la cantidad de
galones vendidos y el precio de la gasolina (precio variable), un galón equivale a
3.785 litros.
• Debe declarar los constructores que se requieran
• Debe utilizar dos clases, una para realizar los cálculos y otra para capturar valor
inicial y mostrar resultados.
• En la clase que realiza cálculos las variables deben ser privadas por lo que debe
tener tantos métodos get() y set() sean necesarios.
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica:
• Utilizando POO hacer programa que convierta los datos de una persona, su
peso en libras y su estatura en pies (medidas americanas) a su peso a kilos y
su estatura a metros (medidas métrico-decimales):
1 libra equivale a 0.4536 kilos
1 pie equivale a 0.3047 metros
• Los valores en pies y libras debe capturarlos en la rutina main.
• En la clase adicional debe hacer un método por cada conversión y
devuelvan los valores a la rutina main donde deben ser desplegados.
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio: Utilizando POO: En un almacén se hace un 20% de descuento a los
clientes cuya compra supere los $1000. ¿Cuál será la cantidad que pagara
una persona por su compra?
PROGRAMACIÓN ORIENTADA A OBJETOS
Método destructor
• No puede llamarse explícitamente.
• Se invoca automáticamente cuando el objeto es destruido.
• Invocado por el Garbage Collector (GC) justo antes de desasignar la memoria
del objeto.
• Usado para cerrar archivos, conexiones de red, canales abiertos, etc.
• Sintaxis similar al método constructor, pero anteponiendo una tilde (~) al
nombre.
PROGRAMACIÓN ORIENTADA A OBJETOS
¿Qué es un destructor?
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo de un destructor
class Empleado {
~Empleado() {
Console.WriteLine("Se ha destruido el Empleado ");
Console.ReadLine();
}
}
Al ejercicio anterior agregue un destructor (diapositiva 38).
PROGRAMACIÓN ORIENTADA A OBJETOS
Destrucción de objetos
• C# gestiona la memoria de modo automático mediante el “recolector de
basura” (Garbage Collector o GC), quien se encarga de eliminar la memoria
que en algún momento se solicitó y no se ocupa mas.
• En C# no existe el operador contrario a “new”.
• Por lo que, de manera general, NO es posible controlar exactamente el
momento en el cual la memoria vuelve a estar disponible.
• Se puede indicar en el programa cuando un objeto deja de ser util,
asignándole el valor “null”: miObjeto = null;
• Cuando el GC lo note tomará cartas en el asunto.
• El instante preciso en que el objeto sea destruido queda fuera del alcance
del programador.
PROGRAMACIÓN ORIENTADA A OBJETOS
El Garbage Collector (GC recolector de basura):
Se asegura que:
• Los objetos son destruidos una sola vez.
• Se destruyan objetos que ya no son utilizados.
Trabaja cuando:
• Hay poca memoria disponible.
• La aplicación está finalizando.
• El programador lo invoca manualmente (NO recomendado):
System.GC.Collect();
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica:
• Utilizando POO diseñe una clase para un rectángulo, añada los métodos
necesarios (una método por fórmula) para obtener :
 El área:
A = a * b
 El perímetro:
P = 2(a + b)
 La diagonal:
d = √(a2 - b2)
 El radio de la circunferencia circunscrita:
R = √(a2 - b2)/2
PROGRAMACIÓN ORIENTADA A OBJETOS
Operadores Relacionales
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
== Igual
!= Diferente
PROGRAMACIÓN ORIENTADA A OBJETOS
Operadores Lógicos
&& AND (Y)
|| OR (O)
! NOT (NO)
Decisiones (if)
if (condicion)
{
//Qué pasa si la condición es Verdadera
}
else
{
//Qué pasa si la condición es Falsa
}
La Decisión puede ser SIN PARTE FALSA
PROGRAMACIÓN ORIENTADA A OBJETOS
Selección Múltiple
int variable = 1;
switch (variable)
{
case 1: Console.WriteLine(“1”);
break;
case 2: Console.WriteLine(“2”);
break;
case 3: Console.WriteLine(“3”);
break;
default: Console.WriteLine(“Otro”);
break;
}
PROGRAMACIÓN ORIENTADA A OBJETOS
Ciclo for() { }
for (x=inicio; x<=fin ; x=x+incremento )
{
//cuerpo del ciclo…
}
PROGRAMACIÓN ORIENTADA A OBJETOS
Ciclo while { }
while ( condicion )
{
//cuerpo del ciclo…
}
PROGRAMACIÓN ORIENTADA A OBJETOS
Ciclo do { } while( )
do
{
//cuerpo del ciclo…
} while ( condicion );
PROGRAMACIÓN ORIENTADA A OBJETOS
Namespace
• Organizan los diferentes componentes
• Un programa puede contener varios namespaces
• Un namespace puede contenermuchas clases
• El programador puede crear sus propiosnamespaces
• Para accesar a namespaces se usa la directiva using:
using System;
using System.Array;
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica :
• Hacer un programa que capture un base y altura de un triángulo y
despliegue un menú básico con las siguientes opciones:
1) Área del Triángulo
2) Perímetro del Triángulo
3) Superficie del Triángulo
• Si el número capturado es distinto a los mencionados el programa termina.
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicios con ciclos y condiciones
• Utilizando POO escribe un programa que capture un número en la rutina
principal y por medio de un método de la clase calcule la tabla de
multiplicar de ese numero desde el 1 hasta el diez.
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica:
• Utilizando POO escribe un programa que capture un número en la rutina
principal y por medio de un método en clase calcule el factorial de un
número entero
PROGRAMACIÓN ORIENTADA A OBJETOS
Sobrecarga de métodos
• Un método sobrecargado se utiliza para reutilizar el nombre de un método
pero con diferentes argumentos (opcionalmente un tipo diferente de
retorno).
Las reglas para sobrecargar un método son las siguientes:
• Los métodos sobrecargados deben de cambiar la lista de argumentos.
• Pueden cambiar el tipo de retorno.
• Pueden cambiar el modificador de acceso.
• Pueden declarar nuevas o más amplias excepciones.
• Un método puede ser sobrecargado en la misma clase o en una subclase.
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio de sobrecarga
• Utilizando POO desarrolla un programa que capture un número en a rutina
principal y calcule el valor absoluto del mismo dentro de una clase, este
puede ser int, short, o long.
• Debes crear un método sobrecargado por cada tipo de dato que regrese el
resultado a la rutina principal.
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica de sobrecarga
• Escribe un programa que realice la suma de dos números utilizando
sobrecarga de la siguiente forma:
• Sumar entero y entero: retorna entero;
• Sumar flotante y flotante: retorna flotante;
• Sumar flotante y entero: retorna flotante;
• Sumar entero y flotante: retorna flotante;
PROGRAMACIÓN ORIENTADA A OBJETOS
Evidencia de la unidad
• Con las técnicas que hemos visto hasta ahora escribe un programa que
calcule el impuesto a pagar por importación en una aduana bajo las
siguientes condiciones:
• El artículo puede ser nuevo o usado.
• Los artículos nuevos pagan IEPS que consiste en 10% del valor
• Los artículos usados no pagan IEPS
• Los artículos que provienen de USA y CAN no pagan Impuesto General a
la Importación (IGE)
• Los artículos que provienen de cualquier otro país pagan 5% de IGE
• Todos los artículos pagan IVA
• Al final desplegar el total por impuesto y el total general de impuestos,
así como el valor total de las mercancías importadas.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Debes realizar tantas clases sean necesarias.
• Los atributos locales en las clases deben ser privados.
• Debes crear tantos constructores y destructores se requieran.
• La clase Program solo puede capturar valores e imprimir resultados pero no
realizar cálculos.
¡Muchas suerte!
PROGRAMACIÓN ORIENTADA A OBJETOS
Bibliografía
• Landa, N. (2010) . C# guía total del programador. RedUsers. Buenos Aires.
ISBN 978-987-26013-5-5.
• López, B. (2018). Curso de Programación Orientada a Objetos en C#.Net.
Disponible en: http://www.itnuevolaredo.edu.mx/takeyas
PROGRAMACIÓN ORIENTADA A OBJETOS

Más contenido relacionado

La actualidad más candente

Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadores
perlallamas
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
K Manuel TN
 

La actualidad más candente (20)

Tópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUITópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUI
 
Estructura básica de un programa en C++
Estructura básica de un programa en C++Estructura básica de un programa en C++
Estructura básica de un programa en C++
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
Fundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosFundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicos
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herencia
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
 
Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadores
 
Programacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosProgramacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetos
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
 
Programación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 ExcepcionesProgramación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 Excepciones
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2
 
Bibliotecas o libreria de c++
Bibliotecas o libreria de c++Bibliotecas o libreria de c++
Bibliotecas o libreria de c++
 

Similar a Programación Orientada a Objetos - Unidad 2: clases y objetos

Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
Antonio Palomares Sender
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
ecodereck
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
Karime Hernández
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
FamiliaAyluardo
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
Krizztiina Pacheko
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent46
 

Similar a Programación Orientada a Objetos - Unidad 2: clases y objetos (20)

Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 
1 -programacion_oo
1  -programacion_oo1  -programacion_oo
1 -programacion_oo
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
 
Clases y objetos
Clases y objetosClases y objetos
Clases y objetos
 
02 tda1 t2018
02 tda1 t201802 tda1 t2018
02 tda1 t2018
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
03 Oop
03   Oop03   Oop
03 Oop
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Unidad II_1.pptx
Unidad II_1.pptxUnidad II_1.pptx
Unidad II_1.pptx
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
5poo
5poo5poo
5poo
 

Más de José Antonio Sandoval Acosta

Más de José Antonio Sandoval Acosta (20)

Linea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptxLinea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptx
 
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptxUNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
 
croquis de aulas UAIM topolobampo FEB 2024
croquis de aulas UAIM topolobampo  FEB 2024croquis de aulas UAIM topolobampo  FEB 2024
croquis de aulas UAIM topolobampo FEB 2024
 
Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 MódulosIng. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 Módulos
 
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujo
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
 
Manual de prácticas y antología para POO
Manual de prácticas y antología para  POOManual de prácticas y antología para  POO
Manual de prácticas y antología para POO
 
Aplicaciones móviles intro.
Aplicaciones móviles intro.Aplicaciones móviles intro.
Aplicaciones móviles intro.
 
Economia
EconomiaEconomia
Economia
 
ISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptxISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptx
 
Plantilla presentación.pptx
Plantilla presentación.pptxPlantilla presentación.pptx
Plantilla presentación.pptx
 
kitchenham.pptx
kitchenham.pptxkitchenham.pptx
kitchenham.pptx
 
Diagrama de Casos de Uso UML
Diagrama de Casos de Uso UMLDiagrama de Casos de Uso UML
Diagrama de Casos de Uso UML
 
Introducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UMLIntroducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UML
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
 
Diagrama UML Casos de Uso
Diagrama UML Casos de UsoDiagrama UML Casos de Uso
Diagrama UML Casos de Uso
 
Tema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdfTema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdf
 
Tema 1 - Intro.pdf
Tema 1 - Intro.pdfTema 1 - Intro.pdf
Tema 1 - Intro.pdf
 

Último

Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
andersonsubero28
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
refrielectriccarlyz
 
INFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdfINFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdf
octaviosalazar18
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 
Tipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercialTipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercial
macsal12345
 

Último (20)

CI164 Materiales de Construcción 202401 - Sesión 03 Propiedades No Mecánicas.pdf
CI164 Materiales de Construcción 202401 - Sesión 03 Propiedades No Mecánicas.pdfCI164 Materiales de Construcción 202401 - Sesión 03 Propiedades No Mecánicas.pdf
CI164 Materiales de Construcción 202401 - Sesión 03 Propiedades No Mecánicas.pdf
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptx
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión interna
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
INFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdfINFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdf
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
Tipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercialTipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercial
 

Programación Orientada a Objetos - Unidad 2: clases y objetos

  • 1. TECNOLÓGICO NACIONAL DE MÉXICO Instituto Tecnológico Superior de Guasave Ingeniería en Sistemas Computacionales Programación Orientada a Objetos Unidad 2: Clases y Objetos www.itsguasave.edu.mx
  • 2. PROGRAMACIÓN ORIENTADA A OBJETOS Competencia de la unidad: Aplica los conceptos de clases y objetos en el desarrollo de programas para solución de problemas de acuerdo al paradigma orientado a objetos.
  • 3. Lenguaje de programación a utilizar • C # (Visual Studio para trabajar en modo consola) PROGRAMACIÓN ORIENTADA A OBJETOS
  • 4. Estructura básica de un programa en C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { //declaración de variables globales static void Main(string[] args) { } } } PROGRAMACIÓN ORIENTADA A OBJETOS
  • 5. Identificadores Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). • No puede contener operadores como + - * / • Debe iniciar con letra o el guion bajo ( _ ) • Puede tener cualquier longitud • Puede contener mayúsculas y minúsculas • En un identificador sí se hace diferencia entre mayúsculas y minúsculas. De esta manera, “suma” es diferente de “Suma” • No debe ser una palabra reservada PROGRAMACIÓN ORIENTADA A OBJETOS
  • 6. Tipos de Datos • int número entero • double número flotante • char un solo carácter • string cadena de caracteres • bool booleano (Verdadero, Falso) • DateTime fecha/hora PROGRAMACIÓN ORIENTADA A OBJETOS
  • 7. Declaración de Variables string Nombre; int HorasTrabajadas; double SueldoPorHora; char Otro; También se pueden inicializar las variables al mismo tiempo que se declaran: string Nombre = “Juan”; int HorasTrabajadas = 40; double SueldoPorHora = 150.00; char Otro = 'N'; PROGRAMACIÓN ORIENTADA A OBJETOS
  • 8. Impresión de información (Proyectos de Consola) Console.WriteLine (" Hola "); Console.WriteLine( Sueldo ); Console.WriteLine ( " Mi nombre es {0} y gano {1} ", Nombre, Sueldo); Console.WriteLine (" Nombre: " + Nombre); PROGRAMACIÓN ORIENTADA A OBJETOS Parámetros de sustitución Concatenación
  • 9. Sentencias using Si se agregan al inicio de la clase, NO es necesario repetirlas en cada instrucción. Por ejemplo, si al inicio de la clase se agrega: using System; puede usarse durante toda la clase: Console.WriteLine( “ Hola Mundo ” ); en lugar de: System.Console.WriteLine( “Hola Mundo ” ); PROGRAMACIÓN ORIENTADA A OBJETOS
  • 10. Pedir Datos (captura en proyectos de consola) Nombre = Console.ReadLine(); HorasTrabajadas = Convert.ToInt32(Console.ReadLine()); HorasTrabajadas = int.Parse(Console.ReadLine()); PROGRAMACIÓN ORIENTADA A OBJETOS Conversión de String a Entero TAMBIEN puede hacerse así: Pedir un dato StringEl resultado se almacena en esta variable
  • 11. Cálculos y Asignaciones SueldoTotal = HorasTrabajadas * SueldoPorHora; Descuento = SueldoTotal * 0.08; SueldoTotal = SueldoTotal - Descuento; Bonos = 200; SueldoTotal = SueldoTotal + Bonos; PROGRAMACIÓN ORIENTADA A OBJETOS Cálculos Asignación
  • 12. Operadores Aritméticos + Suma - Resta * Multiplicación / División % Residuo de división entera = Igualdad ++ Incremento en 1 -- Decremento en 1 PROGRAMACIÓN ORIENTADA A OBJETOS Jerarquía: Primero se ejecutan * / (el que está más a la izuierda) Después se ejecutan + - (el que está más a la izuierda) Los paréntesis alteran la jerarquía
  • 13. Operadores de asignación adicionales Sirven para simplificar expresiones de asignación. Ejemplos: a += 5 → a = a + 5 a -= 5 → a = a - 5 a *= 5 → a = a * 5 a /= 5 → a = a / 5 Ejemplos con los Operadores de Autoincremento: x ++ → x = x + 1 x -- → x = x - 1 PROGRAMACIÓN ORIENTADA A OBJETOS
  • 14. Clases y objetos • Una clase es básicamente un plano para un tipo de datos personalizado. • Cuando se define una clase, se utiliza cargándola en la memoria. • Una clase que se ha cargado en la memoria se denomina objeto o instancia. • Se crea una instancia de una clase utilizando la palabra reservada new PROGRAMACIÓN ORIENTADA A OBJETOS
  • 15. Cómo declarar una clase class nombre_de_la_clase { //contenido de la clase … } PROGRAMACIÓN ORIENTADA A OBJETOS
  • 16. Dentro de la clase… • Se pueden declarar variables, propiedades, métodos, delegados, eventos, etc. • Cada elemento puede tener un modificador de acceso. • Un modificador de acceso especifica quienes están autorizados a “ver” ese elemento. • Si no se especifica ningún modificador de acceso, se asume que se trata de un elemento “private”. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 17. Modificadores de acceso Cuando no se indica el modificador de acceso por default es private • public: Accesible a todos los elementos • private: Accesible solo a esa misma clase • protected: Accesible solo a la misma clase y métodos de sus clases derivadas. No accesible desde el exterior. • internal: Accesible solo a ese ensamblado • protected internal: Accesible desde el mismo ensamblado, la misma clase y métodos de sus clases derivadas PROGRAMACIÓN ORIENTADA A OBJETOS
  • 19. Atributos o campos • Un atributo o campo es un dato común a todos los objetos de una determinada clase. • Las variables declaradas dentro de una clase son ejemplos de atributos o campos. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 20. // Ejemplo de una clase class CuentaBancaria { public string strNombreCliente; public DateTime dtmFechaDeInversion; private double _dblSaldo; public int CalcularDiasDeInversion() { … } private double ConsultarSaldo() { … } public void Depositar(double dblCantidad, DateTime dtmFecha) { … } public bool OtorgarBono() { … } }// fin de la clase PROGRAMACIÓN ORIENTADA A OBJETOS
  • 21. 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(); PROGRAMACIÓN ORIENTADA A OBJETOS
  • 22. Accediendo a los miembros de los objetos • Asignación: miobjetoA . Numero2 = 50; • Lectura: miVariable = miobjetoA.Numero2; PROGRAMACIÓN ORIENTADA A OBJETOS Nombre del objeto Selección Miembro Operación
  • 23. Ejercicio • Utilizando POO hacer programa para solucionar el área de un círculo: Fórmula=pi*(r*r) • Debes declarar la clase Circle y heredarla en un objeto llamado circulo, • Dentro de la clase debes declarar el constructor correspondiente y un método que calcule el área del circulo regresando el valor correspondiente a la rutina principal y desplegarlo allí. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 24. Métodos • Contienen instrucciones para ejecutar al momento de ser invocados. Un método contiene: • Modificador de Acceso (Determina su visibilidad) • Tipo de dato (Devuelto al finalizar su ejecución) • Identificador (Nombre con el cual se invoca) • Parámetros (Cero o mas variables que recibe el método) PROGRAMACIÓN ORIENTADA A OBJETOS
  • 25. La referencia this • Para hacer referencia (explícita) a un elemento que se encuentra dentro de la misma clase (ésta) se utiliza “this”. class Articulo { private double precio; public void Articulo() { precio = 0; } public void setPrecio (double precio ){ this.precio = precio; } public double getPrecio() { return this.precio; } }// fin de la clase PROGRAMACIÓN ORIENTADA A OBJETOS
  • 26. La referencia this… class Programa { static void Main() { double precio=0; Articulo art = new Articulo(); art.setPrecio(34.00); precio=art.getPrecio(); Console.WriteLine(precio); Console.ReadLine(); } }// fin de la clase PROGRAMACIÓN ORIENTADA A OBJETOS
  • 27. Codificación de la referencia this class Persona { private string nombre; private int edad; public void ModificarDatos(string nombre, int edad) { this.nombre = nombre; this.edad = edad; } } PROGRAMACIÓN ORIENTADA A OBJETOS
  • 28. Sobrecarga • Se refiere a la posibilidad de crear métodos que posean el mismo nombre y difieran en la cantidad y/o tipo de parámetros (firma). • No es posible crear 2 funciones con el mismo identificador que solo difieran en el tipo de dato devuelto (misma firma). static bool impresion(int num) static char impresion(int num) PROGRAMACIÓN ORIENTADA A OBJETOS Error (misma firma)
  • 29. Ejemplo de Sobrecarga class Impresion { public void Imprimir() { Console.WriteLine("Sistema de Usuarios"); } public void Imprimir(string mensaje){ Console.WriteLine(mensaje); } public void Imprimir (string titulo, string mensaje) { Console.WriteLine("===== " + titulo + " ====="); Console.WriteLine(mensaje); } }// fin de la clase PROGRAMACIÓN ORIENTADA A OBJETOS
  • 30. Ejemplo de Sobrecarga… class Programa { static void Main() { Impresion im = new Impresion (); im.Imprimir(); im.Imprimir("Siga las instrucciones en pantalla", "Use minusculas"); im.Imprimir(" Gracias! "); Console.ReadLine(); } }// fin de la clase PROGRAMACIÓN ORIENTADA A OBJETOS
  • 31. Método constructor • Método especial que es invocado automáticamente cada vez que un objeto nuevo es creado (new). • Debe poseer el mismo nombre de la clase. • No posee tipo de dato de retorno. • Si la clase no posee un constructor, C# crea uno vacío por default. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 32. PROGRAMACIÓN ORIENTADA A OBJETOS ¿Qué es un constructor?
  • 33. Ejemplo: class Persona { public string Nombre; public Persona() { Nombre = "Desconocido"; } } PROGRAMACIÓN ORIENTADA A OBJETOS class Programa { static void Main() { Persona unaPersona = new Persona(); Console.WriteLine( unaPersona.Nombre); Console.ReadLine(); } }
  • 34. Constructor con parámetros class Persona { public string Nombre; public Persona(string Nombre) { this.Nombre = Nombre; } } class Programa { static void Main() { Persona otraPersona = new Persona("Ramóan"); Console.WriteLine( otraPersona.Nombre); Console.ReadLine(); } } PROGRAMACIÓN ORIENTADA A OBJETOS
  • 35. Ejercicio: basándose en los dos ejemplos anteriores realice un programa utilizando métodos constructores sobrecargados, deben ser al menos dos métodos, y también debe realizar las funciones get() y set() correspondientes el atributo Nombre. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 36. Ejercicio: Utilizando POO hacer un programa que solucione el problema de una gasolinera, sus bombas surten la gasolina en galones pero la cobran en litros, mostrar en pantalla cuanto se debe cobrar dependiendo de la cantidad de galones vendidos y el precio de la gasolina (precio variable), un galón equivale a 3.785 litros. • Debe declarar los constructores que se requieran • Debe utilizar dos clases, una para realizar los cálculos y otra para capturar valor inicial y mostrar resultados. • En la clase que realiza cálculos las variables deben ser privadas por lo que debe tener tantos métodos get() y set() sean necesarios. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 37. Práctica: • Utilizando POO hacer programa que convierta los datos de una persona, su peso en libras y su estatura en pies (medidas americanas) a su peso a kilos y su estatura a metros (medidas métrico-decimales): 1 libra equivale a 0.4536 kilos 1 pie equivale a 0.3047 metros • Los valores en pies y libras debe capturarlos en la rutina main. • En la clase adicional debe hacer un método por cada conversión y devuelvan los valores a la rutina main donde deben ser desplegados. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 38. Ejercicio: Utilizando POO: En un almacén se hace un 20% de descuento a los clientes cuya compra supere los $1000. ¿Cuál será la cantidad que pagara una persona por su compra? PROGRAMACIÓN ORIENTADA A OBJETOS
  • 39. Método destructor • No puede llamarse explícitamente. • Se invoca automáticamente cuando el objeto es destruido. • Invocado por el Garbage Collector (GC) justo antes de desasignar la memoria del objeto. • Usado para cerrar archivos, conexiones de red, canales abiertos, etc. • Sintaxis similar al método constructor, pero anteponiendo una tilde (~) al nombre. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 40. ¿Qué es un destructor? PROGRAMACIÓN ORIENTADA A OBJETOS
  • 41. Ejemplo de un destructor class Empleado { ~Empleado() { Console.WriteLine("Se ha destruido el Empleado "); Console.ReadLine(); } } Al ejercicio anterior agregue un destructor (diapositiva 38). PROGRAMACIÓN ORIENTADA A OBJETOS
  • 42. Destrucción de objetos • C# gestiona la memoria de modo automático mediante el “recolector de basura” (Garbage Collector o GC), quien se encarga de eliminar la memoria que en algún momento se solicitó y no se ocupa mas. • En C# no existe el operador contrario a “new”. • Por lo que, de manera general, NO es posible controlar exactamente el momento en el cual la memoria vuelve a estar disponible. • Se puede indicar en el programa cuando un objeto deja de ser util, asignándole el valor “null”: miObjeto = null; • Cuando el GC lo note tomará cartas en el asunto. • El instante preciso en que el objeto sea destruido queda fuera del alcance del programador. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 43. El Garbage Collector (GC recolector de basura): Se asegura que: • Los objetos son destruidos una sola vez. • Se destruyan objetos que ya no son utilizados. Trabaja cuando: • Hay poca memoria disponible. • La aplicación está finalizando. • El programador lo invoca manualmente (NO recomendado): System.GC.Collect(); PROGRAMACIÓN ORIENTADA A OBJETOS
  • 44. Práctica: • Utilizando POO diseñe una clase para un rectángulo, añada los métodos necesarios (una método por fórmula) para obtener :  El área: A = a * b  El perímetro: P = 2(a + b)  La diagonal: d = √(a2 - b2)  El radio de la circunferencia circunscrita: R = √(a2 - b2)/2 PROGRAMACIÓN ORIENTADA A OBJETOS
  • 45. Operadores Relacionales > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que == Igual != Diferente PROGRAMACIÓN ORIENTADA A OBJETOS Operadores Lógicos && AND (Y) || OR (O) ! NOT (NO)
  • 46. Decisiones (if) if (condicion) { //Qué pasa si la condición es Verdadera } else { //Qué pasa si la condición es Falsa } La Decisión puede ser SIN PARTE FALSA PROGRAMACIÓN ORIENTADA A OBJETOS
  • 47. Selección Múltiple int variable = 1; switch (variable) { case 1: Console.WriteLine(“1”); break; case 2: Console.WriteLine(“2”); break; case 3: Console.WriteLine(“3”); break; default: Console.WriteLine(“Otro”); break; } PROGRAMACIÓN ORIENTADA A OBJETOS
  • 48. Ciclo for() { } for (x=inicio; x<=fin ; x=x+incremento ) { //cuerpo del ciclo… } PROGRAMACIÓN ORIENTADA A OBJETOS
  • 49. Ciclo while { } while ( condicion ) { //cuerpo del ciclo… } PROGRAMACIÓN ORIENTADA A OBJETOS
  • 50. Ciclo do { } while( ) do { //cuerpo del ciclo… } while ( condicion ); PROGRAMACIÓN ORIENTADA A OBJETOS
  • 51. Namespace • Organizan los diferentes componentes • Un programa puede contener varios namespaces • Un namespace puede contenermuchas clases • El programador puede crear sus propiosnamespaces • Para accesar a namespaces se usa la directiva using: using System; using System.Array; PROGRAMACIÓN ORIENTADA A OBJETOS
  • 52. Práctica : • Hacer un programa que capture un base y altura de un triángulo y despliegue un menú básico con las siguientes opciones: 1) Área del Triángulo 2) Perímetro del Triángulo 3) Superficie del Triángulo • Si el número capturado es distinto a los mencionados el programa termina. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 53. Ejercicios con ciclos y condiciones • Utilizando POO escribe un programa que capture un número en la rutina principal y por medio de un método de la clase calcule la tabla de multiplicar de ese numero desde el 1 hasta el diez. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 54. Práctica: • Utilizando POO escribe un programa que capture un número en la rutina principal y por medio de un método en clase calcule el factorial de un número entero PROGRAMACIÓN ORIENTADA A OBJETOS
  • 55. Sobrecarga de métodos • Un método sobrecargado se utiliza para reutilizar el nombre de un método pero con diferentes argumentos (opcionalmente un tipo diferente de retorno). Las reglas para sobrecargar un método son las siguientes: • Los métodos sobrecargados deben de cambiar la lista de argumentos. • Pueden cambiar el tipo de retorno. • Pueden cambiar el modificador de acceso. • Pueden declarar nuevas o más amplias excepciones. • Un método puede ser sobrecargado en la misma clase o en una subclase. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 56. Ejercicio de sobrecarga • Utilizando POO desarrolla un programa que capture un número en a rutina principal y calcule el valor absoluto del mismo dentro de una clase, este puede ser int, short, o long. • Debes crear un método sobrecargado por cada tipo de dato que regrese el resultado a la rutina principal. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 57. Práctica de sobrecarga • Escribe un programa que realice la suma de dos números utilizando sobrecarga de la siguiente forma: • Sumar entero y entero: retorna entero; • Sumar flotante y flotante: retorna flotante; • Sumar flotante y entero: retorna flotante; • Sumar entero y flotante: retorna flotante; PROGRAMACIÓN ORIENTADA A OBJETOS
  • 58. Evidencia de la unidad • Con las técnicas que hemos visto hasta ahora escribe un programa que calcule el impuesto a pagar por importación en una aduana bajo las siguientes condiciones: • El artículo puede ser nuevo o usado. • Los artículos nuevos pagan IEPS que consiste en 10% del valor • Los artículos usados no pagan IEPS • Los artículos que provienen de USA y CAN no pagan Impuesto General a la Importación (IGE) • Los artículos que provienen de cualquier otro país pagan 5% de IGE • Todos los artículos pagan IVA • Al final desplegar el total por impuesto y el total general de impuestos, así como el valor total de las mercancías importadas. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 59. • Debes realizar tantas clases sean necesarias. • Los atributos locales en las clases deben ser privados. • Debes crear tantos constructores y destructores se requieran. • La clase Program solo puede capturar valores e imprimir resultados pero no realizar cálculos. ¡Muchas suerte! PROGRAMACIÓN ORIENTADA A OBJETOS
  • 60. Bibliografía • Landa, N. (2010) . C# guía total del programador. RedUsers. Buenos Aires. ISBN 978-987-26013-5-5. • López, B. (2018). Curso de Programación Orientada a Objetos en C#.Net. Disponible en: http://www.itnuevolaredo.edu.mx/takeyas PROGRAMACIÓN ORIENTADA A OBJETOS