Memch clases lep ii

8
LENGUAJE DE PROGRAMACIÓN II Semana Nº11 CLASES D Do oc ce en nt t e e: : I I n ng g. . M Mó ón ni i c ca a E E. . M Mo or r a an nt t e e C Ch hu um mp pé é n n Alumno: Área: Computación e Informática Página | 1 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

Transcript of Memch clases lep ii

Page 1: Memch   clases lep ii

LLEENNGGUUAAJJEE DDEE PPRROOGGRRAAMMAACCIIÓÓNN IIII

Semana Nº11 CLASES

DDoocceennttee:: IInngg.. MMóónniiccaa EE.. MMoorraannttee CChhuummppéénn Alumno:

Área: Computación e Informática Página | 1

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

Page 2: Memch   clases lep ii

LLEENNGGUUAAJJEE DDEE PPRROOGGRRAAMMAACCIIÓÓNN IIII

Semana Nº11 CLASES

DDoocceennttee:: IInngg.. MMóónniiccaa EE.. MMoorraannttee CChhuummppéénn Alumno:

Área: Computación e Informática Página | 2

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.

Page 3: Memch   clases lep ii

DDoocceennttee:: IInngg.. MMóónniiccaa EE.. MMoorraannttee CChhuummpp

Área: Computación e Informática

2. En el Panel Planilla, seleccionar

3. Colocar en Nombre: CL_PERSONA

4. En el Explorador de soluciones, cambiamos el nombre de

5. Guardar TODO.

Las propiedades pueden ser adicionadas a una clase en una de estas dos formas

procedimiento. También puedes terminar como trabajar con propiedades usando

WRITEONLY

CAMPOS Y PROCEDIMIENTOS DE PROPIEDADES

Los campos son realmente variables p

de la clase. Son útiles para las propiedades que no necesitan ser va

Para agregar un campo a una clase, escribe el siguiente c

LLEENNGGUUAAJJEE DDEE PPRROOGGRRAA

Semana Nº11 CLASES

ppéénn Alumno:

seleccionar el icono Biblioteca de Clases.

PERSONA

En el Explorador de soluciones, cambiamos el nombre de la clase: Class1.vb por PERSONA

Las propiedades pueden ser adicionadas a una clase en una de estas dos formas: como un campo o como

puedes terminar como trabajar con propiedades usando PUBLIC, READONLY O

CAMPOS Y PROCEDIMIENTOS DE PROPIEDADES

Los campos son realmente variables públicas dentro de una clase, las cuales pueden ser establecidas o

para las propiedades que no necesitan ser validadas.

Para agregar un campo a una clase, escribe el siguiente código:

Public <Nombre> as Tipo_dato

AAMMAACCIIÓÓNN IIII

CLASES

Página | 3

: Class1.vb por PERSONA

: como un campo o como

PUBLIC, READONLY O

er establecidas o leídas fuera

Page 4: Memch   clases lep ii

LLEENNGGUUAAJJEE DDEE PPRROOGGRRAAMMAACCIIÓÓNN IIII

Semana Nº11 CLASES

DDoocceennttee:: IInngg.. MMóónniiccaa EE.. MMoorraannttee CChhuummppéénn Alumno:

Área: Computación e Informática Página | 4

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

Public Property PrimerNombre() As String Get PrimerNombre = Nombre End Get Set(ByVal value As String) Nombre = value End Set 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.

La primer línea del código declara como privada la variable

tipo cadena Nombre, la cual almacena de la propiedad.

Procedimientos: GET: contiene el código que va a ser ejecutado

cuando leas el valor. SET: contiene código

usado para asignar un

nuevo valor a la variable nombre, usando un valor

pasado como argumento.

Page 5: Memch   clases lep ii

DDoocceennttee:: IInngg.. MMóónniiccaa EE.. MMoorraannttee CChhuummpp

Área: Computación e Informática

Asi mismo la palabra clave WRITEONLY

Las dos palabras claves son tambié

distinto.

7. Adicionar las propiedades READONLY

ReadOnly Property Edad() Get

Edad = My.Computer.Clock.LocalTime.Year End Get

End Property -------------------------------------------------------WriteOnly Property Calañonac() Set(ByVal value As AñoNac = value

End Set End Property

MÉTODS DE UNA CLASE

Los métodos de una clase son procedimientos o fun

Public sub PROCEDIMIENTO

End Sub

Las mayoría de los métodos de la clase son

la misma clase.

8. A la clase: CL_PERSONA, adicionar los siguientes

CRER UNA INSTANCIA DE CLASE

Para crear una instancia de una clase puedes trabajar con el siguiente

9. Agregar un Nuevo Proyecto:

a. Clic en el Menú Archivo/Agregar/Nuevo Proyecto

LLEENNGGUUAAJJEE DDEE PPRROOGGRRAA

Semana Nº11 CLASES

ppéénn Alumno:

WRITEONLY permite que no se lea el valor de un propiedad.

én útiles cuando deseas tomar un valor de propiedad y convertirlo a un valor

READONLY Edad y WRITEONLY CalculaAñoNac a la clase

Edad() As String

.Computer.Clock.LocalTime.Year - AñoNac

------------------------------------------------------- Calañonac() As Integer

Integer)

