PROGRAMACIÓN ORIENTADA A OBJETOS
CARRERA PROFESIONAL DE ING. DE SISTEMAS Y TELEMÁTICA
CURSO : Laboratorio de Programación III.
DOCENTE
: Ing. Marco Aurelio Porro Chulli.
TEMA
: Avance del Proyecto final de
Programación.
ESTUDIANTES :
·
Herrera Silva Carlos
Jhonatan
·
Chuquizuta Ramos
Marleni
CICLO : VII
GRUPO :
“A”
I.
PROGRAMACIÓN ORIENTADA A OBJETOS
1.
DEFINICIÓN:
La Programación Orientada a Objetos (POO u
OOP) es un paradigma de programación que define los programas en términos de
“clases de objetos”, objetos que son entidades que combinan estado (propiedades
o datos), comportamiento (procedimientos o métodos) e identidad (propiedad del
objeto que lo diferencia del resto). La programación orientada a objetos
expresa un programa como un conjunto de estos objetos, que colaboran entre
ellos para realizar tareas. Esto permite hacer los programas y módulos más
fáciles de escribir, mantener y reutilizar. Un objeto contiene toda la
información que permite definirlo e identificarlo frente a otros objetos pertenecientes
a otras clases (e incluso entre objetos de una misma clase, al poder tener
valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos
de interacción (los llamados métodos) que favorecen la comunicación entre
objetos (de una misma clase o de distintas), y en consecuencia, el cambio de
estado en los propios objetos. Esta característica lleva a tratarlos como
unidades indivisibles, en las que no se separan (ni deben separarse)
información (datos) y procesamiento (métodos).
CONCEPTOS BÁSICOS
ü
CLASE: Las
clases son plantillas que agrupan comportamiento (métodos) y estados
(atributos) de los futuros objetos. Los objetos son instancias de una clase.
Usando el símil "variable - tipo" de la programación estructurada, se
entiendo que un objeto es una variable que tiene el comportamiento y estados
del tipo (objeto).
EJEMPLO
public class Persona {
public String nombre;
public int edad;
public void correr(){
/* por
implementar */
}
}
y dentro del cuerpo del programa
instanciamos una nueva Persona denominada Esteban:
public class Main {
public static void main(String[]
args) {
Persona esteban = new Persona();
// Ahora que esteban es
persona, puede correr
esteban.corre();
}
ü MÉTODO: los métodos corresponden al comportamiento o protocolo que
se encarga de ejecutar las acciones que se requieren para que un objeto realice
su trabajo. Pensemos en un objeto real, una pelota, la cual posee
características propias, tener color, ser redonda o estar inflada. Ahora
consideremos cada método como una forma en podemos manipularla: lanzarla,
hacerla rodar, inflarla etc.
ü HERENCIA:
Utilizando la herencia es posible definir clases basándose en una clase ya
existente. La nueva clase añade nuevos métodos y/o campos a los de la clase ya
existente, se dice que la nueva clase extiende la clase padre. La herencia
permite la reutilización de código y la abstracción.
ü SOBRECARGA:
En el ámbito de la POO, la sobrecarga de métodos se refiere a la posibilidad de
tener dos o más métodos con el mismo nombre, pero distinta funcionalidad. Es
decir, dos o más métodos con el mismo nombre realizan acciones diferentes y el
compilador usará una u otra dependiendo de los parámetros usados. Esto también
se aplica a los constructores (de hecho, es la aplicación más habitual de la
sobrecarga). Se pueden diferenciar varios métodos sobrecargados a través de sus
parámetros, ya sea por la cantidad, el tipo o el orden de los mismos.
ü EVENTO:
Un evento es una acción que un objeto reconoce, como hacer clic con el mouse (ratón) o presionar una
tecla, y para el que puede escribir código para responder. Los eventos se
producen como consecuencia de una acción del usuario o de código de programa, o
bien pueden ser desencadenados por el sistema. También puede desarrollar eventos
personalizados propios para que los generen sus objetos y los controlen otros
objetos.
ü ATRIBUTOS:
son propiedades de los objetos que determinan su estado, los atributos son los
datos que contiene y encapsula una clase y se acceden a ella por medio de un
método, los atributos también son llamados variables de instancia.
ü MENSAJES:
Un objeto por si solo no tiene mucho significado. Ejemplo: el objeto
"bicicleta" no tiene mucho sentido si no interactúa con un objeto
"persona" que pedalee. La interacción entre objetos se produce
mediante mensajes. Los mensajes son llamados a métodos de un objeto en
particular. Podemos decir que el objeto persona envía el mensaje "girar a
la izquierda" al objeto bicicleta. Los mensajes pueden contener parámetros.
Por ejemplo, teniendo un método en la clase bicicleta llamado "Girar"
que recibe como parámetro la dirección (derecha o izquierda). Un mensaje está compuesto por
los siguientes tres elementos:
1.
El objeto destino, hacia el cual el mensaje es
enviado
2.
El nombre del método a llamar
3.
Los parámetros solicitados por el método
CARACTERÍSTICAS
ü ABSTRACCIÓN: Denota las características esenciales de un objeto, donde se
capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un
"agente" abstracto que puede realizar trabajo, informar y cambiar su
estado, y "comunicarse" con otros objetos en el sistema sin revelar
"cómo" se implementan estas características. Los procesos, las
funciones o los métodos pueden también ser abstraídos, y, cuando lo están, unas
variedades de técnicas son requeridas para ampliar una abstracción. El proceso
de abstracción permite seleccionar las características relevantes dentro de un
conjunto e identificar comportamientos comunes para definir nuevos tipos de
entidades en el mundo real. La abstracción es clave en el proceso de análisis y
diseño orientado a objetos, ya que mediante ella podemos llegar a armar un
conjunto de clases que permitan modelar la realidad o el problema que se quiere
atacar.
ü ENCAPSULAMIENTO: Significa reunir todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite
aumentar la cohesión (diseño estructurado) de los componentes del sistema. Algunos autores confunden
este concepto con el principio de ocultación, principalmente porque se suelen
emplear conjuntamente.
ü HERENCIA:
Las clases no se encuentran
aisladas, sino que se relacionan entre sí, formando una jerarquía de
clasificación. Los objetos heredan las propiedades y el comportamiento de todas
las clases a las que pertenecen. La herencia organiza y facilita el
polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y
creados como tipos especializados de objetos preexistentes. Estos pueden
compartir (y extender) su comportamiento sin tener que volver a implementarlo.
Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un
comportamiento común. Cuando un objeto hereda de más de una clase se dice que
hay herencia múltiple;
siendo de alta complejidad técnica por lo cual suele recurrirse a la herencia
virtual para evitar la duplicación de datos.
ü POLIMORFISMO:
Comportamientos diferentes, asociados a objetos
distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se
utilizará el comportamiento correspondiente al objeto que se esté usando. O,
dicho de otro modo, las referencias y las colecciones de objetos pueden
contener objetos de diferentes tipos, y la invocación de un comportamiento en
una referencia producirá el comportamiento correcto para el tipo real del
objeto referenciado. Cuando esto ocurre en "tiempo de ejecución",
esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más
estáticos (en "tiempo de compilación") de polimorfismo, tales como
las plantillas y la sobrecarga de operadores de C++.
ü MODULARIDAD:
Se denomina "modularidad" a la
propiedad que permite subdividir una aplicación en partes más pequeñas
(llamadas módulos), cada una de las cuales debe ser tan independiente como sea
posible de la aplicación en sí y de las restantes partes. Estos módulos se
pueden compilar por separado, pero tienen conexiones con otros módulos. Al
igual que la encapsulación, los lenguajes soportan la modularidad de diversas
formas.
ü PRINCIPIO DE OCULTACIÓN: Cada objeto está aislado del exterior, es un módulo natural,
y cada tipo de objeto expone una "interfaz" a otros objetos que
especifica cómo pueden interactuar con los objetos de la clase. El aislamiento
protege a las propiedades de un objeto contra su modificación por quien no
tenga derecho a acceder a ellas; solamente los propios métodos internos del
objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan
cambiar el estado interno de un objeto de manera inesperada, eliminando efectos
secundarios e interacciones inesperadas. Algunos lenguajes relajan esto,
permitiendo un acceso directo a los datos internos del objeto de una manera
controlada y limitando el grado de abstracción. La aplicación entera se reduce
a un agregado o rompecabezas de objetos.
POO
EN VISUAL BASIC.NET
En Visual Basic .NET, los miembros de datos compartidos
pueden utilizarse
para permitir que múltiples instancias de una
clase hagan referencia
a una única variable a nivel de clase.
Sintaxis: utilizaremos la siguiente sintaxis para declarar miembro de
datos compartidos.
NiveldeAcceso Shared MiembrodeDatos As TipodeDatos
NIVELES DE
ACCESO
Los miembros de datos compartidos están directamente enlazados a la
clase y podemos declararlos como públicos o privados. Si declaramos los
miembros de datos como públicos estarán accesible para cualquier código que
pueda acceder a la clase. Si declaramos los miembros de los datos como privados
proporcionaremos propiedades compartidas públicas para acceder a la propiedad
privada.
El siguiente ejemplo muestra como crear una clase de cuenta ahorro
(SavingAcconut) que utilice un miembro de datos compartido público para
mantener los tipos de interés para una cuenta de ahorro.
Class SavingsAccount
Public shared InterestRate As Double
Public Function CalculateInterest() As Double
End Function
End Class
El valor del miembro de InterestRate de la clase SavingAccount puede
establecer globalmente con independencia de número instancias de la clase que
este en uso. El valor se utiliza para calcular el interés del saldo actual.
INVOCAR MIEMBROS DE DATOS COMPARTIDOS DESDE UN CLIENTE
Después de crear una clase que utilice miembros de
datos compartidos
públicos, podemos invocar los miembros de datos de esa clase desde una aplicación cliente. El siguiente
código muestra cómo invocar la clase SavingsAccount y sus miembros de
datos desde una aplicación cliente:
Sub Test( )
SavingsAccount.InterestRate = 0.03
Dim myAccount As New SavingsAccount( )
Dim yourAccount As New SavingsAccount( )
MessageBox.Show(myAccount.CalculateInterest(
)) MessageBox.Show(yourAccount.CalculateInterest( ))
End Sub
PROPIEDADES
COMPARTIDAS:
También pueden crearse propiedades compartidas en las clases. El siguiente
ejemplo muestra cómo declarar una propiedad compartida
denominada Rate en la clase SavingsAccount:
Class SavingsAccount
Private Shared interestRate As
Double
Shared
Property Rate( ) As Double
get
Return
interestRate
End get
Set(ByVal
Value
As Double)
interestRate
= Value
end set
End Property
End Class
INVOCAR PROPIEDADES
COMPARTIDAS DESDE UN CLIENTE
Una
vez declarada la propiedad compartida Rate, puede utilizarse en una aplicación cliente en lugar de acceder directamente al
miembro de datos
compartido interestRate. Podemos invocar una propiedad compartida cualificándola con el nombre de
clase o con el nombre de variable de una instancia específica de la clase.
Las
clases son plantillas que agrupan comportamiento (métodos) y estados (atributos)
de los futuros objetos. Los objetos son instancias de una clase. Usando el
símil “variable – tipo” de la programación estructurada, se entiendo que un
objeto es una variable que tiene el comportamiento y estados del tipo (objeto).
2.
RESUMEN:
La programación Orientada a Objetos representa a partir de los años 90 lo que
la programación estructurada fue para los 70, un nuevo e importante paradigma
para mejorar la construcción, mantenimiento y utilización de software. Los
métodos tradicionales de programación tienden a ver los programas como un
conjunto de procedimientos que se llaman unos a otros. Cada procedimiento tiene
asociado unos datos pasivos sobre los que opera. La programación orientada a
objetos cambia esta visión por otra en la que una aplicación está compuesta por
objetos con estado propio dotados de funcionalidad. Los objetos se comunican
entre si y tienen cada uno una forma propia de respuesta, que viene determinada
por una serie de procedimientos que son asociados a cada objeto. El objetivo de
esta tecnología es tener un software más consistente, robusto y reutilizable,
más fácil de verificar, mantener, refinar y extender. El paradigma orientado a
objetos representa un paso más en la dirección de acercar el lenguaje de las
soluciones informáticas al lenguaje en que se plantean los problemas.
3. SUMMARY: Object Oriented
programming represents, from the 90s, what structured programming was for the 70s, a new
and important paradigm for improving the construction, maintenance and use of
software. Traditional programming methods tend to view programs as a set of
procedures that call each other. Each procedure has associated passive data on
which it operates. Object-oriented programming changes this view to another in
which an application is composed of objects with their own state endowed with
functionality. Objects communicate with one another and each have their own
form of response, which is determined by a series of procedures that are
associated with each object. The goal of this technology is to have a more
consistent, robust and reusable software, easier to verify, maintain, refine
and extend. The object-oriented paradigm represents a further step in the
direction of approaching the language of computer solutions to the language in
which problems arise.
4.
RECOMENDACIONES:
· Antes
de empezar a programar en un lenguaje de programación orientado a objetos es importante
conocer conceptos importantes como de herencia, atributos, métodos, polimorfismo.
Es
importante conocer la estructura del lenguaje de programación en el que se va a
trabajar para saber cómo heredar, instanciar y encapsular.
Para poder utilizar la
HERENCIA es importante declarar los métodos de forma pública.
5. CONCLUCIÓN: La Programación Orientada a Objetos es un paradigma de
programación que tiene muchas ventajas al momento de utilizarlo puesto que
podemos utilizar la herencia, el polimorfismo, abstracción, reutilización de
código. Al poder utilizar todas las características anteriores podremos
programar de manera más ordenada sin tener que hacer redundancia de código. En
la programación Orientada a Objetos podremos construir objetos
con estado propio dotados de funcionalidad. Los objetos se comunican entre si y
tienen cada uno una forma propia de respuesta, que viene determinada por una
serie de procedimientos que son asociados a cada objeto. El objetivo de esta
tecnología es tener un software más consistente, robusto y reutilizable, más
fácil de verificar, mantener, refinar y extender. El paradigma orientado a
objetos representa un paso más en la dirección de acercar el lenguaje de las
soluciones informáticas al lenguaje en que se plantean los problemas.
5.
APRECIACIÓN
DEL EQUIPO:
ü
En esta sesión pudimos afianzar los conocimientos sobre
el Programación Orientado a Objetos, sus características y conceptos básicos.
ü
Nos permitió conocer cuáles son los roles que cumplen
las características como la herencia, encapsulamiento, métodos, etc.
ü
Conocimos programación orientado a objetos dentro de un
lenguaje de programación en este caso es Visual Basic.NET.
6.
GLOSARIO DE
TÉRMINOS
Ø Paradigma:
Conjunto de unidades que pueden
sustituir a otra en un mismo contexto porque cumplen la misma función.
Ø Mecanismos: son elementos destinados a transmitir y/o
transformar fuerzas y/o movimientos desde un elemento motriz (motor) a un
elemento conducido (receptor), con la misión de permitir al ser humano realizar
determinados trabajos con mayor comodidad y menor esfuerzo.
Ø Instancia: Una instancia (en inglés, instance) es la particularización,
realización específica u ocurrencia de una determinada clase, entidad (modelo
entidad-relación) o prototipo.
Ø Reutilización
de Código: La reutilización de código se refiere al
comportamiento y a las técnicas que garantizan que una parte o la totalidad de
un programa informático existente se pueda emplear en la construcción de otro
programa. De esta forma se aprovecha el trabajo anterior, se economiza tiempo,
y se reduce la redundancia.
Ø Compilador:
Un compilador es un programa informático que traduce un programa que ha sido escrito
en un lenguaje de programación a un lenguaje común, usualmente lenguaje de máquina, aunque también puede ser traducido a un código intermedio (Bycode) o
a texto. Este proceso de traducción se conoce como compilación.
7.
LINKOGRAFÍA:
S
SLIDESHARE


