El documento habla sobre las clases en programación orientada a objetos. Define una clase como un modelo que describe el estado y comportamiento compartido por objetos de esa clase. Explica que una clase encapsula estado a través de atributos y comportamiento a través de métodos. También cubre cómo crear clases, propiedades, métodos y cómo instanciar una clase para probarla.
1. LENGUAJE DE PROGRAMACIÓN II
Semana Nº11 CLASES
Docente: Ing. Mónica E. Morante Chumpén Alumno:
CLASE
En la programación orientada a objetos, una clase es una construcción que se utiliza como un modelo (o plantilla)
para crear objetos de esa clase. Este modelo describe el estado y el comportamiento que todos los objetos de la clase
comparten. Un objeto de una determinada clase se denomina una instancia de la clase. La clase que contiene (y se
utilizó para crear) esa instancia se puede considerar como del tipo de ese objeto, por ejemplo, una instancia del
objeto de la clase "Personas" sería del tipo "Personas".
Una clase por lo general representa un sustantivo, como una persona, lugar o (posiblemente bastante abstracta) cosa
- es el modelo de un concepto dentro de un programa de computadora. Fundamentalmente, encapsula el estado y el
comportamiento del concepto que representa. Encapsula el estado a través de marcadores de datos llamados
atributos (o variables miembro o variables de instancia), encapsula el comportamiento a través de secciones de
código reutilizables llamados métodos.
Más técnicamente, una clase es un conjunto coherente que consiste en un tipo particular de metadatos. Una clase
tiene tanto una interfaz y una estructura. La interfaz describe cómo interactuar con la clase y sus instancias con
métodos, mientras que la estructura describe cómo los datos se dividen en atributos dentro de una instancia. Una
clase también puede tener una representación (metaobjeto) en tiempo de ejecución, que proporciona apoyo en
tiempo de ejecución para la manipulación de los metadatos relacionados con la clase. En el diseño orientado a
objetos, una clase es el tipo más específico de un objeto en relación con una capa específica.
Los lenguajes de programación que soportan clases difieren sutilmente en su soporte para diversas características
relacionadas con clases. La mayoría soportan diversas formas de herencia. Muchos lenguajes también soportan
características para proporcionar encapsulación, como especificadores de acceso.
Componentes
Una clase es un contenedor de uno o más datos (variables o propiedades miembro) junto a las operaciones de
manipulación de dichos datos (métodos). Las clases pueden definirse como estructuras (struct), uniones (union) o
clases (class) pudiendo existir diferencias entre cada una de las definiciones según el lenguaje. Además las clases
son agrupaciones de objetos que describen su comportamiento.
La sintaxis típica de una clase es:
class Nombre {
// Variables miembro (habitualmente privadas)
miembro_1; //lista de miembros
miembro_2;
miembro_3;
// Funciones o métodos (habitualmente públicas)
funcion_miembro_1( ); // funciones miembro conocidas
funcion_miembro_2 ( ); // funciones como métodos
// Propiedades (habitualmente públicas)
propiedad_1;
propiedad_2;
propiedad_3;
propiedad_4;
}
Las clases habitualmente se denotan con nombres abstractos como Animal, Factura... aunque también pueden
representar procesos o acciones como DarAlta
Variables miembro
Área: Computación e Informática Página | 1
2. LENGUAJE DE PROGRAMACIÓN II
Semana Nº11 CLASES
Docente: Ing. Mónica E. Morante Chumpén Alumno:
Las propiedades o atributos son características de los objetos. Cuando definimos una propiedad normalmente
especificamos su nombre y su tipo. Nos podemos hacer a la idea de que las variables son algo así como el almacén
de los datos de estado relacionados con los objetos.
Habitualmente, las variables miembro son privadas al objeto (siguiendo las directrices de diseño del Principio de
ocultación) y su acceso se realiza mediante propiedades o métodos que realizan comprobaciones adicionales.
Suelen denominarse con nombres.
Métodos en las clases
Implementan la funcionalidad asociada al objeto. Los métodos son el equivalente a las funciones en los lenguajes
estructurados. Se diferencian de ellos en que es posible acceder a las variables de la clase de forma implícita.
Cuando se desea realizar una acción sobre un objeto, se dice que se le manda un mensaje invocando a un método
que realizará la acción.
Habitualmente, los métodos suelen ser verbos.
Propiedades
Las propiedades son un tipo especial de métodos. Debido a que suele ser común que las variables miembro sean
privadas para controlar el acceso y mantener la coherencia, surge la necesidad de permitir consultar o modificar su
valor mediante pares de métodos: GetVariable y SetVariable.
Los lenguajes orientados a objetos más modernos (por ejemplo Java, C#) añaden la construcción de propiedad que
es una sintaxis simplificada para dichos métodos:
tipo Propiedad {
get {
}
set {
}
}
De esta forma es posible realizar operaciones sobre las propiedades como si fuesen variables normales, el
compilador se encarga de crear el código apropiado que llame a la cláusula get o set según se necesite.
Las propiedades se denominan con nombres como las variables.
CREAR CLASES
Se pueden crear clases de tres formas: como parte del código en un modulo de formulario en una aplicación
Windows de un proyecto, como modulo separado de la clase adicionado a una aplicación de Windows de un
proyecto, o como una biblioteca de clases independiente del proyecto.
MÓDULO DE CLASES
Es un archivo separado de código que contiene unas o más clases y puede ser reutilizado en otros proyectos. Los
módulos de la clase se pueden crear de dos formas: como módulo agregado a una aplicación de Windows de un
proyecto, o como una biblioteca de clase independiente del proyecto.
Para crear un biblioteca de clase de un proyecto, realiza lo siguiente:
1. Clic en el botón Nuevo Proyecto.
Área: Computación e Informática Página | 2
3. LENGUAJE DE PROGRAMACIÓN II
Semana Nº11 CLASES
Docente: Ing. Mónica E. Morante Chumpén Alumno:
2. En el Panel Planilla, seleccionar el icono Biblioteca de Clases.
3. Colocar en Nombre: CL_PERSONA
PERSONA
4. En el Explorador de soluciones, cambiamos el nombre de la clase: Class1.vb por PERSONA
:
5. Guardar TODO.
Las propiedades pueden ser adicionadas a una clase en una de estas dos formas: como un campo o como
formas:
procedimiento. También puedes terminar como trabajar con propiedades usando PUBLIC, READONLY O
WRITEONLY
CAMPOS Y PROCEDIMIENTOS DE PROPIEDADES
Los campos son realmente variables p públicas dentro de una clase, las cuales pueden ser establecidas o leídas fuera
er
de la clase. Son útiles para las propiedades que no necesitan ser va
validadas.
Para agregar un campo a una clase, escribe el siguiente c
código:
Public <Nombre> as Tipo_dato
Área: Computación e Informática Página | 3
4. LENGUAJE DE PROGRAMACIÓN II
Semana Nº11 CLASES
Docente: Ing. Mónica E. Morante Chumpén Alumno:
Ejemplo: Public situ as Boolean
En la mayoría de casos desearan utilizar un procedimiento de la propiedad para agregar una propiedad a una clase.
Los procedimientos de la propiedad empiezan con la propiedad Public y termina con la propiedad End y tiene tres
proporciones: una declaración de una variable privada para almacenar el valor de la propiedad; un procedimiento
GET que expone el valor y un procedimiento SET que fija el valor.
Ejemplo:
Private Nombre As String
La primer línea del código
Public Property PrimerNombre() As String declara como privada la variable
Procedimientos: Get tipo cadena Nombre, la cual
GET: contiene el código almacena de la propiedad.
PrimerNombre = Nombre
que va a ser ejecutado
cuando leas el valor. End Get
SET: contiene código Set(ByVal value As String)
usado para asignar un Nombre = value
nuevo valor a la variable End Set
nombre, usando un valor
pasado como argumento. End Property
6. Agregar el siguiente código a la clases PERSONA.Vb
Private Nombre As String
Private Apepat As String
Private Apemat As String
Public situ As Boolean
Public Property PrimerNombre() As String
Get
PrimerNombre = Nombre
End Get
Set(ByVal value As String)
Nombre = value
End Set
End Property
Public Property ApePaterno() As String
Get
ApePaterno = Apepat
End Get
Set(ByVal value As String)
Apepat = value
End Set
End Property
Public Property ApeMaterno() As String
Get
ApeMaterno = Apemat
End Get
Set(ByVal value As String)
Apemat = value
End Set
End Property
PROPIEDADES READONLY Y WRITEONLY
Algunas propiedades son establecidas una sola vez y no pueden ser cambiadas durante la ejecución del programa.
La palabra clave READONLY se utiliza para especificar que un valor de propiedad puede ser leído pero no ser
modificado. Si intentas asignar un valor a una propiedad READONLY, ocurrira un error en el editor de codigo.
Área: Computación e Informática Página | 4
5. LENGUAJE DE PROGRAMACIÓN II
Semana Nº11 CLASES
Docente: Ing. Mónica E. Morante Chumpén Alumno:
Asi mismo la palabra clave WRITEONLY permite que no se lea el valor de un propiedad.
d.
Las dos palabras claves son tambié útiles cuando deseas tomar un valor de propiedad y convertirlo a un valor
én ropiedad
distinto.
7. Adicionar las propiedades READONLY Edad y WRITEONLY CalculaAñoNac a la clase CL_PERSONA
clase:
ReadOnly Property Edad() As String
Get Devuelve un valor calculando
Edad = My.Computer.Clock.LocalTime.Year - AñoNac
.Computer.Clock.LocalTime.Year la diferencia entre el año actual
End Get y el año de nacimiento.
End Property
-------------------------------------------------------
WriteOnly Property Calañonac() As Integer
Set(ByVal value As Integer) Representa el año
a de
AñoNac = value nacimiento, el cual nunca
End Set cambia.
End Property
MÉTODS DE UNA CLASE
Los métodos de una clase son procedimientos o fun
funciones declarados dentro de la clase.
Public sub PROCEDIMIENTO ( ) Public Function Función (Var as Tipo_dato) As Tipo_dato
End Sub End Function
Las mayoría de los métodos de la clase son públicos, pero también se pueden agregar métodos que sólo los utilicen
la misma clase.
8. A la clase: CL_PERSONA, adicionar los siguientes métodos.
:
CRER UNA INSTANCIA DE CLASE
Para crear una instancia de una clase puedes trabajar con el siguiente código:
ar
Dim Nombre As New Nombre
9. Agregar un Nuevo Proyecto:
a. Clic en el Menú Archivo/Agregar/Nuevo Proyecto
Proyecto.
Área: Computación e Informática Página | 5
6. LENGUAJE DE PROGRAMACIÓN II
Semana Nº11 CLASES
Docente: Ing. Mónica E. Morante Chumpén Alumno:
b. Seleccionar del panel de plantilla Aplicación para Windows y en nombre digitar ProbarPersona
el digitar:
c. En el Explorador de Soluciones, selecciona el proyecto ProbarPersona con clic derecho para Establecer
xplorador ProbarPersona
como Proyecto de Inicio.
d. Nuevamente clic derecho para agregar referencia aparecerá en la Ficha Proyectos
referencia, Proyectos:
Área: Computación e Informática Página | 6
7. LENGUAJE DE PROGRAMACIÓN II
Semana Nº11 CLASES
Docente: Ing. Mónica E. Morante Chumpén Alumno:
e. Doble clic sobre formulario y digita
digita:
Dim person1 As New CL_PERSONA.PERSONA
Donde: CL_PERSONA, es el proyecto y PERSONA es la clase.
PROBAR UNA CLASE
10. En el formulario Diseñar las siguiente aplicaci
ñar aplicación:
11. Ahora deberá programar los Botones ACTUALIZAR y NOMNRE COMPLETO. Digita
Botones: igitar
Área: Computación e Informática Página | 7
8. LENGUAJE DE PROGRAMACIÓN II
Semana Nº11 CLASES
Docente: Ing. Mónica E. Morante Chumpén Alumno:
Private Sub BtnAc_Click(
BtnAc_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnAc.Click
With person1
.PrimerNombre = txtnom.Text
.ApePaterno = txtapepa.Text
.ApeMaterno = txtapema.Text
.Calañonac = txtanac.Text
.situ = chkcac.Checked
End With
BtnNom.Enabled = True
End Sub
Private Sub BtnNom_Click(
BtnNom_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnNom.Click
'Prueba el método NombreCompleto
MsgBox(person1.NombreCompleto)
'Prueba la propiedad Edad y el método caso nombrecompleto
nombrecompleto
MsgBox(CStr(Me
Me.person1.Edad) & " Años de Edad")
If person1.situ = True Then
MsgBox(person1.PrimerNombre & " Esta Activo")
Else
MsgBox(person1.PrimerNombre & " Es Cesante")
End If
BtnNom.Enabled = False
End Sub
12. Ejecutar Aplicación.
CASO PRÁCTICO Nº01:
Diseñar y codificar aplicación que permita determinar la condición académica de un alumno.
icar
Área: Computación e Informática Página | 8