Programación Orientado A Objetos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 83

PROGRAMADOR DE COMPUTADORAS

1. UNIDAD 1: PROGRAMACIÓN ORIENTADO A OBJETOS


1.1. ¿Qué es la Programación Orientada a Objetos?
La Programación Orientada a Objetos (POO) es un paradigma de programación
que busca que nuestra forma de programar sea más cercana a la forma como nos
relacionamos en nuestro día a día.

El nombre de "Orientado a Objetos" se debe a que nuestro código creará objetos


que se encargarán de manipular los datos de entrada para así obtener datos de
salida. Estos objetos tendrán atributos, propiedades y métodos.

Una forma nueva de pensar

En donde tenemos un problema y lo descomponemos en distintos sub problemas


para poder llegar a tener soluciones más pequeños y simples.

Vamos a poner un ejemplo de nuestra vida cotidiana: Pensemos en un gato. Éste


tiene diferentes características, como su raza, nombre, color, tamaño, etc. El gato
también cuenta con diferentes acciones, como arañar, maullar, correr, etc.

En Programación Orientada a Objeto el gato sería un objeto. Las características


son los atributos del objeto y las acciones vendrían a ser los métodos.

Ahora veamos un ejemplo en programación. Tenemos un artículo creado. Este


artículo tiene diferentes propiedades como el nombre, cantidad de imágenes,
autor, etc. Y también contaría con métodos, tales como "compartir" el cual serviría
para enviar el artículo a diferentes redes sociales, otro método sería el actualizar
el artículo. Y así diferentes acciones que le demos.

Abstracción

En palabras simples la abstracción es pensar ¿Cuáles son los atributos y métodos


que necesita un objeto?

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

Una clase es como una plantilla o molde para la creación e instanciación de


objetos contienen la estructura básica de un objeto (Atributos, Propiedades y
Métodos).

Instancia

El proceso de crear un objeto a partir de una clase se llama Instanciar y cada


objeto creado también se le puede llamar Instancia.

Ejemplo de clases y objetos

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

Modularidad consiste en dividir un programa en módulos que puedan compilarse


por separado, sin embargo, tendrá conexiones con otros módulos.

Polimorfismo

Múltiples formas, tiene dos características el primero es que en tiempo de


ejecución los objetos de una clase derivada se pueden tratar como objetos de una
clase base en lugares

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.

Definir una clase

En C# una clase se define mediante la palabra clave class y una sintaxis básica
que encontramos para definirla, es la siguiente:

Miembros de una clase

● Campos

o Variables de la clase para almacenar datos

● Propiedades

o Es para leer o escribir el valor de un campo y se usa los métodos get y


set, el primero para obtener el valor del campo y el segundo para asignar
el valor a un campo o atributo

● 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:

[public | private | protected | internal] class NombreClase


{
// Miembros
}

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

Una propiedad es como una


combinación de una variable/atributo y
un método, y tiene dos métodos: get y
set

● El método get devuelve el valor

de la variable/campo name.

● El método set asigna un valor a la

variable o campo name. La


palabra value es una palabra clave que representa el valor que asignamos
a la propiedad.

Ahora podemos usar la propiedad Name para acceder y actualizar el campo


private de la clase Person:

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

Objeto🡪cliente JUAN PEREZ

La variable myObj hereda todos sus


métodos y atributos públicos de la clase
Person. Se debe escribir myObj seguido de
un punto, entonces se mostrará todos sus
atributos y métodos públicos.

8
PROGRAMADOR DE COMPUTADORAS
1.4. Propiedades automáticas (abreviadas)

C # también proporciona una forma de usar


propiedades abreviadas / automáticas, donde
no tiene que definir el campo para la
propiedad, y solo tiene que escribir get; y set;
dentro de la propiedad.
El siguiente ejemplo producirá el mismo
resultado que el ejemplo anterior. La única
diferencia es que hay menos código:

Ejemplo

Usando propiedades automáticas:

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.

En C# podemos definir un método que se ejecute inicialmente y en forma


automática. Este método se lo llama constructor. Si no se define un constructor, al
instanciar un objeto usando la palabra new se construye el constructor de forma
automática.
Este es un constructor
que se crea en forma
automática
El constructor tiene las siguientes características:

● Tiene el mismo nombre de la clase.

● Es el primer método que se ejecuta.

9
PROGRAMADOR DE COMPUTADORAS

● Se ejecuta en forma automática.

● No puede retornar datos.

● Se ejecuta una única vez.

