Professional Documents
Culture Documents
Programacin
Contenido
INTRODUCCIN.................................................................................................................... 2
FICHA TCNICA..................................................................................................................... 3
DESARROLLO DE CONTENIDOS.........................................................................................6
DESARROLLO DE PRCTICAS..........................................................................................69
INSTRUMENTOS DE EVALUACIN....................................................................................70
BIBLIOGRAFA..................................................................................................................... 72
INTRODUCCIN
Es importante aclarar desde un principio la diferencia que existe entre
programacin orientada a objetos y un lenguaje orientado a objetos.
La programacin orientada a objetos es una
filosofa,
un modelo de
FICHA TCNICA
Ficha Tcnica - Programacin
Nombra de la asignatura
Programacin
Justificacin
Objetivo
El alumno generar una aplicacin
informtica utilizando el paradigma
orientado a objetos en un lenguaje de
programacin para la solucin de un
problema especfico; aplicando buenas
Conocimientos previos
prcticas de programacin.
Metodologa de la Programacin
Capacidades Asociadas
Horas
Unidades Temticas
Prcticas
Tericas
Totales
Fundamentos de programacin
10
II
orientada a objetos
Ambiente de desarrollo de la POO
III
36
44
IV
Arreglos
12
18
Manejo de excepciones
10
12
68
22
90
Totales
Bibliografa
Autor
Arnow, David
Ao
(2004
)
Baltasar Garca,
(2008
J.
Cairo Battistuti
(2004
oriented approach
Metodologa de la Programacin
Metodologa De La Programacin
)
(2008
Osvaldo
Joyanes
Osvaldo
Cairo Battistuti
)
(198
Aguilar Luis
8)
Joyanes
(1992
Aguilar Luis
Katcheroff,
Pablo
Lpez Leobardo
)
(2006
)
(2006
)
Bibliografa
Autor
Rodrguez
Ao
(19
M.
Practicas
Tericas
Totales
Imparticin
10
1, 2
2, 3
36
44
12
10
68
6
2
22
18
12
90
Fundamentos de
programacin orientada a
II.
objetos
Ambiente de desarrollo
III.
de la POO
Programacin orientada a
IV.
V.
Semana de
objetos
Arreglos
Manejo de excepciones
TOTALES
DESARROLLO DE CONTENIDOS
3, 4, 5, 6, 7,
8, 9, 10
11, 12 , 13
14, 15
Unidades y Temas
I.
II.
III.
IV.
Arreglos.
a. Definicin de Arreglos
b. Manejo de arreglos
V.
Manejo de excepciones
a. Concepto y tipos de excepciones.
b. Manejo de excepciones.
c. Creacin y lanzamiento de excepciones.
en una
hombre trabaja y cuya idea bsica es que percibimos al mundo que nos rodea como
una variedad de objetos.
La POO (Programacin Orientada a Objetos) representa una metodologa de
programacin que se basa en las siguientes caractersticas:
1. Los diseadores definen nuevas clases (o tipos) de objetos.
2. Los objetos poseen una serie de operaciones asociadas a ellos.
3. Las operaciones tienden a ser genricas, es decir, operan sobre mltiples
tipos de datos.
4. Las clases o tipos de objetos comparten componentes comunes mediante
mecanismos de herencia.
Objeto
Es una entidad (tangible o intangible) que posee caractersticas y acciones que
realiza por s solo o interactuando con otros objetos.
Un objeto es una entidad caracterizada por sus atributos propios y cuyo
comportamiento est determinado por las acciones o funciones que pueden
modificarlo, as como tambin las acciones que requiere de otros objetos. Puede ser
definido como una encapsulacin y una abstraccin: una encapsulacin de atributos
y servicios, y una abstraccin del mundo real.
Para el contexto de POO un objeto es una entidad que encapsula datos (atributos) y
acciones o funciones que los manejan (mtodos). Tambin un objeto se define como
una instancia o particularizacin de una clase.
Los objetos de inters durante el desarrollo de software no slo son tomados de la
vida real (objetos visibles o tangibles), tambin pueden ser abstractos. En general
son entidades que juegan un rol bien definido en el dominio del problema. Un libro,
una persona, un carro, un polgono, son apenas algunos ejemplos de objeto.
Cada objeto puede ser considerado como un proveedor de servicios utilizados por
otros objetos que son sus clientes. Cada objeto puede ser a la vez proveedor y
cliente. De all que un programa pueda ser visto como un conjunto de relaciones
entre proveedores clientes. Los servicios ofrecidos por los objetos son de dos tipos:
8
Mtodo
Son las operaciones (acciones o funciones) que se aplican sobre los objetos y que
permiten crearlos, cambiar su estado o consultar el valor de sus atributos.
Los mtodos constituyen la secuencia de acciones que implementan las operaciones
sobre los objetos. La implementacin de los mtodos no es visible fuera de objeto.
Atributo
Son los datos o variables que caracterizan al objeto y cuyos valores en un momento
dado indican su estado.
10
Herencia
Es el proceso mediante el cual un objeto de una clase adquiere propiedades
definidas en otra clase que lo preceda en una jerarqua de clasificaciones. Permite la
definicin de un nuevo objeto a partir de otros, agregando las diferencias entre ellos,
evitando repeticin de cdigo y permitiendo la reusabilidad.
Las clases heredan los datos y mtodos de la superclase. Un mtodo heredado
puede ser sustituido por uno propio si ambos tienen el mismo nombre.
La herencia puede ser simple (cada clase tiene slo una superclase) o mltiple
(cada clase puede tener asociada varias superclases). La clase Docente y la clase
Estudiante heredan las propiedades de la clase Persona (superclase, herencia
simple). La clase Preparador (subclase) hereda propiedades de la clase Docente y
de la clase Estudiante (herencia mltiple).
11
"cmo
hacer". La
especificacin
es visible
al
la
implementacin se le oculta.
El encapsulamiento en un sistema orientado a objeto se representa en cada clase u
objeto, definiendo sus atributos y mtodos con los siguientes modos de acceso:
Pblico. Atributos o Mtodos que son accesibles fuera de la clase. Pueden ser
implementacin de la clase.
Protegido. Atributos o Mtodos que son accesibles para la propia clase y sus
clases hijas (subclases).
Polimorfismo
Es una propiedad de la POO que permite que un mtodo tenga mltiples
implementaciones, que se seleccionan en base al tipo objeto indicado al solicitar la
ejecucin del mtodo.
El polimorfismo operacional o Sobrecarga operacional permite aplicar operaciones
con igual nombre a diferentes clases o estn relacionados en trminos de inclusin.
En este tipo de polimorfismo, los mtodos son interpretados en el contexto del objeto
particular, ya que los mtodos con nombres comunes son implementados de
diferente manera dependiendo de cada clase.
Por ejemplo, el rea de un cuadrado, rectngulo y crculo, son calculados de manera
distinta; sin embargo, en sus clases respectivas puede existir la implementacin del
rea bajo el nombre comn rea. En la prctica y dependiendo del objeto que llame
al mtodo, se usar el cdigo correspondiente.
Otro ejemplo de polimorfismo es el operador +. Este operador tiene dos funciones
diferentes de acuerdo al tipo de dato de los operandos a los que se aplica. Si los dos
elementos son numricos, el operador + significa suma algebraica de los mismos,
en cambio si por lo menos uno de los operandos es un String o Carcter, el operador
es la concatenacin de cadenas de caracteres.
12
13
14
Abrir un proyecto
15
Para poder abrir un proyecto en Visual Studio solo es necesario ir al men Archivo
(File) y dar en la Abrir (open) y en la opcin de Proyecto/Solucin
(Project/solution)
16
Guardar
Cuando se crea un proyecto se guarda por defecto en la ruta establecida. Lo que
ocurre con el proceso de guardado es que: 1. Guardar el cambio en el archivo
modificado en ese momento; 2 Guarda el proyecto en otra ruta de directorio; 3
Guardar todos los cambios de los archivos que se han modificado en ese momento.
Para poder acceder al guardado es necesario ir al men Archivo y se podr
observar las opciones de guardado como en la siguiente imagen.
Otra forma de hacerlo es con la barra de tareas en el icono con la imagen de los
disquetes.
Compilar
Cuando trabajamos en el entorno este cuenta con su depurador que se encarga de
compilar el cdigo generado y hacer un chequeo rpido de errores en sintaxis en
nuestro programa. Para ejecutar el compilador debemos acceder a la men
Compilar (Build) y en la opcin Compilar solucin (build solution), o bien F7.
17
Ejecutar
Una vez finalizado el cdigo y que no cuente con errores prosigue la accin
ejecutar (o depuracin) para visualizar el comportamiento del cdigo. Para ello
vamos al men Depurar (debug) y en la opcin Iniciar sin depurar
18
En caso de que el cdigo cuento con alguna anomala se presentar una lista de
errores.
Como el proyecto que se seleccion es Aplicacin de consola aparecer una
ventana como la siguiente:
Depurar
La opcin Depurar genera un diagnstico afondo del cdigo desarrollado, para
acceder al proceso de depuracin es men Depurar y la opcin Iniciar depuracin
20
Clase
e corto
.NET
Tipo
Anch
Intervalo (bits)
byte
Byte
0 a 255
sbyte
SByte
-128 a 127
int
Int32
32
-2.147.483.648 a 2.147.483.647
uint
UInt32
32
0 a 4294967295
short
Int16
16
-32.768 a 32.767
ushort
UInt16
16
0 a 65535
long
Int64
64
-922337203685477508 a
922337203685477507
ulong
UInt64
64
0 a 18446744073709551615
float
Single
Tipo de punto
32
-3,402823e38 a 3,402823e38
flotante de
21
precisin simple
double
Double
Tipo de punto
64
flotante de
-1,79769313486232e308 a
1,79769313486232e308
precisin doble
char
Char
Un carcter
16
Unicode
bool
object
Boolea
Tipo Boolean
lgico
Object
True o false
128
String
Una secuencia de
caracteres
decim
Decim
Tipo preciso
al
al
fraccionario o
integral, que
puede representar
nmeros
decimales con 29
dgitos
significativos
as
base
bool
break
byte
case
catch
char
checked
class
const
continue
decimal
default
delegate
do
double
else
enum
event
explicit
extern
false
finally
fixed
float
for
foreach
goto
if
implicit
in
in (generic modifier)
int
interface
internal
is
lock
long
namespace
new
null
object
operator
out
override
params
private
protected
public
readonly
ref
return
sbyte
sealed
short
sizeof
stackalloc
static
string
struct
switch
this
throw
true
try
typeof
uint
ulong
unchecked
unsafe
ushort
using
virtual
void
volatile
while
23
add
alias
ascending
async
await
descending
dynamic
from
get
global
group
into
join
let
orderby
partial (type)
partial (method)
remove
select
set
value
var
yield
24
Una constante es otro tipo de campo. Contiene un valor que se asigna cuando
se compila el programa y nunca cambia despus. Las constantes se declaran con la
palabra clave const; son tiles para que el cdigo sea ms legible.
Sintaxis <Constante>
const <Tipo de dato> <Nombre de la constante> = <valor>;
Ejemplo:
const double pi = 3.1416;
Para conocer ms:
https://msdn.microsoft.com/es-MX/library/wew5ytx4%28v=vs.90%29.aspx
Operadores.
o Aritmticos.
La mayora de las aplicaciones realiza clculos aritmticos. Las expresiones
aritmticas deben escribirse en formato de lnea recta para facilitar la introduccin de
aplicaciones en la computadora. Por ende, las expresiones como a dividida entre b
deben escribirse como a / b, de manera que todas las constantes, variables y
operadores aparezcan en una lnea recta.
A continuacin se presenta una tabla con los operadores aritmticos binarios en
C#:
Operador de C#
Suma
Resta
Multiplicacin
Divisin
Residuo
Operador
Expresin
aritmtico
+
*
algebraica
a+b
a-c
ab
a/b ,
a
b
, ab
a mod b
25
Expresin en C#
a+b
a b
a*b
a/b
a%b
26
Operador estndar
algebraicos de igualdad
y relacionales
Operado de igualdad
=
Operadores
Operador de igualdad o
relacional en C#
relacionales
>
<
Ejemplo
Significado de la
condicin
==
!=
x == y
x != y
x es igual a y
x no es igual a y
>
<
>=
<=
x>y
x<y
x >=
x <=
x es mayor que y
x es mejor que y
x es mayor o igual que y
x es menor o igual que y
Las dos lneas anteriores son equivalentes, pues el operador compuesto += lo que
hace es asignar a su primer operando el valor que tena ms el valor de su segundo
operando. Como se ve, permite compactar bastante el cdigo.
Aparte del operador de asignacin compuesto +=, tambin se ofrecen operadores de
asignacin compuestos para la mayora de los operadores binarios ya vistos.
Estos son: +=,-=,*=, /=, %=, &=, |=, ^=, <<= y >>=. Ntese que no hay versiones
compuestas para los operadores binarios &&y ||.
Otros dos operadores de asignacin incluidos son los de incremento (++) y
decremento (--) Estos operadores permiten, respectivamente, aumentar y disminuir
en una unidad el valor de la variable sobre el que se aplican. As, estas lneas de
cdigo son equivalentes:
temperatura = temperatura + 1; // Sin usar asignacin compuesta ni incremento
temperatura += 1; // Usando asignacin compuesta
temperatura++; // Usando incremento
27
Comentarios
28
Literales
Un literales la representacin explcita de los valores que pueden tomar los tipos
bsicos del lenguaje. A continuacin se explica cul es la sintaxis con que se
escriben los literales en C# desglosndolos segn el tipo de valores que
representan: expresiones.
o Literales enteros.
Un nmero entero se puede representar en C# tanto en formato decimal como
hexadecimal. En el primer caso basta escribir los dgitos decimales (0-9) del nmero
unos tras otros, mientras que en el segundo hay que preceder los dgitos
hexadecimales (0-9, a-f, A-F) con el prefijo 0x. En ambos casos es posible preceder
el nmero de los operadores + o para indicar si es positivo o negativo, aunque si
no se pone nada se considerar que es positivo.
o Literales reales.
Los nmeros reales se escriben de forma similar a los enteros, aunque slo se
pueden escribir en forma decimal y para separar la parte entera de la real usan el
tradicional punto decimal. Tambin es posible representar los reales en formato
cientfico, usndose para indicar el exponente los caracteres e o E. Ejemplos de
literales reales son 0.0, 5.1, -5.1, +15.21,3.02e10, 2.02e-2, 98.8E+1, etc.
o Literales lgicos.
29
Los nicos literales lgicos vlidos son true y false, que respectivamente
representan los valores lgicos cierto y falso.
o Literales de carcter.
Prcticamente cualquier carcter se puede representar encerrndolo entre comillas
simples. Por ejemplo, 'a'(letra a), ' '(carcter de espacio), '?' (smbolo de
interrogacin), etc. Las nicas excepciones a esto son los caracteres que se
muestran en la tabla a continuacin:
Carcter
Comilla simple
Comilla doble
Comilla doble
Carcter nulo
Alarma
Retroceso
Salto de pgina
Nueva lnea
Retorno de carro
Tabulacin horizontal
Tabulacin vertical
Barra invertida
o Literales de cadena.
Una cadena no es ms que una secuencia de caracteres encerrados entre comillas
dobles. Por ejemplo Hola, mundo, camin, etc. El texto contenido dentro estos
literales puede estar formado por cualquier nmero de literales de carcter
concatenados y sin las comillas simples, aunque si incluye comillas dobles stas han
de escribirse usando secuencias de escape porque si no el compilador las
interpretara como el final de la cadena.
C# tambin admite un nuevo formato para la escritura estos literales tipo de literales
consistente en precederlas de un smbolo @, caso en que todo el contenido de la
cadena sera interpretado tal cual, sin considerar la existencia de secuencias de
escape.
30
o Literal nulo.
El literal nulo es un valor especial que se representa en C# con la palabra reservada
null y se usa como valor de las variables de objeto no inicializadas para as indicar
que contienen referencias nulas.
Expresiones.
Una expresin es una secuencia de uno o ms operandos y cero o ms
operadores que se pueden evaluar como un valor, objeto, mtodo o espacio de
nombres nico. Las expresiones pueden constar de un valor literal, una invocacin
de mtodo, un operador y sus operandos o un nombre simple. Los nombres simples
pueden ser el nombre de una variable, miembro de tipo, parmetro de mtodo,
espacio de nombres o tipo.
Las expresiones pueden utilizar operadores que, a su vez, utilizan otras
expresiones como parmetros o llamadas a mtodos cuyos parmetros son, a su
vez, otras llamadas a mtodos, de modo que pueden variar de simples a muy
complejas. A continuacin se muestran dos ejemplos de expresiones:
((x < 10) && ( x > 5)) || ((x > 20) && (x < 25))
System.Convert.ToInt32("35")
III.III Clases y Objetos
Clases
La sintaxis bsica para definir una clase es la que a continuacin se muestra:
class <nombreClase>
{
<miembros>
}
31
<tipoParmetro> <nombreParmetro>
Por ejemplo, el siguiente cdigo define un mtodo llamado Sumaque toma dos
parmetros de entrada de tipo int llamados par1y par2y devuelve un int con su
suma:
int Suma(int par1, int par2) {
return par1+par2;
}
o Parmetros de salida
Un parmetro de salida se diferencia de uno de entrada en que todo cambio que se
le realice en el cdigo del mtodo al que pertenece afectar al objeto que se le pase
al llamar dicho mtodo tanto si ste es de un tipo por como si es de un tipo
referencia.
Los parmetros de salida se definen de forma parecida a los parmetros de entrada
pero se les ha de aadir la palabra reservada out. O sea, se definen as:
out <tipoParmetro> <nombreParmetro>
Al llamar a un mtodo que tome parmetros deeste tipo tambin se ha preceder el
valor especificado para estos parmetros del modificador out. Una utilidad de esto es
facilitar la legibilidad de las llamadas a mtodos. Por ejemplo, dada una llamada de
la forma:
a.f(x, out z)
o Parmetros por referencia
Un parmetro por referencia es similar a un parmetro de salida slo que no es
obligatorio modificarlo dentro del mtodo al que pertenece, por lo que ser
obligatorio pasarle una variable inicializada ya que no se garantiza su inicializacin
en el mtodo.
35
Los parmetros por referencia se definen igual que los parmetros de salida pero
sustituyendo el modificador out por el modificador ref.
o Mtodos constructores.
Cada vez que se crea una clase o struct, se llama a su constructor. Una clase o
struct puede tener varios constructores que toman argumentos diferentes. Los
constructores permiten al programador establecer valores predeterminados, limitar la
creacin de instancias y escribir cdigo flexible y fcil de leer.
Los constructores de un tipo de datos son mtodos especiales que se definen
como miembros de ste y que contienen cdigo a ejecutar cada vez que se cree un
objeto de ese tipo.
La sintaxis bsica de definicin de constructores consiste en definirlos como
cualquier otro mtodo pero dndoles el mismo nombre queel tipo de dato al que
pertenecen y no indicando el tipo de valor de retorno debido a que nunca pueden
devolver nada.
Es decir, se usa la sintaxis:
<modificadores> <nombreTipo>(<parmetros>)
{
<cdigo>
}
Al constructor de una clase se le llama en el momento en que se crea algn objeto
de la misma usando el operador new. De hecho, la forma de uso de este operador
es:
new <llamadaConstructor>
Por ejemplo:
class Prueba
{
Prueba(int x)
{
36
get
{
<cdigoLectura>
}
}
Una propiedad as definida sera accedida como si de un campo de tipo
<tipoPropiedad> se tratase, pero en cada lectura de su valor se ejecutara el
<cdigoLectura> y en cada escritura de un valor en ella se ejecutara
<cdigoEscritura>
Al escribir los bloques de cdigo get y set hay que tener en cuenta que dentro
del cdigo set se puede hacer referencia al valor que se solicita asignar a travs de
un parmetro especial del mismo tipo de dato que la propiedad llamado value; y que
dentro del cdigo get se ha de devolver siempre un objeto del tipo de dato de la
propiedad.
Objetos
o Operador new
La funcionalidad del operador new, es crear objetos y cuya sintaxis es:
new <nombreTipo>(<parametros>)
Este operador crea un nuevo objeto del tipo cuyo nombre se le indica y llama
durante su proceso de creacin al constructor del mismo apropiado segn los
valores que se le pasen en <parametros>, devolviendo una referencia al objeto
recin creado.
El constructor de un objeto no es ms que un mtodo definido en la definicin de su
tipo que tiene el mismo nombre que la clase a la que pertenece el objeto
El constructor recibe ese nombre debido a que su cdigo suele usarse precisamente
para construir el objeto, para inicializar sus miembros.
Utilizaremos el siguiente ejemplo:
38
class Persona
{
string Nombre; // Campo de cada objeto Persona que almacena su nombre
int Edad; // Campo de cada objeto Persona que almacena su edad
string NIF; // Campo de cada objeto Persona que almacena su NIF
void Cumpleaos() // Incrementa en uno la edad del objeto Persona
{
Edad++;
}
Persona (string nombre, int edad, string nif) // Constructor
{
Nombre = nombre; Edad = edad;
NIF = nif;
}
}
// Creamos variable p
39
Definicin
r de C#
public
private
protected
internal
protected
internal
case <valor2>:<bloque2>
<siguienteAccin>
...
default:<bloqueDefault>
<siguienteAccin>
}
break;
case Paco:
Console.WriteLine(Hola Paco. Me alegro de verte);
break;
default:
Console.WriteLine(Hola {0}, args[0]);
}
45
o Instruccin while.
La instruccin while permite ejecutar un bloque de instrucciones mientras se de una
cierta instruccin. Su sintaxis de uso es:
while (<condicin>)
<instrucciones>
Su significado es el siguiente: Se evala la <condicin> indicada, que ha de producir
un valor lgico. Si es cierta (valor lgico true) se ejecutan las<instrucciones> y se
repite el proceso de evaluacin de <condicin> y ejecucin de <instrucciones> hasta
que deje de serlo. Cuando sea falsa (false) se pasar a ejecutar la instruccin
siguiente al while.
Un ejemplo cmo utilizar esta instruccin es el siguiente:
int actual = 0;
while (actual < args.Length) {
Console.WriteLine(Hola {0}!, args[actual]);
actual = actual + 1;
}
En este caso, si se indica ms de un argumento al llamar al programa se
mostrar por pantalla un mensaje de saludo para cada uno de ellos. Para ello se usa
una variable actual que almacena cul es el nmero de argumento a mostrar en
cada ejecucin del while. Para mantenerla siempre actualizada lo que se hace es
aumentar en una unidad su valor tras cada ejecucin de las <instrucciones> del
bucle.
Por otro lado, dentro de las <instrucciones> de un while pueden usarse dos
instrucciones especiales:
o break; : Indica que se ha de abortar la ejecucin del bucle y continuarse
ejecutando por la instruccin siguiente al while.
46
47
una
excepcin
de
tipo
System.NullReferenceException,
que
<tipoElemento> ha de ser un tipo cuyos objetos puedan almacenar los valores de los
elementos de<coleccin>.
En tanto que una tabla se considera que es una coleccin, el siguiente cdigo
muestra cmo usar for para compactar an ms el cdigo dela clase HolaMundo For
anterior:
foreach(String arg in args)
Console.WriteLine(Hola {0}!, arg);
Para saber ms: https://msdn.microsoft.com/es-mx/library/e240yzs4(v=vs.90).aspx
III.V Encapsulamiento
La encapsulacin, que es un mecanismo que permite a los diseadores de
tipos de datos determinar qu miembros de los tipos creen pueden ser utilizados por
otros programadores y cules no. Las principales ventajas que ello aporta son:
o Se facilita a los programadores que vaya a usar el tipo de dato (programadores
clientes) el aprendizaje de cmo trabajar con l, pues se le pueden ocultar todos
los detalles relativos a su implementacin interna y slo dejarle visibles aquellos
que puedan usar con seguridad. Adems, as se les evita que cometan errores
por manipular inadecuadamente miembros que no deberan tocar.
o Se facilita al creador del tipo la posterior modificacin del mismo, pues si los
programadores clientes no pueden acceder a los miembros no visibles, sus
49
Los modificadores son partculas que se les colocan delante para indicar
desde qu cdigos puede accederse a ellos, entendindose por acceder el hecho de
usar su nombre para cualquier cosa que no sea definirlo, como llamarlo si es una
funcin, leer o escribir su valor si es un campo, crear objetos o heredar de l si es
una clase, etc.
o public: Puede ser accedido desde cualquier cdigo.
o protected: Desde una clase slo puede accederse a miembros protected de
objetos de esa misma clase o de subclases suyas.
o private: Slo puede ser accedido desde el cdigo de la clase a la que
pertenece. Es lo considerado por defecto.
Public
La palabra clave Public de la instruccin de declaracin especifica que se
puede tener acceso a los elementos desde el cdigo en cualquier parte del mismo
proyecto, desde otros proyectos que hagan referencia al proyecto y desde un
ensamblado compilado a partir del proyecto. El cdigo siguiente muestra un ejemplo
de declaracin Public.
Public Class classForEverybody
Puede utilizar Public solamente en el nivel de mdulo, interfaz o espacio de
nombres.
50
III.VI Herencia
51
53
III.VII Polimorfismo
El polimorfismo suele considerarse el tercer pilar de la programacin
orientada a objetos, despus de la encapsulacin y la herencia. Polimorfismo es una
palabra griega que significa "con muchas formas" y tiene dos aspectos diferentes:
o En tiempo de ejecucin, los objetos de una clase derivada pueden ser tratados
como objetos de una clase base en lugares como parmetros de mtodos y
colecciones o matrices. Cuando ocurre, el tipo declarado del objeto ya no es
idntico a su tipo en tiempo de ejecucin.
o Las clases base pueden definir e implementar mtodos virtuales, y las clases
derivadas pueden invalidarlos, lo que significa que pueden proporcionar su propia
definicin e implementacin. En tiempo de ejecucin, cuando el cdigo de cliente
llama al mtodo, CLR busca el tipo en tiempo de ejecucin del objeto e invoca
esa invalidacin del mtodo virtual. Por lo tanto, en el cdigo fuente puede llamar
a un mtodo en una clase base y hacer que se ejecute una versin del mtodo
de la clase derivada.
Es la habilidad que poseen los objetos para reaccionar de modo diferente
ante los mismos mensajes
54
Sobrecarga
La sobrecarga representa diferentes maneras de realizar una misma
accin, en los programas se usa el mismo nombre en diferentes mtodos con
diferentes firmas [nmero, orden y tipo de los parmetros], el
cdigo
de
55
Ejemplo:
Clase Transporte
public class Transporte
{
public int velocidadMaxima = 0;
public int pasajeros = 0;
Clase Auto
public class Auto : Transporte
{
public int puertas = 0;
public Auto(int pasajeros,int velocidadMaxima,int numeroLlantas, int puertas)
{
this.pasajeros = pasajeros;
this.velocidadMaxima = velocidadMaxima;
this.puertas = puertas;
}
public override void Camina()
{
56
57
Un ndice debe ser un entero no negativo; tambin puede ser una expresin. Por
ejemplo, si asumimos que la variable a es igual a 5 y b es igual a 6, entonces la
instruccin
c[ a + b ] += 2;
suma 2 al elemento c[ 11 ] del arreglo.
58
Esta tarea tambin puede llevarse a cabo en dos pasos, como se muestra a
continuacin:
int[ ] c; // declara la variable tipo arreglo
c = new int[ 12 ]; // crea el arreglo; lo asigna a la variable tipo arreglo
Arreglos unidimensionales:
int[ ] numbers;
Arreglos multidimensionales:
string[ , ] names;
Arreglos de arreglos (escalonadas):
byte[ ][ ] scores;
En C#, los arreglos son objetos (se explica ms adelante en este tutorial)
cuyas instancias deben crearse. Los siguientes ejemplos muestran cmo crear
arreglos:
Arreglos unidimensionales:
int[] numbers = new int[5];
Arreglos multidimensionales:
string[,] names = new string[5,4];
Inicializar arreglos
C# proporciona mtodos simples y sencillos para inicializar arreglos en el
momento de la declaracin encerrando los valores iniciales entre llaves ({}). Los
siguientes ejemplos muestran diferentes modos de inicializar diferentes tipos de
arreglos.
Nota
59
60
class CD
{
private string album;
private string artist;
public string Album
{
get {return album;}
set {album = value;}
}
public string Artist
{
get {return artist;}
set {artist = value;}
}
}
62
argumentos)
ArgumentNullException. Pasado argumento nulo
ArgumentOutOfRangeException. Pasado argumento fuera de rango
ArrayTypeMistmatchException. Asignacin a tabla de elemento que no es de
su tipo
COMException Excepcin de objeto COM
DivideByZeroException Divisin por cero
IndexOutOfRangeException ndice de acceso a elemento de tabla fuera del
cdigo inseguro
NullReferenceException Acceso a miembro de objeto que vale null
OverflowException Desbordamiento dentro de contexto donde se ha de
comprobar los desbordamientos (expresin constante, instruccin checked,
63
try
{
// Cdigo para tratar va aqu.
}
finally
{
// Cdigo que se ejecuta despus de que el bloque try va aqu.
}
try
{
// Cdigo para tratar va aqu.
}
catch (SomeSpecificException ex)
{
64
try
{
// Try to access a resource.
}
catch (System.UnauthorizedAccessException e)
{
// Call a custom error logging procedure.
LogError(e);
// Re-throw the error.
throw;
}
Bloques Finally
Un bloque finally permite limpiar las acciones que se realizan en un bloque try.
Si est presente, el bloque finally se ejecuta en ltimo lugar, despus del bloque try y
cualquier bloque catch coincidente. Un bloque finally se ejecuta siempre, sin tener en
cuenta si se produce una excepcin o si se encuentra un bloque catch que coincida
con el tipo de excepcin.
El bloque finally se puede utilizar para liberar recursos como secuencias de
archivos, conexiones de base de datos y controladores de grficos sin esperar a que
66
67
DESARROLLO DE PRCTICAS
ver archivo protocolo de prcticas programacin
68
INSTRUMENTOS DE EVALUACIN
LISTA DE COTEJO PARA EJERCICIOS
Producto:
Nombre o tema de la
Tarea:
Fecha:
Asignatura
Grupo:
Periodo cuatrimestral:
69
INSTRUCCIONES
Revisar las caractersticas que se solicitan y califique en la columna Valor Obtenido el valor
asignado con respecto al Valor del Reactivo. En la columna OBSERVACIONES haga las
indicaciones que puedan ayudar al alumno a saber cules son las condiciones no cumplidas.
Valor del Reactivo
5%
5%
Valor
Obtenido
15%
Buena Presentacin
No tiene faltas de ortografa
Desarrollo
Diseo de solucin. Cumple
30%
25%
con
Observaciones
las
seleccin e iteracin.
Resultados. Cumpli totalmente con el objetivo
10%
100%
esperados
Responsabilidad. Entrega su ejercicio a tiempo
CALIFICACIN
Producto:
Nombre o tema de la
Tarea:
Fecha:
Asignatura
Grupo:
Periodo cuatrimestral:
70
Criterios
4. Excelente (20)
Razonamiento
Usa pensamiento
completo
y
refinado.
Demuestra
un
anlisis profundo
del tema.
Demuestra una
comprensin
total del tema.
Comprensin del
tema.
Aplicacin de
procedimiento y
resolucin
correcta de los
ejercicios.
Entrega en tiempo
y forma
La resolucin de
los ejercicios es
correcta y clara.
Entrega
sus
ejercicios
en
tiempo y forma
establecidos
Nivel.
3. Satisfactorio
2. Puede
(15)
Mejorar (10)
Usa pensamiento Algunas
efectivo.
evidencias
de
pensamiento
Demuestra
el Un anlisis con
anlisis correcto errores.
del tema.
Demuestra una Demuestra una
comprensin
comprensin del
aceptable
del tema con errores.
tema.
La resolucin de La resolucin de
los ejercicios es los
ejercicios
la adecuada.
presenta
deficiencias.
Entrega
sus
ejercicios
ligeramente
inadecuados en
tiempo y forma
Entrega
sus
ejercicios
posteriormente
1. Inadecuado
(0)
No
presenta
ningn tipo de
razonamiento
No
presenta
ningn tipo de
anlisis.
No
demuestra
ningn tipo de
comprensin del
tema.
Una
resolucin
incorrecta de los
ejercicios.
No entrega sus
ejercicios ni en
tiempo ni en
forma
BIBLIOGRAFA
Baltarsar Garcia. Metodologa de la Programacin (2008). Prentice Hall
Harvey J Deitel y Paul J. Deitel.C# Cmo Programar (2007). Deitel
71