Programación Orientado A Objetos
Programación Orientado A Objetos
Programación Orientado A Objetos
Abstracción
1
PROGRAMADOR DE COMPUTADORAS
La abstracción consiste en aislar un elemento de su contexto o del resto de los
elementos que lo acompañan. En programación, el término se refiere al énfasis en
el "¿qué hace?" más que en el "¿cómo lo hace?" (característica de caja negra)
Clase
Instancia
2
PROGRAMADOR DE COMPUTADORAS
Herencia
Desde el punto de vista de la genética, cuando una persona obtiene de sus padres
ciertos rasgos (el color de los ojos o de la piel, una enfermedad genética, etc.) se
dice que los hereda. Del mismo modo en POO cuando una clase hereda de otra
obtiene todos los rasgos que tuviese la primera.
Dado que una clase es un patrón que define cómo es y cómo se comporta una
cierta entidad, una clase que hereda de otra obtiene todos los rasgos de la primera
y añade otros nuevos y además también puede modificar algunos de los que
ha heredado.
3
PROGRAMADOR DE COMPUTADORAS
A la clase de la que se hereda se le llama clase base, y a la clase que hereda de
ésta se le llama clase derivada.
Una clase hija o subclase puede usar propiedades de su clase padre o superclase
de este modo se simplifican los diseños y se evita la duplicidad de código al no
tener que codificar los métodos que ya están implementados
Encapsulamiento
Es ocultar atributos de una clase, que esté disponible para las transacciones de la
clase pero que esté oculto para actores externos.
Modularidad
Polimorfismo
4
PROGRAMADOR DE COMPUTADORAS
1.2. Implementación De Clases
Una clase es una estructura de datos que combina estados (campos) y acciones
(métodos y otros miembros de función) en una sola unidad. Una clase
proporciona una definición para instancias creadas dinámicamente de la clase,
también conocidas como objetos.
Por ejemplo, en .NET existe una clase llamada Form que sirve como molde para
construir cualquier ventana que necesite una aplicación tipo Windows. Las
ventanas que nosotros observamos en la pantalla de nuestro computador, son los
objetos generados con esa plantilla. Puede haber muchos objetos generados con
esa plantilla, pero lo que los puede hacer diferentes a unos de otros, son los
valores que se asignan a sus atributos como: alto, ancho, color, título, etc.
En C# una clase se define mediante la palabra clave class y una sintaxis básica
que encontramos para definirla, es la siguiente:
● Campos
● Propiedades
● Métodos
5
PROGRAMADOR DE COMPUTADORAS
o Cálculos y acciones que pueden realizarse mediante la clase
Sin embargo, las clases, campos, propiedades y métodos deben cumplir unos
niveles de seguridad que exigen el manejo del control de accesibilidad, sobre todo
por parte de agentes externos al proyecto de software donde se hayan definido.
Es por esto que la definición de cualquier clase debe ir antecedida de una palabra
clave que determina la accesibilidad que admite dicha clase. La sintaxis C# para
definir una clase es la siguiente:
La sección entre corchetes, que indica las palabras clave de accesibilidad, public,
private, protected, internal, que pueden utilizarse en la definición de una clase,
es opcional e indica cual es el nivel de acceso que se va a permitir sobre la clase.
Si no se especifica ningún nivel de accesibilidad, el compilador la define por
defecto como internal, lo cual significa que solo se permite el acceso a las clases
que hacen parte del mismo ensamblado. Mediante las palabras de accesibilidad
se pueden especificar los siguientes cinco niveles de protección para una clase:
6
PROGRAMADOR DE COMPUTADORAS
Propiedades
de la variable/campo name.
7
PROGRAMADOR DE COMPUTADORAS
1.3. Instanciar o crear Objetos
Como hemos dicho antes, la clase sirve para crear objetos, cada objeto creado de
la clase, lo llamaremos una instancia de la clase. Para crear una instancia u objeto
de una clase se usa la palabra new
Ejemplo:
Clase 🡪 Cliente
8
PROGRAMADOR DE COMPUTADORAS
1.4. Propiedades automáticas (abreviadas)
Ejemplo
1.5. Constructores en C#
Cada vez que se crea una clase o estructura, se llama a su constructor. Una clase
o estructura puede tener varios constructores que toman argumentos diferentes.
Los constructores permiten al programador establecer valores predeterminados,
limitar la creación de instancias y escribir código flexible y fácil de leer.
9
PROGRAMADOR DE COMPUTADORAS
Sintaxis de un Constructor en C#
10
PROGRAMADOR DE COMPUTADORAS
Por defecto los miembros son de instancia. Para volverlos estáticos, utilice el
modificador statict antes del nombre del miembro.
11
PROGRAMADOR DE COMPUTADORAS
12
PROGRAMADOR DE COMPUTADORAS
Llamada a Propiedades o métodos estáticos
13
PROGRAMADOR DE COMPUTADORAS
Ejemplo1
proyectoCirculo🡪Agregar🡪clase🡪AsignarNombre Circulo
Nombre de la clase
Método
14
PROGRAMADOR DE COMPUTADORAS
Double: es el tipo de dato del atributo o método
Dentro de un mismo archivo puede definir varias clases, como en este caso clase
circulo y la clase rectangulo.
Clase circulo
Clase Rectángulo
Los miembros de una clase son los atributos y métodos de los que van a disponer
todos los objetos de la misma
15
PROGRAMADOR DE COMPUTADORAS
Propiedade
s
16
PROGRAMADOR DE COMPUTADORAS
Crear un Objeto nuevoCliente
Para acceder a los miembros de una clase, se utiliza el nombre del objeto un
punto y el nombre del miembro (propiedad o método).
17
PROGRAMADOR DE COMPUTADORAS
En Form1 diseñar lo siguiente.
18
PROGRAMADOR DE COMPUTADORAS
19
PROGRAMADOR DE COMPUTADORAS
Otra manera de definir una clase
20
PROGRAMADOR DE COMPUTADORAS
También se puede (y se suele) omitir "this":
21
PROGRAMADOR DE COMPUTADORAS
1.7. Comportamiento o Métodos
[implementación]
Las partes marcadas con [] son opcionales y las que están entre <> son
necesarias:
22
PROGRAMADOR DE COMPUTADORAS
2. tipo de retorno, se usa para declarar si el método retornará algo como parte
de su ejecución. Los valores posibles pueden ser
muchos(int,double,float,decimal,char,string,date,etc.), y dependen de la
lógica del negocio. Un método puede regresar tipos por valor o referencia,
pero solo puede retornar un solo tipo.
En caso de que no exista necesidad de regresar algún valor, debemos
escribir void.
3. nombre, esta es una parte esencial de la definición de un método. El nombre
es un identificador que no debe comenzar por un número ni contener
caracteres que no sean alfanuméricos o guiones bajos.
Por convención, en C# los nombres de método comienzan con mayúscula,
aunque tú puedes escribirlos como quieras.
4. lista de parámetros, los métodos pueden recibir información del objeto que
los llama a través de los parámetros, la lista de parámetros está definida por el
método mediante la especificación del tipo de dato y el identificador de este, si
es necesario que el método reciba más de un parámetro estos se separan por
una coma.
5. implementación, es un conjunto de sentencias que definen el
comportamiento del método.
Ejemplos
Uno de los más grandes ejemplos de métodos es el método Main, que es el punto
de entrada de cualquier programa escrito en este lenguaje. Por ejemplo:
Main:
23
PROGRAMADOR DE COMPUTADORAS
24
PROGRAMADOR DE COMPUTADORAS
Este método no
tiene parámetros
25
PROGRAMADOR DE COMPUTADORAS
Llamada a un método
Método Divide
Devuelve un tipo double, tiene por nombre Divide, los parámetros son a y b,
ambos del tipo double, y el cuerpo del método es simplemente "return a/b;". Para
llamar a un método, debemos simplemente poner el nombre del método y sus
argumentos dentro de un paréntesis separado por comas. Para llamar al método
Divide declarado antes, simplemente debemos escribir Divide(8, 2); esos valores
8 y 2 podemos enviarle desde una variable cualquiera.
26
PROGRAMADOR DE COMPUTADORAS
Escriba como se llama la llamada al método divide desde botón btnDividir,
enviar los valores para sus parámetros desde un txtNumero1 y txtNumero2
27
PROGRAMADOR DE COMPUTADORAS
Pasando valores a los métodos Parámetros
El paso de parámetros por valor es usado por defecto para pasar parámetros a
métodos. Cuando se pasa un parámetro por valor a un método realmente se está
pasando una copia de dicho parámetro, por lo que las modificaciones que le
hagamos al parámetro dentro del método no afectarán al valor del parámetro
original.
Aunque el valor del parámetro a haya sido modificado dentro del método, este
parámetro solamente tiene una copia del valor del parámetro que pasamos al
método; por lo que cuando imprimimos el valor del parámetro vemos que este
parámetro ha mantenido su valor original.
28
PROGRAMADOR DE COMPUTADORAS
modificación sobre el parámetro dentro de la función afectará al parámetro
original.
La palabra clave ref debe de ser usada tanto en la declaración formal del método
como como en la llamada.
Sumar dos valores y el resultado devolver en una variable por referencia, esta
variable debe inicializar en cero. el método sumaReferencia retornará el resultado
en su parámetro por referencia. Por lo tanto, no usa la palabra return y es un
void.
Llamada al método
29
PROGRAMADOR DE COMPUTADORAS
Modificadores public y static
30
PROGRAMADOR DE COMPUTADORAS
Llamada de un método que no es static desde el formulario
Sobrecarga de métodos
31
PROGRAMADOR DE COMPUTADORAS
PRACTICO 1 CLASES Y OBJETOS
Crear un proyecto con el nombre PracticoClases y
nombre de la solución slnPracticoClases
2. Crear una clase con el nombre Numero, el cual tendrá un atributo num y
propiedad Num de tipo entero.
a. Dentro de la clase crear un método que permita verificar si el número
es par o impar
Devolver un valor booleano tipo de retorno método bool
b. Otro método que permita devolver la cantidad de dígitos que tiene el
número.
c. Otro método que permita verificar si el número es primo.
32
PROGRAMADOR DE COMPUTADORAS
33
PROGRAMADOR DE COMPUTADORAS
34
PROGRAMADOR DE COMPUTADORAS
35
PROGRAMADOR DE COMPUTADORAS
Los tipos de datos estructurados más comunes son: vectores y matrices (array),
cadenas de caracteres (string), registros y uniones, aunque estos últimos no los
vamos a ver en este curso.
CADENAS
VECTORES
36
PROGRAMADOR DE COMPUTADORAS
Definición
Columnas
MATRICES
Filas
37
PROGRAMADOR DE COMPUTADORAS
2.2. Cadenas
Las cadenas, por tanto, son objetos que disponen de métodos que permiten
operar sobre la información almacenada en dicha cadena. Así, encontraremos
métodos para buscar una subcadena dentro de la cadena, sustituirla por otra,
dividirla en varias cadenas atendiendo a un cierto separador, convertir a
mayúsculas o minúsculas, obtener la longitud de la cadena,Longitud:
etc. indica la cantidad de
caracteres que tiene una cadena.
Declaración de una cadena
Int longitud=cadena.Length;
String = H O L A M U N D O !
cadena
0 1 2 3 4 5 6 7 8 9 10
Acceder a una posición de una cadena y obtener la letra en una variable de tipo
char.
38
PROGRAMADOR DE COMPUTADORAS
//la variable letra1 almacena H
39
PROGRAMADOR DE COMPUTADORAS
En este ejemplo índice valdrá 2 y devuelve el índice de la primera 'a'.
En este ejemplo la variable corte valdrá "Frase". La función Remove, elimina parte
de la cadena, desde la posición indicada (5) hasta el final.
-Recortar la cadena:
40
PROGRAMADOR DE COMPUTADORAS
bool b = "texto" == "texto"; // Retornará 'true', ya que ambas cadenas contienen
"texto"
Concatenar cadenas:
string texto = "Cadena de" + " caracteres"; // Nótese el espacio antes de
"caracteres", si no se pusiera, aparecería junto: "decaracteres"
Crear una nueva solución con el nombre slncadena y el nombre del proyecto con
el nombre cadena
41
PROGRAMADOR DE COMPUTADORAS
En la propiedad name
del textBox1, escribir
txtCadena
42
PROGRAMADOR DE COMPUTADORAS
2.2.3. Cadenas Orientado a Objeto
Ejemplo: en el proyecto cadena Agregar una clase con el nombre clsCadena
43
PROGRAMADOR DE COMPUTADORAS
44
PROGRAMADOR DE COMPUTADORAS
45
PROGRAMADOR DE COMPUTADORAS
PRACTIO 2 DE CADENAS
Crear un proyecto con el nombre Cadena y nombre de la solución slnCadena
En la propiedad name
del textBox1, escribir
txtCadena
46
PROGRAMADOR DE COMPUTADORAS
47
PROGRAMADOR DE COMPUTADORAS
Crear una nueva solución con el nombre slnLista, el nombre del proyecto
Lista
Con esta sintaxis ahora podemos crear una list‹T› denominada ListaColores:
using System.Collections.Generic;
A los elementos individuales en una lista se puede acceder mediante el índice del
valor de la partida (teniendo en cuenta que el primer punto del índice es 0, el
segundo índice 1 y así sucesivamente). El valor del índice se encuentra entre
corchetes tras el nombre de la lista. Por ejemplo, para acceder al segundo punto
del objeto ListaColores:
MessageBox.Show(ListaColores[1]);
48
PROGRAMADOR DE COMPUTADORAS
Un elemento de la lista puede cambiar su valor de manera similar usando el índice
combinado con el operador de asignación. Por ejemplo, para cambiar el color de
verde a mamey:
ListaColores[2] = "Verde";
El uso de un foreach.
El foreach nos servirá para recorrer un listado de tipo de datos (int, double, string,
etc.) o un listado de listados de objetos (entiéndase como objeto una clase creada
previamente con sus respectivas variables y propiedades).
49
PROGRAMADOR DE COMPUTADORAS
Inserción de artículos en una lista
ListaColores.Insert(2, "Blanco");
Ordenando Listas
El método Sort permite ordenar los elementos de la lista, una vez se añaden
nuevos elementos aplicar el método Sort
ListaColores.Sort();
50
PROGRAMADOR DE COMPUTADORAS
ListaColores.Add("Green");
ListaColores.Add("Amarillo");
ListaColores.Add("Morado");
ListaColores.Add("Mamey");
MessageBox.Show(ListaColores.IndexOf("Amarillo"));
Esta técnica podría utilizarse para reemplazar un valor con otro. Por ejemplo, sin
conocer de antemano el valor del índice del "Amarillo" cadena podemos cambiar a
"Negro":
ListaColores[ListaColores.IndexOf("Amarillo")] = "Negro";
Método Count
Borrado de elementos
Todos los elementos de una lista podrán ser borrados mediante el método Clear():
ListaColores.Clear();
51
PROGRAMADOR DE COMPUTADORAS
52
PROGRAMADOR DE COMPUTADORAS
PRACTIO 3
List, ArrayList
Ejemplo
53
PROGRAMADOR DE COMPUTADORAS
54
PROGRAMADOR DE COMPUTADORAS
PRACTICO 4 EJEMPLO DE ARRAYLIST CON CLASES
Ejemplo de ArrayList con Clases
55
PROGRAMADOR DE COMPUTADORAS
DateTimePicker
DataGridView1
56
PROGRAMADOR DE COMPUTADORAS
57
PROGRAMADOR DE COMPUTADORAS
2.4. Vectores o Array de una dimensión
2.4.1. Definición de Vectores
tipo[] variable;
int[] vector;
58
PROGRAMADOR DE COMPUTADORAS
vector = new int[6]; //ahora almacenará 6 elementos
vector[0]=46;
Int elemento=vector[0];
int longitud=vector.Length;
Para desplazarse por cada casilla del vector use las estructuras repetitivas como
for, while, foreach, do while, etc.
String[] nombres;
Nombres=new string[10];
59
PROGRAMADOR DE COMPUTADORAS
El código siguiente muestra cómo agregar elementos en un Vector utilizando for.
En cada iteración se genera un dato randómico, luego le asignamos el valor
generado al vector en la posición(índice) i.
Podemos recuperar estos valores del Vector mediante el uso de un bucle for.
Escribiendo el nombre y la posición vector[i]
Ordenar un Vector
60
PROGRAMADOR DE COMPUTADORAS
61
PROGRAMADOR DE COMPUTADORAS
Mostrar el vector en un dataGridView
62
PROGRAMADOR DE COMPUTADORAS
En el proyecto vector agregar una clase
con el nombre clsVector
63
PROGRAMADOR DE COMPUTADORAS
64
PROGRAMADOR DE COMPUTADORAS
65
PROGRAMADOR DE COMPUTADORAS
2.5. Matrices
2.6. Definición de una Matriz
Una matriz es una estructura de datos que permite almacenar un conjunto
de datos del mismo tipo. Con un único nombre se define la matriz y por medio de
dos sub índices hacemos referencia a cada elemento de la misma (componente).
Las filas y columnas comienzan a numerarse a partir de cero, similar a los
vectores.
COLUMNAS
Fila 0
Fila 1
FILAS
Fila 2
Hemos graficado una matriz de 3 filas y 5 columnas. Para hacer referencia a cada
elemento debemos indicar primero la fila y luego la columna, por ejemplo, en el
componente 1,4 se almacena el valor 97. En este ejemplo
almacenamos valores enteros. Todos los elementos de la matriz deben ser del
mismo tipo (int, float, string etc.)
66
PROGRAMADOR DE COMPUTADORAS
Sintaxis para declarar y crear los arreglos bidimensionales
67
PROGRAMADOR DE COMPUTADORAS
68
PROGRAMADOR DE COMPUTADORAS
2.8. Mostrar una Matriz
69
PROGRAMADOR DE COMPUTADORAS
70
PROGRAMADOR DE COMPUTADORAS
71
PROGRAMADOR DE COMPUTADORAS
72
PROGRAMADOR DE COMPUTADORAS
73
PROGRAMADOR DE COMPUTADORAS
74
PROGRAMADOR DE COMPUTADORAS
75
PROGRAMADOR DE COMPUTADORAS
3. UNIDAD 3: CONTROLES
3.1. ErrorProvider
si los datos no son válidos, se llama al método SetError. El primer argumento del
método SetError especifica junto a qué control se muestra el icono. El segundo
argumento es el texto de error que debe mostrarse.
Parámetros
error.
76
PROGRAMADOR DE COMPUTADORAS
entonces los datos son válidos, entonces asignara datos en la lista y mostrara los
datos de la lista en el dataGridView1.
77
PROGRAMADOR DE COMPUTADORAS
78
PROGRAMADOR DE COMPUTADORAS
79
PROGRAMADOR DE COMPUTADORAS
80
PROGRAMADOR DE COMPUTADORAS
3.3. Aplicaciones de interfaz de múltiples documentos (MDI)
https://www.youtube.com/watch?v=zngH8voq_5U
https://www.youtube.com/watch?v=0_38qFLvgT0
3.4. MenuStrip
3.5. Colocar datos en el Portapapeles
Clipboard Clase
Ejemplos
81
PROGRAMADOR DE COMPUTADORAS
82
PROGRAMADOR DE COMPUTADORAS
3.7. Clase StreamReader
3.8. Evento ScrollBar.Scroll (Barra de Desplazamiento)
3.9. TrackBar (Control, formularios Windows Forms)
83