● Un constructor tiene por objetivo inicializar atributos.

Sintaxis de un Constructor en C#

Modificador NombredelaClase (Parámetros)


{
Instrucciones
}
Veamos un Ejemplo de un constructor en C#

10
PROGRAMADOR DE COMPUTADORAS

Instanciar un objeto de la clase La ventaja de plantear un constructor en


lugar de definir un método con cualquier
nombre es que se llamará en forma
automática cuando se crea un objeto de
esta clase:

1.6. Miembros estáticos versus instancias

Una clase no estática puede contener métodos, campos, propiedades o eventos


estáticos. Siempre se tiene acceso al miembro estático con el nombre de clase, no
con el nombre de instancia. Solo existe una copia de un miembro estático,
independientemente del número de instancias de la clase que se creen. Los
métodos y las propiedades estáticos no pueden tener acceso a campos y eventos
no estáticos en su tipo contenedor, y tampoco pueden tener acceso a una variable
de instancia de un objeto a menos que se pase explícitamente en un parámetro de
método.

Por defecto los miembros son de instancia. Para volverlos estáticos, utilice el
modificador statict antes del nombre del miembro.

Ejemplo: Un campo static identifica exactamente una sola ubicación de


almacenamiento. Sin importar cuantas instancias de un tipo se generen,
solamente existe una copia de un campo static.

11
PROGRAMADOR DE COMPUTADORAS

12
PROGRAMADOR DE COMPUTADORAS
Llamada a Propiedades o métodos estáticos

Los métodos y propiedades estáticos solo pueden ser llamados utilizando el


nombre de la clase, no necesitamos instanciar un objeto de la clase

Asignar un valor a la propiedad hora de la clase Reloj

Obtener el valor de la propiedad hora de la clase Reloj

13
PROGRAMADOR DE COMPUTADORAS
Ejemplo1

Crear una Solución con el nombre EjemploClases y el nombre del proyecto

ProyectoCiruclo, luego clic derecho en

proyectoCirculo🡪Agregar🡪clase🡪AsignarNombre Circulo

Se nos creará un esqueleto básico de clase como el que sigue:


Atributo o campo

Nombre de la clase
Método

Get: Para obtener el valor del atributo Radio


Set: Para asignar el valor al atributo Radio;
Public: que se puede acceder a sus miembros desde otras clases

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

Hay dos maneras de definir una clase

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

Atributos son variables privados donde se


almacenará información.

Propiedades son públicos el cual nos


permitirá asignar(set) un valor al atributo y
obtener(get) valor del atributo.

Métodos son procedimientos o funciones


que permitirá manipular o realizar procesos
con los atributos.

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).

Ejemplo: Asignar Juan Pérez a la propiedad Nombre del objeto nuevoCliente

Ejemplo: Obtener el valor de la propiedad Nombre del objeto nuevoCliente

17
PROGRAMADOR DE COMPUTADORAS
En Form1 diseñar lo siguiente.

En la propiedad name del textBox, asignar


nombre txtRadio

En la propiedad name del label4, escribir


lblResultado

En la propiedad name del boton, escribir


btnCalcularArea, luego haga doble clic en el
botón.

Ejemplo: Instanciar la clase circulo y asignar un valor a la propiedad Radio.

El método CalcularAreaCirculo retorna un double por lo tanto lo recibimos en una


variable área de tipo double y luego mostramos área en un messageBox

En el proyectoCirculo agregar Form2, luego diseñe lo que se muestra, en el


evento clic del botón Instanciar un objeto de la clase Rectángulo con el nombre
objRectangulo, asignar valores a sus propiedades desde los textBox, acceder al
método CalcularAreaRectangulo y mostrar el resultado en messageBox.

18
PROGRAMADOR DE COMPUTADORAS

Instanciar un objeto de la clase cliente con el nombre objCliente1, asignar al


campo id el valor de 1, al campo nombre “Pedro Fernandez” y al campo edad 20.
Luego mostrar en un MessageBox todos los atributos o campos del cliente uno.

Instanciar un objeto de la clase cliente con el nombre objCliente2, asignar al


campo id el valor de 2, al campo nombre “María José Ortiz” y al campo edad 20.

19
PROGRAMADOR DE COMPUTADORAS
Otra manera de definir una clase

La fórmula para calcular el área de la circunferencia es área=pi*r 2, siendo que r es


radio, pi una constante que tiene el valor 3,14159 26535

Imaginémonos que tenemos una clase clsCirculo,