de una clase son procedimientos o funciones declarados dentro de la clase.

PROCEDIMIENTO ( ) Public Function Función (Var as Tipo_dato)

End Function

de la clase son públicos, pero también se pueden agregar métodos

: CL_PERSONA, adicionar los siguientes métodos.

CRER UNA INSTANCIA DE CLASE

ar una instancia de una clase puedes trabajar con el siguiente código:

Dim Nombre As New Nombre

Archivo/Agregar/Nuevo Proyecto.

Devuelve un valor calculando

la diferencia entre el año actual

y el año de nacimiento.

Representa el a

nacimiento, el cual nunca

cambia.

AAMMAACCIIÓÓNN IIII

CLASES

Página | 5

d.

ropiedad y convertirlo a un valor

a la clase: CL_PERSONA

(Var as Tipo_dato) As Tipo_dato

métodos que sólo los utilicen

Devuelve un valor calculando

la diferencia entre el año actual

y el año de nacimiento.

Representa el año de

nacimiento, el cual nunca

cambia.

Page 6: Memch   clases lep ii

DDoocceennttee:: IInngg.. MMóónniiccaa EE.. MMoorraannttee CChhuummpp

Área: Computación e Informática

b. Seleccionar del panel de plantilla

c. En el Explorador de Soluciones, selecciona el proyecto Proba

como Proyecto de Inicio.

d. Nuevamente clic derecho para agregar referencia

LLEENNGGUUAAJJEE DDEE PPRROOGGRRAA

Semana Nº11 CLASES

ppéénn Alumno:

el panel de plantilla Aplicación para Windows y en nombre digitar

xplorador de Soluciones, selecciona el proyecto ProbarPersona con clic derecho para

como Proyecto de Inicio.

Nuevamente clic derecho para agregar referencia, aparecerá en la Ficha Proyectos

AAMMAACCIIÓÓNN IIII

CLASES

Página | 6

y en nombre digitar: ProbarPersona

rPersona con clic derecho para Establecer

Proyectos:

Page 7: Memch   clases lep ii

DDoocceennttee:: IInngg.. MMóónniiccaa EE.. MMoorraannttee CChhuummpp

Área: Computación e Informática

e. Doble clic sobre formulario y digita

Donde: CL_PERSONA, es el

PROBAR UNA CLASE

10. En el formulario Diseñar las siguiente aplicaci

11. Ahora deberá programar los Botones

LLEENNGGUUAAJJEE DDEE PPRROOGGRRAA

Semana Nº11 CLASES

ppéénn Alumno:

Doble clic sobre formulario y digita:

Dim person1 As New CL_PERSONA.PERSONA

CL_PERSONA, es el proyecto y PERSONA es la clase.

ñar las siguiente aplicación:

programar los Botones: ACTUALIZAR y NOMNRE COMPLETO. Digita

AAMMAACCIIÓÓNN IIII

CLASES

Página | 7

CL_PERSONA.PERSONA

igitar

Page 8: Memch   clases lep ii

DDoocceennttee:: IInngg.. MMóónniiccaa EE.. MMoorraannttee CChhuummpp

Área: Computación e Informática

Private Sub BtnAc_Click(System.EventArgs) Handles With person1 .PrimerNombre = txtnom.Text .ApePaterno = txtapepa.Text .ApeMaterno = txtapema.Text .Calañonac = txtanac.Text .situ = chkcac.Checked End With BtnNom.Enabled = End Sub Private Sub BtnNom_Click(System.EventArgs) Handles 'Prueba el método NombreCompleto MsgBox(person1.NombreCompleto) 'Prueba la propiedad Edad y el método caso nom MsgBox(CStr(Me If person1.situ = MsgBox(person1.PrimerNombre & Else MsgBox(person1.PrimerNombre & End If BtnNom.Enabled = End Sub

12. Ejecutar Aplicación.

CASO PRÁCTICO Nº01:

Diseñar y codificar aplicación que permita

LLEENNGGUUAAJJEE DDEE PPRROOGGRRAA

Semana Nº11 CLASES

ppéénn Alumno:

BtnAc_Click(ByVal sender As System.Object, ByValHandles BtnAc.Click

.PrimerNombre = txtnom.Text

.ApePaterno = txtapepa.Text

.ApeMaterno = txtapema.Text

.Calañonac = txtanac.Text

.situ = chkcac.Checked

BtnNom.Enabled = True

BtnNom_Click(ByVal sender As System.Object, ByValHandles BtnNom.Click

'Prueba el método NombreCompleto MsgBox(person1.NombreCompleto) 'Prueba la propiedad Edad y el método caso nombrecompleto

Me.person1.Edad) & " Años de Edad") person1.situ = True Then MsgBox(person1.PrimerNombre & " Esta Activo")

MsgBox(person1.PrimerNombre & " Es Cesante")

BtnNom.Enabled = False

CASO PRÁCTICO Nº01:

icar aplicación que permita determinar la condición académica

AAMMAACCIIÓÓNN IIII

CLASES

Página | 8

ByVal e As

ByVal e As

brecompleto

académica de un alumno.