Antología Programación Orientada A Objetos Guia y Practicas
Antología Programación Orientada A Objetos Guia y Practicas
Antología Programación Orientada A Objetos Guia y Practicas
MAYO 2014
INTRODUCCION
El desarrollo de software en la actualidad ha tomado mucho auge debido a
la existencia de lenguajes ms amigables. Cada da es ms fcil programar. La
tecnologa de los objetos ha logrado que el llamado programador pase a ser
armador de programs, es decir, solo arma mdulos de programacin que alguien
hizo y el rea de la programacin pasa a disminuir, segn el tipo de programa.
Es un hecho que programar orientado a objetos facilita la programacin y eso
repercute en los tiempos de desarrollo, lo cual vienen a disminuir
considerablemente y tambin se reduce el costo un programa.
PROPOSITO
CONTENIDO
con el mismo nombre, pero con relacin a la clase a la que pertenece cada uno,
con comportamientos diferentes.
En la quinta unidad el estudiante adquirir los conocimientos para tratar
situaciones
excepcionales que se presentan en tiempo de ejecucin.
La unidad seis, el estudiante aplica las operaciones necesarias para el manejo de
archivos de texto y binarios, temas que se utilizarn en materias posteriores.
OBJETIVO
Disear e implementar objetos de programacin que permitan resolver situaciones
reales y de ingeniera.
CONTENIDO
UNIDAD 3 Herencia.
3.1 Definicin: clase base, clase derivada.
3.2 Clasificacin. herencia simple, herencia mltiple.
3.3 Reutilizacin de miembros heredados.
3.4 Referencia al objeto de la clase base.
3.5 Constructores y destructores en clases derivadas.
3.6 Redefinicin de mtodos en clases derivadas.
UNIDAD 4 Polimorfismo.
4.1 Definicin.
4.2 Clases abstractas: definicin, mtodos abstractos, implementacin de clases
abstractas, modelado de clases abstractas.
4.3 Interfaces: definicin, implementacin de interfaces, herencia de interfaces.
4.4 Variables polimrficas (plantillas): definicin, uso y aplicaciones.
4.5 Reutilizacin de cdigo.
UNIDAD 5 Excepciones.
5.1 Definicin.
5.2 Tipos de excepciones.
5.3 Propagacin de excepciones.
5.4 Gestin de excepciones: manejo de excepciones, lanzamiento de
excepciones.
5.5 Creacin y manejo de excepciones definidas por el usuario.
Programacin estructurada
Separa los datos de las funciones que los manipulan. Como se muestra en la Figura 1, en
donde el dato 2 es utilizado nicamente por el subprograma 2, pero el dato 3 es empleado
por los subprogramas 1 y 2. Este tipo de programacin surgi como solucin a la
programacin secuencial. En esta etapa los programas son divididos por tareas concretas,
de tal forma que exista un programa principal que haca un llamado a los subprogramas
(funciones) cada vez que requera una tarea en especfico. Este tipo de programacin ha
sido muy usada, en lenguajes de programacin como C, Pascal, etc. Probablemente sea
familiar para ti porque en los cursos de programacin anteriores has realizado programas
estructurados, el programa principal est representado por la funcin main y cada funcin
La Programacin Visual parte de los lenguajes clsicos de programacin (C, Basic, Pascal),
generalmente lenguajes orientados a objetos, y descarga de ellos las tareas ms tediosas
como el control de los eventos o la puesta en escena grfica. Adems, dichos lenguajes de
programacin cuentan con ayudas para componentes visuales, asistentes, etc., que facilitan
ms la tarea del programador.
Algunos de los lenguajes visuales han sido denominados RAD (Rapid Application
Development), ya que tienen entre su misin acortar el tiempo necesario para realizar un
proyecto.
Por parte de Microsoft los lenguajes visuales forman parte de la plataforma Visual Studio,
que incluyen, entre otros, los lenguajes Visual C++ y el Visual Basic, Borland por su parte,
tienen el Borland C++ Builder y el exitoso Delphi, lenguaje visual derivado del Object
Pascal.
Los componentes de los lenguajes visuales tienen una parte grfica, parcialmente ajena a la
programacin sin ampliar el cdigo fuente. Tiene otra parte de programacin al estilo
clsico en donde las funciones son ejecutadas por medio de eventos que se disparan en
funcin de las acciones del usuario sobre la parte grfica.
De esta manera, el programador dedica su mayor esfuerzo en trabajar para encontrar la
solucin del problema. En estos lenguajes, simplemente se dibujan los botones, cajas de
texto y otros objetos visuales (a los que comnmente se les denomina controles) que
intervendrn en la ventana de la aplicacin y, en cada uno de ellos, se proporciona el acceso
a los eventos que puede responder cada objeto sin necesidad de escribir una sola lnea de
cdigo, ya que el lenguaje de programacin realiza esta tarea en forma transparente al
programador.
Figura 6. Click .
Propiedades y mtodos
Adems de los eventos, la mayor parte de los objetos, como los formularios y los controles,
son suministrados con propiedades y mtodos.
Propiedades: Una propiedad es una asignacin que describe algo sobre un objeto, como un
formulario. Dependiendo de la propiedad, se la puede asignar en tiempo de diseo usando
la ventana Propiedades y/o en tiempo de ejecucin al programar. Las propiedades tambin
son llamadas caractersticas, por ejemplo, las propiedades de una persona son: nombre,
edad, sexo, estado civil, etctera.
A continuacin, describimos dos ejemplos de las propiedades del formulario en Delphi:
Text: Esta propiedad especifica el texto asignado a una Tedit.
Width: Indica el tamao de un componente.
Mtodos: Son funciones que tambin son llamadas desde el programa, pero a diferencia de
los procedimientos no son programadas por el usuario, sino que vienen ya pre-programadas
con el lenguaje. Los mtodos realizan tareas tpicas, previsibles y comunes para todas las
aplicaciones. De ah que vengan con el lenguaje y que se libere al usuario de la tarea de
programarlos. Cada tipo de objeto o de control tiene sus propios mtodos.
En general, los mtodos slo pueden ser usados en tiempos de ejecucin, no en tiempo de
diseo. Algunos ejemplos de mtodos de formularios son el mtodo SHOW, que muestra
un formulario.
Los mtodos son invocados dando nombres al objeto y cuyo mtodo se est llamando,
listando el operador punto (.), y despus listando el nombre del mtodo. Como cualquier
rutina, los mtodos pueden incorporar argumentos.
Por ejemplo:
Miforma.show();
Este mtodo Show carga y muestra un formulario, dos acciones distintas que forman parte
del proceso de nacimiento o inicio a un formulario (al ejecutar el formulario de inicio se
carga tambin el formulario y despus se muestra). El mtodo Show puede ser invocado
como no modal o modal. Modal significa que no se ejecuta ningn cdigo posterior hasta
que el formulario se oculte o se descargue. Cuando se muestra un formulario modal no se
puede producir ninguna entrada de usuario (de teclado o click del ratn), excepto para los
objetos del formulario modal.
Programacin
secuencial
Programacin
estructurada
Programacin
orientada a
objetos
M1
Objetivo
El estudiante desarrollar un directorio telefnico, empleando la programacin orientada a
objetos, para ordenar eficientemente la informacin de los clientes de una empresa.
Preguntas de estudio
1.
2.
3.
4.
5.
6.
7.
Qu es una clase?
Qu es un objeto?
Cul es la diferencia entre objeto y clase?
Cules son los elementos que componen a una clase?
Qu son las propiedades?
Cmo se clasifican los tipos de datos?
Menciona cinco tipos de datos primitivos.Si se requiere almacenar una fecha, qu
tipo de dato se puede emplear?
8. Para qu se emplea el tipo de dato bool?
9. Qu es una constante?
10. Menciona un ejemplo de una constante.
11. Cmo se representan las acciones de una clase?
12. Qu es un mtodo?
13. Qu es void?
14. Para qu se usa la palabra reservada return?
15. Qu es un objeto?
16. Qu es una clase?
17. Cul es la funcin del constructor?Para qu sirve el destructor?
Introduccin
En este mdulo se especifican los principios de la programacin orientada a objetos, y su
facilidad para programar por enfocarse ms a la manera en que piensa el ser humano. La
clave de este paradigma es agrupar las variables y funciones en objetos y acceder a stos
por medio de interfaces. En este tema no se programarn todava en el entorno visual, sino
que haremos programas en modo consola. Los temas que se tratarn en este mdulo son:
Clases: En este tema se identifican las caractersticas, comportamientos u operaciones que
se pueden realizar con cada objeto.
Construccin del estado de un objeto: Cada objeto tiene diversas caractersticas, por
ejemplo, un objeto materia tiene un nombre, crditos y semestre; y cada una de estas
caractersticas corresponden a un tipo de dato distinto en el lenguaje de programacin.
En la programacin orientada a objetos existen elementos muy importantes que son: clases,
objetos, propiedades y mtodos.
Clase:
Es la descripcin de las propiedades de los objetos en conjunto con las operaciones que se
permiten con ellos. Encapsula datos y mtodos, es como un lenguaje para definir nuevos
tipos de datos dentro del lenguaje.
Una clase define el comportamiento y atributos de un grupo de objetos de caractersticas
similares.
Objeto:
Es una entidad del mundo real que se puede describir en funcin de sus caractersticas y
comportamientos.
Si observas las definiciones, existe una relacin muy estrecha entre la clase y el objeto, por
lo que podemos decir que una clase es unin de varios objetos. Por ejemplo, se podra decir
que una clase es como un molde y los objetos son las gelatinas que se realizan con ese
molde, como se muestra en la Figura 3. Se puede observar que cada gelatina tiene la misma
forma, pero el color, el sabor y los ingredientes con los que fueron preparadas son distintos;
de la misma forma sucede con los objetos, todos tienen las mismas propiedades y mtodos,
pero con valores distintos.
Nombre
Sexo
Semestre
Direccin
Si analizamos lo anterior, podemos decir que todos los objetos (Luis, Jorge, Ana) tienen las
mismas propiedades, pero cada uno tiene valores distintos, como se muestra en la Tabla 1;
por lo tanto, podemos resumir que un conjunto de objetos que comparten las mismas
propiedades forman una clase.
Nombre del
objeto
Luis
Jorge
Ana
Sexo
Masculino
Masculino
Femenino
Semestre
3
2
6
Direccin
Av. Carpio.
Av. Jazmn
Av. Los Cedros.
Mtodos:
Son las operaciones que se pueden realizar sobre el objeto, tambin llamadas acciones.
Existen mtodos pblicos, tambin conocidos como interfaces, que son los que se
comunican con otros objetos; y mtodos privados, que realizan operaciones internas entre
los objetos. Ejemplos de mtodos pueden ser las operaciones que se pueden hacer sobre un
objeto alumno, como son:
Inscribirlo
Modificar sus datos
Incrementar semestre
Baja de la institucin
Propiedades
Son las caractersticas individuales que diferencian a un objeto de otro (Ceballos, 2006).
Por ejemplo, en un supermercado se puede identificar la clase "producto", con las
propiedades:
Cdigo de barras
Nombre
Precio
Tipo de producto
Presentacin
Cada una de estas propiedades almacenar valores de diversos tipos, el cdigo de barras
almacenar nmeros, el nombre almacenar caracteres alfabticos y, posiblemente,
nmeros (por ejemplo, bold 3), el precio ser un valor numrico con punto decimal y as
sucesivamente. En los cursos de programacin pasados ya hemos analizado que existen
diferentes tipos de datos para almacenar valores, de igual forma sucede con lenguajes de
programacin visual como C#.Net, slo cambia un poco la nomenclatura y pueden existir
algunas variantes con estos tipos, pero, en general, en cualquier lenguaje de programacin
existen dos tipos de datos, los cuales son:
Tipo Descripcin
SByte Bytes con
signo.
Byte
Bytes sin
signo.
Int16 Enteros
cortos con
Bits
8
8
16
Rango de valores
-128 127
0 255
[-32.768, 32.767]
Alias
sbyte
byte
short
signo.
UInt16 Enteros
cortos sin
signo.
Int32 Enteros
normales.
UInt32 Enteros
normales sin
signo.
Int64
Enteros
largos.
[0, 65.535]
16
32
ushort
[-2.147.483.648,
2.147.483.647]
[0, 4.294.967.295]
32
64
int
uint
[9.223.372.036.854.775.808,
9.223.372.036.854.775.807]
[018.446.744.073.709.551.615]
UInt64 Enteros
largos sin
64
signo.
Single Reales con 7
[1,510-45 - 3,41038]
dgitos de
32
precisin.
Double Reales de
[5,010-324 - 1,710308]
15-16
64
dgitos de
precisin.
DecimalReales de
[1,010-28 - 7,91028]
28-29
128
dgitos de
precisin.
Boolean Valores
true, false
32
lgicos.
Char
Caracteres
[\u0000, \uFFFF]
16
Unicode.
String Cadenas de
El permitido por la memoria
Variable
caracteres.
Object Cualquier
Cualquier objeto
Variable
objeto.
Data
1/enero/1 a
Fechas y
Time
8
31/diciembre/1999
horas.
00:00:00 AM a 11:59:59 PM
long
ulong
float
double
decimal
bool
char
string
Object
Data Time
Casi todos los tipos de datos los hemos estudiado en los cursos pasados de programacin, a
excepcin del tipo de dato bool, el cual permite almacenar valores true o false, es decir,
falso o verdadero, los cuales son contrapuestos, de tal manera que un dato de tipo lgico
siempre est asociado a que algo se cumpla o no se cumpla. Ejemplo: Casado (true o false).
string
string
float
string
Matrices: Es un conjunto de elementos del mismo tipo y se accede a estos elementos por
medio de ndices. Existen matrices unidimensionales, multidimensionales y escalonadas
(matrices donde sus elementos son matrices).
Mtodos de
acceso
Public
Protected
Significado
Acceso no restringido.
Acceso limitado a la clase contenedora o a los tipos derivados
de esta clase.
Internal
Acceso limitado al proyecto actual.
Protected internal Acceso limitado al proyecto actual o a los tipos derivados de
la clase contenedora.
Private
Acceso limitado al tipo contenedor.
Diseo de mtodos
El comportamiento de un objeto queda definido por las acciones que puede emprender.
Para definir este comportamiento se pueden utilizar tanto mtodos como propiedades. Los
mtodos representan acciones que un objeto puede realizar, mientras que las propiedades
representan informacin sobre un objeto. Por ejemplo, la clase "alumnos" tiene varias
acciones, como pueden ser:
Un mtodo
Se puede definir como rutinas de cdigo definidas dentro del cuerpo de la clase, que se
ejecutan en respuesta a alguna accin tomada desde dentro de un objeto de esa clase, o bien
desde otro objeto de la misma o de otra clase (Ceballos, 2006).
Definicin de un mtodo
Los mtodos constan de una cabecera y del cuerpo del mtodo encerrado entre llaves. La
sintaxis es la siguiente:
Valor de retorno:
Especifica el tipo de expresin que retorna el mtodo. Puede ser de cualquier tipo de dato
primitivo o compuesto, incluyendo una clase. Adems, existe el valor (void), que indica que
la funcin no devolver ningn valor.
Return:
Es la instruccin que se encarga de devolver el resultado de la funcin. En caso de una
funcin void, se puede escribir return, sin especificar ningn valor.
Parmetros:
Son las variables que reciben los valores de los argumentos especificados cuando se
invocan los mismos. Consiste en una lista de cero, uno o ms identificadores con sus tipos,
separados por comas.
Como ya sabemos cmo se definen los mtodos, vamos a realizar un mtodo para
incrementar el semestre en la clase "alumno".
Mtodo Main:
Todo programa C# tiene un mtodo denominado Main. Este mtodo es el punto de entrada
al programa, y tambin el punto de salida. Se define de la siguiente manera:
Recuerda que desde el inicio del mdulo hemos hablado de la clase "alumnos" y poco a
poco la hemos codificando, finalmente la clase alumnos se ha concluido, identificando
propiedades y mtodos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.Collections.Generic;
using System.Text;
namespace clase_alumno
{
class calumno
{
private string num_control;
private string nombre;
private sbyte edad;
private sbyte semestre;
public void asigna_num_control( string xnum_control)
{
num_control = xnum_control;
}
public void asigna_nombre( string xnombre)
{
nombre = xnombre;
}
public void asigna_edad( sbyte xedad)
{
edad = xedad;
}
public void asigna_sem( sbyte xsem)
{
semestre = xsem;
}
public sbyte inc_semestre()
{
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
semestre++;
return semestre;
}
{
return num_control;
}
public string retorna_nombre()
{ return nombre;
}
public sbyte retorna_edad()
{ return edad;
}
public sbyte retorna_sem()
{
return semestre;
}
47.}
48. }
49. }
En la lnea 6 se especifica el nombre de la clase. Las lneas 8 a 11 especifican las
propiedades de la clase, desde las lneas 12 a 32 se codifican los mtodos.
Si analizamos los mtodos, observaremos que existen dos mtodos por cada propiedad de la
clase (asigna_num_control y retorna_num_control), esto debe realizarse as porque las
propiedades tienen un acceso private, lo que significa que no es posible acceder a las
propiedades de la clase desde otra clase, es por esto que necesitamos mtodos pblicos que
manipulen las propiedades privadas.
Haz click aqu , para seguir las instrucciones de instalacin de C# .Net y la creacin de
proyectos.
Para poder crear objetos de una clase y trabajar con ellos, se requiere un mtodo Main, ya
que es el punto de entrada y salida de cualquier programa.
Existen varias formas de crear un mtodo Main, pero vamos a tomar la ms sencilla y,
sobre todo, porque es la forma que ms se aplica en la programacin orientada a objetos. Y
consiste en crear otro archivo (almacenndolo en almacenado en la misma carpeta que la
clase) que contenga el mtodo Main.
Creacin de objetos:
Tambin se denominan instancias de las clases, y se refiere a emplear las clases como si
fueran tipos de datos y a partir de esto crear objetos que permitan almacenar informacin,
es muy importante comentar que las clases por s solas no pueden almacenar valores, por lo
que es necesario crear objetos. La instancia de una clase se realiza de la siguiente manera:
Nombre_clase nombre_objeto = new Nombre_clase();
Por ejemplo, para crear un objeto a partir de la clase alumno, se hara:
Constructores:
Un constructor es un mtodo especial de una clase que es llamado automticamente
siempre que se crea un objeto de esa clase. Su funcin es iniciar el objeto (Ceballos, 2006).
El constructor se distingue de los dems mtodos porque no se especifica el valor de
retorno y lleva el mismo nombre de la clase. Su definicin es:
public nombre_clase(parametros )
{
}
Para la clase alumnos un constructor que inicialice todos los datos de la clase sera:
public calumno(string xnum_control, string xnombre, sbyte xedad, sbyte xsemestre)
{
num_control = xnum_control;
nombre = xnombre;
edad = xedad;
semestre = xsemestre;
}
Probablemente te preguntars, cmo se hizo en el programa anterior en donde no se cre
ningn constructor y an as el programa funcion?, la respuesta es muy simple: en C#
existen constructores por omisin, los cuales no hacen nada, pero sern invocados cada vez
que se construya un objeto sin especificar ningn argumento, en cuyo caso el objeto ser
iniciado con los valores predeterminados por el sistema (propiedades numricas con cero,
propiedades de tipo cadena con espacio en blanco, etc.) Un constructor por omisin se
define:
public nombre_clase
{
}
Para la clase alumnos un constructor por omisin sera:
public calumno()
{
}
Es importante comentar que si se crea un constructor que inicializa un objeto, es buena
prctica de programacin hacer un constructor vaco, porque puede ser necesario crear un
objeto en blanco (sin datos).
A continuacin, te muestro el cdigo de la clase, agregndole el constructor de la clase
alumnos:
class calumno
{
private string num_control;
private string nombre;
private sbyte edad;
private sbyte semestre;
public void asigna_num_control(string xnum_control)
{
num_control = xnum_control;
}
public void asigna_nombre(string xnombre)
{
nombre = xnombre;
}
public calumno() //Constructor implcito
{
}
public calumno(string xnum_control, string xnombre, sbyte xedad, sbyte xsemestre)
{
num_control = xnum_control;
nombre = xnombre;
edad = xedad;
semestre = xsemestre;
}
public void asigna_edad(sbyte xedad)
{
edad = xedad;
}
public void asigna_sem(sbyte xsem)
{
semestre = xsem;
}
public sbyte inc_semestre()
{
semestre++;
return semestre;
}
}
}
El programa que contiene la funcin Main se vera de la siguiente manera:
1. namespace clase_alumno
2. {
3. class Program
4. {
5. static void Main(string[] args)
6. {
7. sbyte nuevo_sem;
8. calumno alumno = new calumno("96010313", "Fernando", 24, 2);
9. calumno alumno_en_blanco = new calumno();
10. Console.WriteLine("Creacin del objeto alumno ");
11. nuevo_sem=alumno.inc_semestre();
12. System.Console.WriteLine("El nuevo semestre es " + nuevo_sem);
13. Console.ReadKey();
14. }
15. }
16. }
Instrucciones:Realizar de forma individual, la clase con un mtodo Main, para ejecutar la clase del
directorio telefnico.
Objetivo
Preguntas de estudio
1. Cules son los elementos del Entorno Integrado de Desarrollo de Visual Studio?
2. Qu es una solucin?
3. Qu es un proyecto?
4. Qu es una propiedad?
5. Qu es un formulario?
6. Cul es la funcin de la propiedad StartPosition?
7. Cmo se pueden enlazar dos formularios?
8. Qu es icon?
9. Para qu sirve la propiedad WindowState?
10. Cmo se clasifican los controles?
11. Cul es la funcin del label?
12. Para qu sirve la propiedad passwordchar?
13. Para qu se puede emplear la propiedad sizemode?
14. Cules son las dos formas de asegurar la integridad y la consistencia de la base de
datos?
15. Cundo se activa el evento KeyPress?
16. Qu significa que un control tenga el foco?
17. Para qu es empleado en este tema el cdigo ASCII?
18. Cul es la funcin de la clase Canvas?
19. Cul es la funcin del operador "+" en tipos de datos string?
20. Cmo se convierte un tipo de dato entero a string?
Introduccin
Es hora de iniciar con las interfaces grficas, de olvidarse un poco de crear nuestras
interfaces con un sinfn de lneas de cdigo y slo preocuparnos por la funcionalidad de la
aplicacin. Los lenguajes de programacin visual nos proporcionan todas las herramientas
para crear aplicaciones de manera muy intuitiva con slo arrastrar controles sobre los
formularios. En este mdulo los temas que se analizarn son:
Elementos del entorno integrado de desarrollo: Se refiere a la estructura grfica del
entorno integrado de desarrollo de Visual C# 2005 Express.
Formularios: Tambin llamados ventanas, son la base de cualquier aplicacin, en este
tema se abordarn las principales propiedades de los formularios, as como sus eventos y
la forma de controlar a varios formularios en un mismo proyecto.
Controles bsicos y sus propiedades: En todos los lenguajes visuales existe un conjunto de
controles que permite la interaccin con el usuario, ya sea para introducir datos o para
mostrar resultados de cierto proceso. En este tema se analizarn los controles ms
importantes y sus propiedades.
Validaciones en controles de edicin: En cualquier sistema de informacin el usuario no es
el culpable de los errores cometidos, por lo tanto, toda la responsabilidad cae sobre el
programador, quien debe asegurarse de implementar ciertas restricciones sobre los
controles de edicin para evitar que el usuario ingrese datos errneos.
Operaciones aritmticas: Las operaciones aritmticas son un tema sencillo y, sobre todo,
para ti, porque en cursos pasados de programacin has realizado ciertos clculos, pero el
problema radica cuando se desea hacer operaciones con datos introducidos por el usuario
en controles de edicin, ya que stos son de tipo string y, como recordars, las
operaciones aritmticas deben ser realizadas sobre datos numricos.
d) Propiedades.
e) Editor de cdigo.
Propiedades: Como ya se mencion en los mdulos pasados, cada clase de objeto tiene
predefinido un conjunto de propiedades, como nombre, color, tamao. Por lo general, todas
las propiedades ya tienen valores establecidos, pero stos pueden ser modificados por el
programador en tiempo de diseo. Existe una propiedad denominada tag, la cual est
reservada para que el programador asigne un valor relacionado con el control. En el
prximo tema se especificarn los controles bsicos y sus propiedades.
Editor de cdigo: Es el rea destinada a escribir el cdigo fuente de las aplicaciones, por
ejemplo, si seleccionamos un botn y hacemos click derecho en ver cdigo, la pgina de
diseo ser sustituida por el editor de cdigo. Visual Studio proporciona varias
caractersticas que son de gran ayuda para el programador: bloques de cdigo contrables
(todo el cdigo de un if puede contraerse en una sola lnea), finalizacin de cdigo (al
escribir el nombre de un control muestra todas las propiedades y mtodos de ste).
Formularios
Es el plano de fondo de los controles, se puede decir que es un contenedor de controles; si
observas, todas las aplicaciones visuales parten de un formulario, comnmente llamado
ventana. Pueden existir varios formularios en el mismo proyecto, pero uno de stos ser el
principal y llamar a todos los dems. Un formulario es tratado como una clase y a partir de
ste se pueden crear varios objetos formulario. Al igual que los controles bsicos, los
formularios tambin contienen propiedades y mtodos, los ms importantes son:
StartPosition:
Determina la posicin del formulario cuando aparece la primera vez, los valores pueden
ser: (Normal, CenterScreen, CenterParent, WindowsDefaultLocation,
WindowsDefaultBounds).
Text:
Ttulo del formulario.
WindowState:
Indica el estado visual inicial del formulario, sus valores son: (Normal, Minimized,
Miximized).
Icon:
Indica el icono para un formulario. Este icono se muestra en el cuadro de men del sistema
del formulario y cuando el formulario se minimiza. La imagen por mostrar debe tener la
extensin .ico.
BackColor:
Color de fondo del formulario.
Enlace entre formularios:
Un proyecto est compuesto por varios formularios, por lo tanto, son necesarias algunas
lneas de cdigo para llamar a otros formularios, tal y como se muestra en la Figura 1, en
donde el formulario 1 hace un llamado al 2.
ejemplo, la conexin con una base de datos, pero no pueden ser vistos en tiempo de
ejecucin.
Visual Studio clasifica sus controles en varias categoras, las cuales son:
Controles comunes.
Contenedores.
Mens y barras de herramientas.
Datos.
Componentes.
Impresin.
Cuadros de dilogo.
Resultara muy extenso abordar en este curso todos los controles, por lo que slo
analizaremos los necesarios para crear sistemas de informacin. Cada clase de objeto tiene
predefinido un conjunto de propiedades, tales como nombre, tamao color, etc. Las
propiedades de un objeto representan todos los atributos que por definicin estn asociados
con ese objeto.
Existen propiedades comunes para todos los objetos, tal es el caso de la propiedad name, en
cambio, algunas propiedades son nicas para un control, por ejemplo, el interval, el cual es
nico para el timer.
MenuStrip
Es una forma de proveer al usuario de un conjunto de rdenes, lgicamente relacionadas,
agrupadas bajo un mismo ttulo. El conjunto de todos los ttulos correspondientes a los
mens diseados aparecern en la barra de mens situada debajo del ttulo del formulario.
Figura 2. Men.
Casillas de verificacin: Es un control que indica si una opcin particular est activada o
desactivada. Cada casilla de verificacin es independiente de las dems, ya que cada una de
ellas tiene su propio identificador. El nmero de opciones representadas de esta forma
puede ser cualquiera, y de ellas el usuario puede seleccionar todas las que desee cada vez.
Puedes usar las casillas de verificacin para indicar tus preferencias en deportes, por
ejemplo, si observas la Figura 3, en deportes preferidos puedes seleccionar natacin o tenis,
y si lo deseas puedes seleccionar las 3 opciones.
Para realizar esta operacin vamos a programar un evento (accin realizada por el usuario)
de la caja de texto. Cada vez que el usuario presiona una tecla de tipo carcter se activa el
evento KeyPress, que recibe como parmetro el valor ASCII de la tecla pulsada (el valor de
la tecla intro es 13), por lo tanto, para programar este evento es necesario realizar lo
siguiente
1. Crear un formulario con dos cajas de texto.
2. Seleccionar la primera caja de texto y hacer click derecho eligiendo propiedades.
3. En la ventana propiedades seleccionar el botn eventos.
4. Seleccionar el evento KeyPress, y hacer doble click sobre ste.
Campos obligatorios
En cualquier aplicacin deben existir campos obligatorios, es decir, que si no se introduce
algn dato no es posible almacenarlo; por ejemplo, cuando creaste tu cuenta de correo, en
el campo nombre y contrasea debera tener un valor porque, de lo contrario, al enviar los
datos mostraba un mensaje que no era posible guardar los datos. De la misma forma sucede
con los sistemas de informacin, se requiere ciertos datos que son obligatorios (nmero de
control, nombre), estas validaciones son realizadas al guardar o modificar los datos, por lo
tanto, se deben programar en el evento click del botn guardar.
Operaciones aritmticas
Operaciones aritmticas
Por lo regular, en todo procesamiento de informacin se requiere realizar operaciones
matemticas, ya sean simples funciones aritmticas o funciones trigonomtricas y clculos
especiales.
Las operaciones matemticas ya las has realizado en otros cursos de programacin, pero
aqu la problemtica surge cuando dichas operaciones son realizadas con datos introducidos
por el usuario en controles, tales como cajas de texto, combobox o cualquier control de
edicin, debido a que estos controles son de tipo string y las operaciones matemticas
requieren tipos numricos. Si se realizara una operacin de multiplicacin (*), el cdigo
sera:
TxtResul.Text = TxtNum1.Text * TxtNum2.Text;
En la Figura 1 se muestra la operacin que causar un error porque se est haciendo una
multiplicacin con tipos de datos string.
Clase Convert:
Los problemas anteriores pueden solucionarse por medio de la clase convert, la cual
convierte un tipo de datos base en otro tipo de datos base, es decir, puede convertir de
string a entero, entero a string, por citar algunos ejemplos. Los tipos base que admite son:
Boolean
Char
SByte
Byte
Int16
Int32
Int64
UInt16
UInt32
UInt64
Single
Double
Decimal
DataTime
String
Su sintaxis es:
Convert. Metodo(parmetro);
Para el ejemplo de la Figura 1 se puede hacer lo siguiente:
o
Descargar programa.
UNIDAD 3
Competencia especfica de la unidad:
Implementar la herencia en clases derivadas para reutilizar los miembros de una
clase base.
Herencia (informtica)
Para otros usos de este trmino, vase Herencia.
creacin de objetos a partir de otros ya existentes e implica que una subclase obtiene todo el
comportamiento (mtodos) y eventualmente los atributos (variables) de su superclase.
Es la relacin entre una clase general y otra clase ms especfica. Por ejemplo: Si
declaramos una clase prrafo derivada de una clase texto, todos los mtodos y variables
asociadas con la clase texto, son automticamente heredados por la subclase prrafo.
La herencia es uno de los mecanismos de los lenguajes de programacin orientada a objetos
basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su
funcionalidad. La clase de la que se hereda se suele denominar clase base, clase padre,
superclase, clase ancestro (el vocabulario que se utiliza suele depender en gran medida del
lenguaje de programacin).
En los lenguajes que cuentan con un sistema de tipos fuerte y estrictamente restrictivo con
el tipo de datos de las variables, la herencia suele ser un requisito fundamental para poder
emplear el Polimorfismo, al igual que un mecanismo que permita decidir en tiempo de
ejecucin qu mtodo debe invocarse en respuesta a la recepcin de un mensaje, conocido
como enlace tardo (late binding) o enlace dinmico (dynamic binding).
Ejemplo en Java
import javax.*;
import javax.swing.JOptionPane;
public class Mamifero{
private int patas;
private String nombre;
public void imprimirPatas(){
JOptionPane.showMessageDialog(null," Tiene " + patas +
" patas\n", "Mamifero", JOptionPane.INFORMATION_MESSAGE);
}
public Mamifero(String nombre, int patas){
this.nombre = nombre;
this.patas = patas;
}
}
public class Perro extends Mamifero {
public Perro(String nombre){
super(nombre, 4);
}
}
public class Gato extends Mamifero {
private, protected y public. Slo las variables y mtodos definidos como pblicos en un
objeto sern visibles por todos los objetos. En otros lenguajes como Smalltalk, todas las
variables de instancia son privadas y todos los mtodos son pblicos.
Dependiendo del lenguaje que se utilice, el diseador tambin puede controlar qu
miembros de las superclases son visibles en las subclases. En el caso de java y C++ los
especificadores de acceso (private, protected, public) de los miembros de la superclase
afectan tambin a la herencia:
Private
Ningn miembro privado de la superclase es visible en la subclase.
Protected
Los miembros protegidos de la superclase son visibles en la subclase, pero no
visibles para el exterior.
Public
Los miembros pblicos de la superclase siguen siendo pblicos en la subclase.
Redefinicin de mtodos
En la clase derivada se puede redefinir algn mtodo existente en la clase base, con el
objeto de proveer una implementacin diferente. Para redefinir un mtodo en la subclase,
basta con declararlo nuevamente con la misma signatura (nombre y parmetros). Si se
invoca un cierto mtodo de un objeto que no est definido en su propia clase, se dispara la
bsqueda hacia arriba en la jerarqua a la que dicha clase pertenece. Sin embargo, si
existieran dos mtodos con la misma signatura, uno en la clase y otro en una superclase, se
ejecutara el de la clase, no el de la superclase.
Cuando se redefine un mtodo en una clase es posible acceder explcitamente al mtodo
original de su superclase, mediante una sintaxis especfica que depende del lenguaje de
programacin empleado (en muchos lenguajes se trata de la palabra clave super).
Ventajas
Los objetos pueden ser construidos a partir de otros similares. Para ello es
necesario que exista una clase base (que incluso puede formar parte de una
jerarqua de clases ms amplia).
Toda clase pueden servir como clase base para crear otras.
Estereotipos de herencia
Herencia simple
Una clase slo puede heredar de una clase base y de ninguna otra.
Herencia mltiple
Una clase puede heredar las caractersticas de varias clases base, es decir, puede
tener varios padres. En este aspecto hay discrepancias entre los diseadores de
lenguajes. Algunos de ellos han preferido no admitir la herencia mltiple debido a
que los potenciales conflictos entre mtodos y variables con igual nombre, y
eventualmente con comportamientos diferentes crea un desajuste cognitivo que
va en contra de los principio de la programacin orientada a objetos. Por ello, la
mayora de los lenguajes orientados a objetos admite herencia simple. En
contraste, algunos pocos lenguajes admiten herencia mltiple, entre ellos: C++,
Python, Eiffel, mientras que Smalltalk, Java, Ada y C# slo permiten herencia
simple.
Otra definicin de Herencia tomada de kioskea.net:
El concepto de herencia
La herencia es especfica de la programacin orientada a objetos, donde una clase nueva se
crea a partir de una clase existente. La herencia (a la que habitualmente se denomina
subclases) proviene del hecho de que la subclase (la nueva clase creada) contiene las
atributos y mtodos de la clase primaria. La principal ventaja de la herencia es la capacidad
para definir atributos y mtodos nuevos para la subclase, que luego se aplican a los
atributos y mtodos heredados.
Esta particularidad permite crear una estructura jerrquica de clases cada vez ms
especializada. La gran ventaja es que uno ya no debe comenzar desde cero cuando desea
especializar una clase existente. Como resultado, se pueden adquirir bibliotecas de clases
que ofrecen una base que puede especializarse a voluntad (la compaa que vende estas
clases tiende a proteger las datos miembro usando la encapsulacin).
Jerarqua de clase
La relacin primaria-secundaria entre clases puede representarse desde un punto de vista
jerrquico, denominado vista de clases en rbol. La vista en rbol comienza con una clase
general llamada superclase (a la que algunas veces se hace referencia como clase primaria,
clase padre, clase principal, o clase madre; existen muchas metforas genealgicas). Las
clases derivadas (clase secundaria o subclase) se vuelven cada vez ms especializadas a
medida que van descendiendo el rbol. Por lo tanto, se suele hacer referencia a la relacin
que une a una clase secundaria con una clase primaria mediante la frase "es una" x o y.
Herencia mltiple
Algunos lenguajes orientados a objetos, como C++ permiten herencias mltiples, lo que
significa que una clase puede heredar los atributos de otras dos superclases. Este mtodo
puede utilizarse para agrupar atributos y mtodos desde varias clases dentro de una sola.
UNIDAD 4 POLIMORFISMO
Definicin de polimorfismo
La palabra polimorfismo proviene del griego y significa que posee varias formas diferentes.
Este es uno de los conceptos esenciales de una programacin orientada a objetos. As como
la herencia est relacionada con las clases y su jerarqua, el polimorfismo se relaciona con
los mtodos.
En general, hay tres tipos de polimorfismo:
Polimorfismo de sobrecarga
Polimorfismo paramtrico (tambin llamado polimorfismo de plantillas)
Polimorfismo de inclusin (tambin llamado redefinicin o subtipado)
Polimorfismo de sobrecarga
El polimorfismo de sobrecarga ocurre cuando las funciones del mismo nombre existen, con
funcionalidad similar, en clases que son completamente independientes una de otra (stas
no tienen que ser clases secundarias de la clase objeto). Por ejemplo, la clase complex, la
clase image y la clase link pueden todas tener la funcin "display". Esto significa que no
necesitamos preocuparnos sobre el tipo de objeto con el que estamos trabajando si todo lo
que deseamos es verlo en la pantalla.
Polimorfismo paramtrico
El polimorfismo paramtrico es la capacidad para definir varias funciones utilizando el
mismo nombre, pero usando parmetros diferentes (nombre y/o tipo). El polimorfismo
paramtrico selecciona automticamente el mtodo correcto a aplicar en funcin del tipo de
datos pasados en el parmetro.
Por lo tanto, podemos por ejemplo, definir varios mtodos homnimos de addition()
efectuando una suma de valores.
Una signature es el nombre y tipo (esttico) que se da a los argumentos de una funcin. Por
esto, una firma de mtodo determina qu elemento se va a llamar.
Polimorfismo de subtipado
La habilidad para redefinir un mtodo en clases que se hereda de una clase base se llama
especializacin. Por lo tanto, se puede llamar un mtodo de objeto sin tener que conocer su
tipo intrnseco: esto es polimorfismo de subtipado. Permite no tomar en cuenta detalles de
las clases especializadas de una familia de objetos, enmascarndolos con una interfaz
comn (siendo esta la clase bsica).
Imagine un juego de ajedrez con los objetos rey, reina, alfil, caballo, torre y pen, cada
uno heredando el objeto pieza.
El mtodo movimiento podra, usando polimorfismo de subtipado, hacer el movimiento
correspondiente de acuerdo a la clase objeto que se llama. Esto permite al programa realizar
el movimiento.de_pieza sin tener que verse conectado con cada tipo de pieza en particular.
Descripcin
En lenguajes basados en clases y con un sistema de tipos de datos fuerte
(independientemente de si la verificacin se realiza en tiempo de compilacin o de
ejecucin), es posible que el nico modo de poder utilizar objetos de manera polimrfica
sea que compartan una raz comn, es decir, una jerarqua de clases, ya que esto
proporciona la compatibilidad de tipos de datos necesaria para que sea posible utilizar una
misma variable de referencia (que podr apuntar a objetos de diversas subclases de dicha
jerarqua) para enviar el mismo mensaje (o un grupo de mensajes) al grupo de objetos que
se tratan de manera polimrfica.
No obstante, algunos lenguajes de programacin (Java, C++) permiten que dos objetos de
distintas jerarquas de clases respondan a los mismos mensajes, a travs de las denominadas
interfaces (esta tcnica se conoce como composicin de objetos). Dos objetos que
implementen la misma interfaz podrn ser tratados de forma idntica, como un mismo tipo
de objeto, el tipo definido por la interfaz. As, distintos objetos podrn intercambiarse en
tiempo de ejecucin siempre que sean del mismo tipo, y adems con dependencias
mnimas entre ellos. Por estos motivos se considera un buen principio de diseo en
programacin orientada a objetos el favorecer la composicin de objetos frente a la
herencia de clases.1
En Java las interfaces se declaran mediante la palabra clave Interface. Estas se utilizan
para lograr la necesaria concordancia de tipos que hace posible el polimorfismo, tambin
como un contrato que debe cumplir cualquier clase que implemente una cierta interfaz, y
como una forma de documentacin para los desarrolladores. A veces, en la literatura
especfica sobre Java se habla de "herencia y polimorfismo de interfaces", lo que no
concuerda con los conceptos de la programacin orientada a objetos porque una clase que
implementa una interfaz slo obtiene su tipo de datos y la obligacin de implementar sus
mtodos, no copia comportamiento ni atributos. Esta terminologa puede llevar a confusin,
puesto que en Java a menudo se utiliza la mal llamada "herencia de interfaces" para dotar a
una clase de uno o varios tipos adicionales, lo que unido a la composicin, evite la
necesidad de la herencia mltiple y favorezca una utilizacin ms amplia del polimorfismo.
No obstante, el uso de una jerarqua de clases como paso previo, es muy habitual incluso en
aquellos lenguajes en los que es posible prescindir de tal jerarqua, ya que, desde una
perspectiva conceptual, se puede decir que al pertenecer los "objetos polimrficos" a
subclases de una misma jerarqua, se asegura la equivalencia semntica de los mensajes que
se invocarn de modo polimrfico. Por esto, en programacin orientada a objetos a veces se
denomina al polimorfismo como "polimorfismo de subclase (o de subtipo)".
En resumen, en la programacin orientada a objetos, la esencia del polimorfismo no atae a
la clase o prototipo de la que provienen los objetos. Aun as, en los lenguajes basados en
clases, es habitual (y en algunos tal vez sea el nico modo) que dichos objetos pertenezcan
a subclases pertenecientes a una misma jerarqua. Entonces, el polimorfismo debe verse
como una forma flexible de usar un grupo de objetos (como si fueran slo uno). Podra
decirse que el polimorfismo en esencia refiere al comportamiento de los objetos, no a
su pertenencia a una jerarqua de clases (o a sus tipos de datos).
Lo anterior se hace an ms evidente en lenguajes de programacin orientada a objetos
basados en prototipos, como Self, en los que las clases no existen.
Adems, es importante remarcar que si un cierto grupo de objetos pueden utilizarse de
manera polimrfica es porque, en ltima instancia, todos ellos saben responder a un cierto
mensaje (o a varios), pero dado que esos mismos objetos generalmente contendrn otros
mtodos (que otros objetos en dicho grupo no contienen), difcilmente se pueda decir lisa y
llanamente que los objetos son polimrficos; lo correcto es decir que esos objetos se pueden
utilizar de modo polimrfico para un cierto conjunto de mensajes.
Un ejemplo. Podemos crear dos clases distintas: Pez y Ave que heredan de la
superclaseAnimal. La clase Animal tiene el mtodo abstracto mover que se implementa de
forma distinta en cada una de las subclases (peces y aves se mueven de forma distinta).
Entonces, un tercer objeto puede enviar el mensaje mover a un grupo de objetos Pezy Ave
por medio de una variable de referencia de clase Animal, haciendo as un uso polimrfico
de dichos objetos respecto del mensaje mover.
El concepto de polimorfismo, desde una perspectiva ms general, se puede aplicar tanto a
funciones como a tipos de datos. As nacen los conceptos de funciones polimrficas y tipos
polimrficos. Las primeras son aquellas funciones que pueden evaluarse o ser aplicadas a
diferentes tipos de datos de forma indistinta; los tipos polimrficos, por su parte, son
aquellos tipos de datos que contienen al menos un elemento cuyo tipo no est especificado.
Clasificacin
Se puede clasificar el polimorfismo en dos grandes clases:
Polimorfismo esttico (o polimorfismo ad hoc) es aqul en el que los tipos a los que se
aplica el polimorfismo deben ser explcitos y declarados uno por uno antes de poder ser
utilizados.
Ejemplo de polimorfismo
En el siguiente ejemplo hacemos uso del lenguaje C++ para ilustrar el polimorfismo. Se
observa a la vez el uso de las funciones virtuales puras, como se les conoce en C++, estas
funciones constituyen una interfaz ms consistente cuando se trabaja con una jerarqua de
clases, puesto que hacen posible el enlace durante la ejecucin. Sin embargo como se ver,
para que el polimorfismo funcione no es una condicin obligatoria que todas las funciones
en la clase base sean declaradas como virtuales.
Diagrama de clases UML, que describe grficamente la relacin entre la clase base Figura y sus
posibles clases derivadas, y la entidad que utiliza esta estructura: la Aplicacin, tambin
identificado como objeto Cliente.
#include<iostream>
using namespace std;
class Figura {
private:
float base;
float altura;
public:
void captura();
virtual unsigned float perimetro()=0;
virtual unsigned float area()=0;
};
class Rectangulo: public Figura {
public:
void imprime();
unsigned float perimetro(){return 2*(base+altura);}
unsigned float area(){return base*altura;}
};
class Triangulo: public Figura {
public:
void muestra();
unsigned float perimetro(){return 2*altura+base}
unsigned float area(){return (base*altura)/2;}
};
void Figura::captura()
{
cout << "CALCULO DEL AREA Y PERIMETRO DE UN TRIANGULO ISSCELES Y UN
RECTANGULO:" << endl;
cout << "escribe la altura: ";
cin >> altura;
cout << "escribe la base: ";
cin >> base;
cout << "EL PERIMETRO ES: " << perimetro();
cout << "EL AREA ES: " << area();
getchar();
return 0;
}
End Function
End Class
UNIDAD 5 EXCEPCIONES
Competencia especfica de la unidad:
Identificar, manejar, gestionar y crear las condiciones de error que interrumpan el
flujo normal de ejecucin de un programa.
Introduccin
Una excepcin en trminos de lenguaje de programacin es la indicacin de un problema
que ocurre durante la ejecucin de un programa. Sin embargo, la palabra excepcin se
refiere a que este problema ocurre con poca frecuencia generalmente cuando existe algn
dato o instruccin que no se apega al funcionamiento del programa por lo que se produce
un error. El manejo de excepciones permite al usuario crear aplicaciones tolerantes a fallas
y robustos (resistentes a errores) para controlar estas excepciones y que pueda seguir
ejecutando el programa sin verse afectado por el problema. En lenguaje java estas
excepciones pueden manejarse con las clases que extienden el paquete Throwable de
manera directa o indirecta, pero existen diversos tipos de excepciones y formas para
manejarlas.
Uso del manejo de excepciones
subclases de esa clase. Pero tambin, se pueden atrapar a cada uno de los tipos de las
subclases de manera individual si estas requieren ser procesadas diferente.
A cada clula se le conoce como compiladora de distintos.
Limpieza de pila
Las aserciones ayudan a asegurar la validez del programa al atrapar los errores potenciales
e identificar los posibles errores lgicos del desarrollo. Estas pueden escribirse como
comentarios para apoyar a la persona que desarrolla el programa. Algunos ejemplos son:
Precondiciones y pos condiciones
Estas caractersticas son utilizadas por los programadores para hacer un anlisis de lo
esperado del programa antes y despus de su ejecucin. Son importantes porque gracias a
ellas se pueden detectar posibles fallas en el programa y corregirlas.
Las precondiciones son verdaderas cuando se invoca a un mtodo, estas describen las
caractersticas del mtodo y las expectativas que se tienen en el estado actual del programa.
Si no se cumplen las precondiciones el comportamiento del mtodo es indefinido por lo que
se lanza una excepcin que est preparada o continuar con el programa esperando el error.
Las pos condiciones describen las restricciones en el entorno y cualquier efecto secundario
del mtodo. Es recomendable escribirlas para saber que esperar en un futuro si es que se
hacen modificaciones.
Conclusin
El manejo de excepciones ayuda a lidiar con los errores de una aplicacin por medio de la
manipulacin del cdigo para hacer programas ms robustos. Adems existen herramientas
que ayudan a manejarlas tal es el caso de los bloques try (intentar) que encierran el cdigo
que puede lanzar una excepcin y los bloques catch (atrapar) que lidian con las
excepciones que surjan. Tambin existen tcnicas que el programador utiliza para conocer
el posible funcionamiento del programa y detectar los errores que pueda contener.
Ejemplos de cdigo
Ejemplo de manejo de excepcin en Java:
import java.io.IOException;
// ...
public static void main(String[] args) {
try {
// Se ejecuta algo que puede producir una excepcin
} catch (IOException e) {
// manejo de una excepcin de entrada/salida
} catch (Exception e) {
// manejo de una excepcin cualquiera
} finally {
// cdigo a ejecutar haya o no excepcin
}
}
#include <sys/errno.h>
int fd;
fd = open( "leeme.txt" );
if( fd == -1 && errno == EEXIT )
fd = open( "defecto.txt" );
}
En este programa C, si falla la primera sentencia open() por cualquiera de las 19 razones distintas
de EEXIT por las que puede fallar, entonces el programa se continuara ejecutando y morira por
alguna razn misteriosa ms adelante, dejando atrs un problema de depuracin complicado y
frustrante.
La versin Java del cdigo anterior, tal como se muestra a continuacin:
FilterReader fr;
try {
Fr = new FilterReader( "leeme.txt" );
} catch( FileNotFoundException e ) {
fr = new FilterReader( "defecto.txt" );
}
Proporciona una oportunidad para capturar una excepcin ms genrica y tratar la situacin
con elegancia o, en el peor de los casos, imprimira el estado de la pila de memoria.
Por ello, que la utilizacin adecuada de las excepciones proporcionar un refinamiento profesional
al cdigo que cualquier usuario futuro de las aplicaciones que salgan de la mano del programador
que las utilice agradecer con toda seguridad.
Definicin de flujos
Para descargar el documento de este tema, haz clic aqu
Un Flujo de E/S representa una fuente de entrada y un destino de salida. Un flujo puede
representar muchos tipos diferentes de fuentes y destinos, incluyendo archivos de disco,
dispositivos, otros programas y arreglos de memoria.
Los flujos soportan muchos tipos diferentes de datos, incluyendo bytes simples, tipos primitivos de
datos, caracteres localizados, y objetos. Algunos flujos simplementa pasan datos, otros manipulan
y transforman datos en formas tiles.
No importa cmo trabajan internamente; todos los flujos presentan el mismo modelo simple a los
programas que los usan: un flujo es una secuencia de datos. Un programa usa un flujo de entrada
para leer datos desde una fuente, o artculo a la vez:
La fuente y el destino de datos retratado arriba puede ser cualquier cosa que mantenga, genere o
consuma datos. Obviamente esto incluye archivos en disco, pero una fuente o destino puede
tambin ser otro programa, un dispositivo perifrico, un socket de red, o un arreglo.
Los archivos de texto plano son aquellos que estn compuestos nicamente por texto sin formato,
solo caracteres. estos caracteres se pueden codificar de distintos modos dependiendo de la lengua
usada. Se les conoce tambin como archivos de texto llano o texto simple por carecer de
informacin destinada a generar formatos y tipos de letra.
Un archivo binario es una archivo informtico que contiene informacin de cualquier tipo,
codificada en forma binaria para el propsito de almacenamiento y procesamiento de
ordenadores.
Muchos formatos binarios contienen partes que pueden ser interpretados como texto. Un archivo
binario que solo contiene informacin de tipo textual sin informacin sobre el formato del mismo,
se dice que es un archivo de texto plano. Habitualmente se contraponen los trminos archivo
binario y archivo de texto de forma que los primeros no contienen solamente texto.
BIBLIOGRAFIA