encapsulamos entre las llaves, definimos como
atributo radio de tipo double, el cual es privado.

Luego tenemos un método AsignarRadio, recibe


como parámetro una variable r de tipo double, el
cual le asignamos al atributo radio de la clase
clsCirculo.

Tenemos otro método ObtenerRadio, el cual


retorna el valor del atributo radio.

Otro método CalcularArea este método se


encarga de calcular el área del circulo, usa la
constante PI que se encuentra en la clase Math,
lo multiplica por radio al cuadrado. Este método
retorna un double

This: permite al programador referenciar cualquier de los miembros de una clase:


método, propiedad, campo, etc.

20
PROGRAMADOR DE COMPUTADORAS
También se puede (y se suele) omitir "this":

21
PROGRAMADOR DE COMPUTADORAS
1.7. Comportamiento o Métodos

Un método no es más que un procedimiento o acción escrito dentro de una


clase y se compone de datos y un comportamiento y que puede ser reutilizado en
cualquier clase.

Esta es la sintaxis común para escribir un método:

[modificador de acceso] <tipo de retorno> <nombre>([parámetros])

[implementación]

Las partes marcadas con [] son opcionales y las que están entre <> son
necesarias:

1. modificador de acceso, es una palabra reservada que especifica cuales de


los otros objetos tendrán acceso al método, puede ser:

● public. Todos tienen acceso.

● protected. Solo las clases derivadas tienen acceso.

● internal. Solo clases contenidas en el mismo ensamblado tienen acceso.

● private. Solo la clase que lo define tiene acceso él.

Si se omite, el valor por default es private.

Además, también podemos añadir el modificador static para especificar que un


método debe ser llamado desde la clase misma, sin necesidad de crear una
instancia de la clase.

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:

public static void Main(string[] args) ...

Que especifica que:

● el método Main es público

23
PROGRAMADOR DE COMPUTADORAS

● static indica que no necesitamos instanciar la clase para llamarlo

● void que no regresa ningún valor

● recibe un arreglo de cadenas como argumento

En C# las subrutinas se conocen como métodos, se codifican como parte de una


clase y se clasifican en

24
PROGRAMADOR DE COMPUTADORAS

Nombre del Método

Este método no
tiene parámetros

25
PROGRAMADOR DE COMPUTADORAS

Int: tipo de dato Resta: nombre recibe dos parámetros


a devolver del método a y b de tipo entero

No lleva el modificador de acceso, por lo


tanto, es private, quiere decir que este
método restar, solo puede ser usado desde
- Retorna: a - b la misma clase.

Llamada a un método

Llamamos desde el botón btnRestar en el evento click

Se lo asignamos a una variable resul de tipo entero lo que


retorna el método resta que recibe como parámetro a y b

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.

Escriba las partes del siguiente método

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

La declaración formal de parámetros también define variables. Hay cuatro tipos de


parámetros: parámetros por valor, por referencia, parámetros de salida, y arreglos
de parámetros

Paso por valor

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.

Llamada al método modificaVariable

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.

Paso por referencia

El paso de parámetros por referencia es la contraposición lógica al paso por valor.


En el paso por referencia no se realiza ninguna copia del objeto, sino que lo que
se le pasa al método es una referencia del objeto, por lo tanto, cualquier

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

como retorna vacío no le asignamos a una variable, el


valor retornado está en la variable r

29
PROGRAMADOR DE COMPUTADORAS
Modificadores public y static

Crear un proyecto con el nombre Metodos

Agregar una clase en dicho método con el nombre clsMetodos

Clic derecho en el proyecto->Agregar->clase, luego asigne un nombre

Escribir el método sumar dentro de la clase clsMetodos

Nombre del Proyecto Public: quiere decir que se puede


acceder desde cualquier clase
Nombre de la clase Static no necesita instanciar la clase
clsMetodos
Int que el método retorna un entero
Suma nombre del método
Int a, int b son los parámetros del
método

Método suma de la clase

Llamada del método desde el formulario

Cuando el método es static se debe escribir el nombre de


la clase separado por punto luego el nombre del método

Método que no es estático

30
PROGRAMADOR DE COMPUTADORAS
Llamada de un método que no es static desde el formulario

En este caso se debe instanciar un objeto de la clase clsMetodos se usa la


palabra reservada new, luego se escribe el objeto separado por punto y el nombre
del método

Sobrecarga de métodos

La sobrecarga de métodos consiste en poner varios métodos con el mismo


nombre en la misma clase, pero siempre que su lista de argumentos sea distinta.
Ojo, repito, siempre que su lista de argumentos sea distinta, es decir, no puede
haber dos métodos que se llamen igual con la misma lista de argumentos, aunque
devuelvan datos de distinto tipo. El compilador sabría a cuál de todas las
sobrecargas nos referimos por los argumentos que se le pasen en la llamada, pero
no sería capaz de determinar cuál de ellas debe ejecutar si tienen la misma lista
de argumentos.

int Suma(int x, int y)


{
return x + y;
}
int Suma(int x, int y, int z)
{
return x + y + z;
}

31
PROGRAMADOR DE COMPUTADORAS
PRACTICO 1 CLASES Y OBJETOS
Crear un proyecto con el nombre PracticoClases y
nombre de la solución slnPracticoClases

1. Crear una clase con el nombre Cuadrado, el cual tendrá


un atributo lado de tipo entero
a. Agregar un método para calcular el área del
cuadrado
b. Otro método que permita calcular el perímetro del
cuadrado.

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

3. Implementar la clase Operaciones, que tiene como atributo o campo a y b


de tipo double, también tendrá un constructor que reciba dos valores de tipo
double,
a. Crear métodos para calcular su suma, resta, multiplicación y división
con los atributos de la clase, cada una en diferentes métodos.
b. Crear otro método potencia, este debe calcular la potencia de a
elevado a b (usar la clase math y su método pow)
c. Crear otros dos métodos que permita retornar los valores de a y b.
Asignar el nombre obtenerNumeroA y otro con el nombre
ObtenerNumeroB.

33
PROGRAMADOR DE COMPUTADORAS

4. Implementaremos una clase llamada Persona que tendrá como propiedad


Nombre de tipo string y otro FechaNac de tipo dateTime. Usar los métodos
get y set para asignar y obtener el valor.
a. Agregar un método que permita calcular la edad de la persona y
retornar si es mayor de Edad, el tipo de dato devuelto debe ser un
valor booleano, si su edad es mayor o igual a 18 devolver verdadero
en caso contrario devolver falso, también debe devolver la edad de la
persona, pero se debe devolver en el parámetro del método y debe
ser definido por referencia.

34
PROGRAMADOR DE COMPUTADORAS

a. Agregar un método que permita calcular la edad de la persona y


retornar tipo de dato string, si edad menor a 2 entonces retornar
“Bebe”, si edad menor a 14, retornar “Niño”, si edad menor a 18,
retornar “Adolescente”, si edad menor a 30, retornar “Joven”, si
edad menor a 60, retornar “Adulto”, en caso contrario retornar
“Tercera Edad”. también debe devolver la edad de la persona, pero
se debe devolver en el parámetro del método y debe ser definido por
referencia.

35
PROGRAMADOR DE COMPUTADORAS

2. UNIDAD 2: TIPOS DE DATOS ESTRUCTURADOS


2.1. Introducción

Los tipos de datos estructurados se denominan así porque en su mayor parte


están destinados a contener múltiples valores de tipos de datos más simples,
primitivos. También se les llama muchas veces "tipos objeto" porque se usan para
representar objetos.

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

Definir una cadena string cadena=”Hola como estas”;

VECTORES

36
PROGRAMADOR DE COMPUTADORAS
Definición

Columnas
MATRICES

Filas

Definir una Matriz

37
PROGRAMADOR DE COMPUTADORAS

2.2. Cadenas

Las cadenas de caracteres se delimitan entre comillas dobles, en lugar de simples


como los caracteres individuales. En la declaración, sin embargo, no se indica
explícitamente que se quiere crear un nuevo objeto de tipo String, esto es algo
que infiere automáticamente el compilador.

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;

La variable longitud tiene


string cadena = "Hola Mundo!";
almacenado 11

String = H O L A M U N D O !
cadena

0 1 2 3 4 5 6 7 8 9 10

Índice o posición de las letras de una cadena, comienza desde cero

Acceder a una posición de una cadena y obtener la letra en una variable de tipo
char.

Se escribe el nombre de la cadena, el corchete de apertura y cierre, luego se


indica la posición. Ejemplo cadena[3], en este ejemplo hace referencia a la
posición o índice 3 de la cadena, cadena[3](cadena sub tres) tiene la letra A.

38
PROGRAMADOR DE COMPUTADORAS
//la variable letra1 almacena H

// la variable letra2 almacena O

2.2.1. Funciones de Cadenas

Este lenguaje de programación tiene algunas funciones para tratar las


cadenas (string), que nos pueden ser muy útiles.

-Obtener la longitud de la cadena:

En este ejemplo longitud valdrá 15.

Recorrer una cadena con el ciclo repetitivo for y mostrar en un messageBox

-Saber si una cadena contiene otra cadena:

En este ejemplo contiene valdrá "True".

-Obtener el índice de un carácter específico:

39
PROGRAMADOR DE COMPUTADORAS
En este ejemplo índice valdrá 2 y devuelve el índice de la primera 'a'.

-Eliminar parte de la cadena:

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.

-Reemplazar un carácter por otro:

En este ejemplo la variable nueva valdrá "Fr*se de prueb*". Sustituye el carácter


'a' por '*'.

-Recortar la cadena:

En este ejemplo la variable trozo valdrá "de". Extrae parte de la cadena


empezando por la posición indicada con el primer valor (6) y con una longitud de
2, indicado con el segundo valor.
-Eliminar espacios antes y después de la cadena:

Comparar dos cadenas:

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"

ToLower: devuelve una copia de la cadena en minúsculas.


string cadena = "ABC";

string cadena = cadena.ToLower(); // Retornará "abc"

ToUpper: devuelve una copia de la cadena en mayúsculas.


string cadena = "abc";

string cadena = cadena.ToUper(); // Retornará "ABC"

2.2.2. Ejemplos de Cadenas

Crear una nueva solución con el nombre slncadena y el nombre del proyecto con
el nombre cadena

Diseñar el siguiente formulario.

41
PROGRAMADOR DE COMPUTADORAS

En la propiedad name
del textBox1, escribir
txtCadena

Label3 asignar como


nombre lblLongitud

Textbox2 asignar como


nombre txtResultado

Definir la cadena en forma global

Doble clic en Cargar Cadena para generar el evento_click

Mostrar longitud de la cadena

Convertir la cadena a Mayúscula y mostrar en txtResultado

42
PROGRAMADOR DE COMPUTADORAS
2.2.3. Cadenas Orientado a Objeto
Ejemplo: en el proyecto cadena Agregar una clase con el nombre clsCadena

Agregar un nuevo formulario, luego copiar el contenido del Form1 a Form2

43
PROGRAMADOR DE COMPUTADORAS

Llamar a la clase clsCadena desde Form2


Instanciar un objeto cadena de tipo
clsCadena de forma global

En la propiedad cadena del objeto


asignar lo que se escribe en txtCadena

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

1. Insertar MenuStrip y Agregar las siguientes opciones


2. Diseñar el siguiente formulario
3. Definir una variable global cadena de tipo string
4. Programar o implementar para cada una de las opciones.

En la propiedad name
del textBox1, escribir
txtCadena

Label3 asignar como


nombre lblLongitud

Textbox2 asignar como


nombre txtResultado

5. En el proyecto cadena, agregar una clase con el nombre clsCadena


6. Agregar una propiedad Cadena de tipo string, Usar los métodos get y set para
asignar y obtener el valor.
7. Agregar métodos a la clase clsCadena para cada una de las opciones del
menú Strip
8. Agregar un nuevo formulario, luego copiar el contenido del Form1 a Form2

46
PROGRAMADOR DE COMPUTADORAS

2.3. Colecciones - List, ArrayList


Las colecciones de clases de C# son un conjunto de clases diseñadas
específicamente para agrupar objetos y llevar a cabo tareas con ellos.

Tanto la list‹T› como la ArrayList y otras clases de la Collections tienen


propiedades muy similares a los arrays de C# (para más detalles sobre estos
busquen nueva el tema Matrices y confirmen). Una ventaja fundamental de estas
clases sobre los arrays es que puedan crecer y reducir el número de objetos
almacenados.

La clase list‹T› está contenida en System.Collections.Generic, mientras que la


clase ArrayList figura en el System.Collections.

La sintaxis para crear una colección list‹T› es la siguiente:

List‹tipo› nombreLista = new List‹tipo›();

ArrayList es un objeto creado de una manera similar, aunque sin el argumento


de tipo:

ArrayList nombreLista = new ArrayList();

47
PROGRAMADOR DE COMPUTADORAS
Crear una nueva solución con el nombre slnLista, el nombre del proyecto
Lista

Definir una Variable global ListaColores

Con esta sintaxis ahora podemos crear una list‹T› denominada ListaColores:

using System.Collections.Generic;

Añadir artículos a las listas


Una vez que una lista se ha creado hay una serie de métodos que pueden ser
llamados a realizar tareas en la lista. En este caso para agregar elementos a la
ListaColores, se utiliza el método Add().
cada vez que haga clic en el botón añadirá un a las lista

Acceso a los elementos

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).

Al recorrer mediante el foreach, no necesitamos validar cuantos elementos


componen nuestro arreglo, la instrucción funcionará hasta que lea el último
elemento del arreglo o hasta que nosotros mediante una validación interrumpamos
el flujo del ciclo.

foreach (‘Tipo’ Nombre in Listado)


{
// Instrucciones.
}

Agregar el botón btnMostrarListaForeach


Todos los elementos de una lista se pueden acceder mediante un bucle foreach.
Por ejemplo:
foreach (string color in ListaColores)
{
MessageBox.Show(color);
}

foreach: quiere decir para cada elemento(color) en la ListaColores

49
PROGRAMADOR DE COMPUTADORAS
Inserción de artículos en una lista

Anteriormente se utilizó el método Add() para añadir elementos a una lista. El


método Add(), sin embargo, sólo añade elementos al final de una lista. A veces es
necesario añadir un nuevo tema en una ubicación específica en una
lista. Insert() es el método para este fin específico. Insert()recibe dos argumentos,
un entero que indica el índice de localización de la inserción y el tema que se
incluirá en ese lugar. Por ejemplo, para insertar un elemento en la posición 2 de la
lista seria:

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();

Búsqueda de elementos en una lista

Se proveen un buen número de métodos con las clases listas y la ArrayList. El


método más básico es el Contains(), en el cual cuando se pide a un
objeto ArrayList o List devuelve true si el tema se encuentra en la lista, o false si
no se encuentra.

El IndexOf() devuelve el valor de un índice de un elemento de la lista. Por


ejemplo, el código siguiente muestra el valor de salida de 2, que es el índice de la
posición de "Amarillo" en la cadena:

List‹string› ListaColores = new List‹string›();


ListaColores.Add("Red");

50
PROGRAMADOR DE COMPUTADORAS
ListaColores.Add("Green");
ListaColores.Add("Amarillo");
ListaColores.Add("Morado");
ListaColores.Add("Mamey");
MessageBox.Show(ListaColores.IndexOf("Amarillo"));

Si el elemento no se encuentra en la lista devuelve -1.

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";

El LastIndexOf() método devuelve el valor del índice del último elemento de la


lista para que coincida con el punto especificado. Esto es particularmente útil
cuando la lista contiene elementos duplicados.

Método Count

La propiedad Count, por otra parte, identifica cuantos artículos se encuentran


actualmente almacenados en la lista.

Borrado de elementos

Todos los elementos de una lista podrán ser borrados mediante el método Clear():

ListaColores.Clear();

Clear() Elimina los elementos de la lista y establece la propiedad Count a cero.

Otros métodos cuando la lista es de tipo entero o double:

51
PROGRAMADOR DE COMPUTADORAS

Sum: Calcula la sumatoria de todos los


elementos de la lista.
Average: Calcula el promedio de todos los
elementos de la lista.
Max: Devuelve el valor máximo
Mostrar en el ListBox1 ListaColores. Min: Devuelve el valor mínimo.

52
PROGRAMADOR DE COMPUTADORAS
PRACTIO 3

List, ArrayList

Practico 3 Ejemplo Listas


1. Agregar un nuevo formulario Form2, luego
diseñe lo siguiente.
2. Definir como global una Lista de tipo string con el
nombre ListaNombres
3. Mostrar el contenido de la lista ordenado en el
ListBox.
4. Mostrar el contenido de la lista con un
messageBox, recorrer la lista con foreach.

Ejemplo

1. Agregar un nuevo formulario Form3, luego diseñe lo siguiente.


2. Definir como global una Lista de tipo int con el nombre ListaNumeros
3. Mostrar el contenido de la lista ordenado en el ListBox.
4. Al hacer en el boton calcular que devuelva la suma de los elementos de la lista,
el promedio, valor Maximo, valor minimo.

53
PROGRAMADOR DE COMPUTADORAS

54
PROGRAMADOR DE COMPUTADORAS
PRACTICO 4 EJEMPLO DE ARRAYLIST CON CLASES
Ejemplo de ArrayList con Clases

1. Crear un proyecto con el nombre RegistrarEmpleado


2. Agregar una clase con el nombre empleado y definir sus propiedades del
empleado

Asigna el contenido de la lista en el listBox


Crear el siguiente formulario

55
PROGRAMADOR DE COMPUTADORAS

DateTimePicker

DataGridView1

Definir una variable ListaEmpleado de tipo ArrayList

56
PROGRAMADOR DE COMPUTADORAS

Vaciar datos del datagridview

Asignar datos de la ListaEmpleado al


datagridview

Función de tipo bool que verifica si el


ID del empleado ya existe. Si existe
retorna verdadero; si no existe
retorna falso.

Crear un método que permita limpiar los TextBox

57
PROGRAMADOR DE COMPUTADORAS
2.4. Vectores o Array de una dimensión
2.4.1. Definición de Vectores

¿Qué es un vector? Un vector (o arreglo unidimensional) es una estructura de


datos en la cual se almacena un conjunto de datos de un mismo tipo. Es decir que
un arreglo es una lista de n elementos que posee las siguientes características:

● Se identifica por un único nombre de variable

● Sus elementos se almacenan en posiciones contiguas de memoria

● Se accede a cada uno de sus elementos en forma aleatoria

Una variable i que


comienza en cero y
se desplaza hasta 4, Longitud o
a este valor también dimensión
se llama longitud o
dimensión del vector

Declaración de un Vector de tipo entero

tipo[] variable;

int[] vector;

En C# podemos indicar el tamaño del arreglo luego de la declaración. Esto nos


permite decidir qué tamaño va a tener el arreglo según lo que necesitemos.

vector = new int[100]; //la variable vector almacenará 100 elementos

58
PROGRAMADOR DE COMPUTADORAS
vector = new int[6]; //ahora almacenará 6 elementos

Asignar un Valor a una posición del Vector

vector[0]=46;

Obtener un Valor de una posición del Vector

Int elemento=vector[0];

Para saber cuántos elementos tiene un vector, use la propiedad Length

int longitud=vector.Length;

Para desplazarse por cada casilla del vector use las estructuras repetitivas como
for, while, foreach, do while, etc.

Declaración de un Vector de tipo string

String[] nombres;

Nombres=new string[10];

2.4.2. Cargar un Vector

Cargar datos randómicos en el Vector

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.

2.4.3. Mostrar un Vector

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

Puede ordenar los vectores en orden ascendente y descendente. Podemos usar el


método Array.Sort(vector)

También podemos utilizar el método de Array.Reverse(vector) para invertir la


secuencia de los elementos en el conjunto unidimensional entero.

2.4.4. Ejemplo de Vectores


Crerar una solución con el nombre slnVector, nombre del proyecto Vector

Diseñar el siguiente Formulario

60
PROGRAMADOR DE COMPUTADORAS

Definir el vector en forma global

61
PROGRAMADOR DE COMPUTADORAS
Mostrar el vector en un dataGridView

2.4.5. Vectores Orientado a Objetos

Agregar un nuevo Form2, en el proyecto Vector y Diseñar el siguiente


formulario

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

Col 0 Col 1 Col 2 Col 3 Col 4

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.)

Declarar o definir una matriz

66
PROGRAMADOR DE COMPUTADORAS
Sintaxis para declarar y crear los arreglos bidimensionales

int [,] Matriz;

Matriz = new int[ 3, 4 ]; // En este ejemplo estamos creando una matriz de 3


filas y 4 columnas.

Matrices de tipo enteros:


int[,] MatrizNumeros=new int[3,4]
Matrices de tipo string
string[,] MatrizString = new string[5,4];

Crear una solución con el nombre slnMatrices, el nombre del proyecto


Matriz, luego diseñe el siguiente Formulario.

Definir una Matriz en


forma Global

Ejemplo Cargar una matriz de n filas y m columnas, mostrar en un


DataGridView

67
PROGRAMADOR DE COMPUTADORAS

2.7. Cargar una Matriz

Al igual que en los arreglos de una dimensión se utilizaba un bucle (generalmente


for) para cargar u operar los elementos de un vector, así también en las matrices
vamos a utilizar bucles, con la diferencia que ahora utilizaremos un for para las
filas y otro for para las columnas (for anidados).

68
PROGRAMADOR DE COMPUTADORAS
2.8. Mostrar una Matriz

2.9. Ejemplo con Matrices

69
PROGRAMADOR DE COMPUTADORAS

70
PROGRAMADOR DE COMPUTADORAS

71
PROGRAMADOR DE COMPUTADORAS

2.10. Matrices Orientado a Objetos


En el proyecto Matriz, agregar un nuevo Form2, luego copiar todo el diseño del
Form1

72
PROGRAMADOR DE COMPUTADORAS

En el proyecto matriz agregar una clase con el nombre clsMatriz

73
PROGRAMADOR DE COMPUTADORAS

74
PROGRAMADOR DE COMPUTADORAS

75
PROGRAMADOR DE COMPUTADORAS
3. UNIDAD 3: CONTROLES
3.1. ErrorProvider

El componente ErrorProvider de formularios Windows Forms se utiliza para validar


los datos proporcionados por el usuario en un formulario o en un control.
Habitualmente, se utiliza junto con la validación de entrada del usuario en un
formulario o con la presentación de errores dentro de un conjunto de datos. Un
proveedor de errores es una alternativa mejor que mostrar un mensaje de error en
un cuadro de mensaje, porque una vez que se descarta un cuadro de mensaje, el
mensaje de error deja de estar visible. El componente ErrorProvider muestra un
icono de error ( ) junto al control correspondiente, por ejemplo, un cuadro de
texto; cuando el usuario coloca el puntero del mouse sobre el icono de error,
aparece una información sobre herramientas que muestra la cadena del mensaje
de error.

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.

Método ErrorProvider.SetError (Control, String)

Establece la cadena de descripción del error para el control especificado.

Parámetros

● Control : El control para establecer la cadena de descripción del error.

● Value: La cadena de descripción del error, o null o Empty para quitar el

error.

Al hacer clic en el botón btnAgregar, primeramente verifica si los datos son


válidos con el método DatosValidos() que retorna true o false, si retorna true

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

Para el ejemplo del formulario Registro de Empleados

En el código siguiente se comprueba la validez de los datos escritos por el


usuario; la primera condición verifica si el id empleado está vacío o si el número
ingresado no es número. Entonces mostrara un icono de error con un mensaje. En
caso contrario pregunta nuevamente si el nombre del empleado es vacío, si
cumple, entonces primeramente limpia cualquier icono de error, luego muestra el
error en el nombre del empleado y así sucesivamente con todos los campos del
formulario.

78
PROGRAMADOR DE COMPUTADORAS

3.2. Auto Completar TextBox


Desde la versión de Visual Studio 2005, algunos de los controles admiten la
característica Autocompletar incluyendo los controles TextBox. Las propiedades
como AutoCompleteCustomSource, AutoCompleteMode y AutoCompleteSource
para realizar un TextBox que completa automáticamente las cadenas de entrada
del usuario comparando las letras de prefijo que se introducen en los prefijos de
todas las cadenas en un origen de datos.

En el ejemplo de código siguiente se muestra cómo usar una colección como el


origen personalizado de Autocompletar para un control TextBox. En el ejemplo, se
realizan las tareas siguientes:

● Utiliza la propiedad AutoCompleteSource para permitir que el control


de TextBox acepte un origen personalizado para su comportamiento de
autocompletar.

● Utiliza la propiedad AutoCompleteCustomSource para establecer la lista


personalizada de valores.

● Utiliza la propiedad AutoCompleteMode para establecer cómo se muestran


los candidatos de autocompletar.

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

Espacio de nombres: System.Windows.Forms

Proporciona métodos para colocar datos en el Portapapeles del sistema y


recuperarlos. Esta clase no puede heredarse.

Ejemplos

En el ejemplo de código siguiente se usan métodos Clipboard para colocar datos y


recuperarlos del Portapapeles del sistema. Este código
supone button1, button2, textBox1 y textBox2 se han creado y colocado en el
formulario.

El método button1_Click llama a SetDataObject para tomar el texto seleccionado


del cuadro de texto y colocarlo en el Portapapeles del sistema.

El método button2_Click llama a GetDataObject para recuperar datos del


Portapapeles del sistema. El código utiliza IDataObject y DataFormats para extraer
los datos devueltos y muestra los datos en textBox2.

81
PROGRAMADOR DE COMPUTADORAS

3.6. Drag and Drop (Arrastrar y Soltar)


https://www.youtube.com/watch?v=B6kVAi0zS-M

82
PROGRAMADOR DE COMPUTADORAS
3.7. Clase StreamReader
3.8. Evento ScrollBar.Scroll (Barra de Desplazamiento)
3.9. TrackBar (Control, formularios Windows Forms)

83

También podría gustarte