INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre
Guía de aplicación N° 11 Programación Orientada a Objetos Declarar una Clase I.
FECHA
II.
COMPETENCIAS A CONSEGUIR : Conoce la Programacion orientada a Objetos y como declarar una Clase.
III.
•
: 08 de Agosto del 2013
Fundamento Teórico
¿Qué es la programación en POO? Antes de definir la POO, es necesario platear algunos conceptos básicos necesarios: A. MODELO DE OBJETOS.- Es una forma de representar la realidad, considerando que |el mundo real que tratamos está constituido por cosas entidades u objetos que interactúan entre si, pueden ser tangibles o intangibles. En el modelo de Objetos la programación consistirá en: a) Identificar todas las clases de objetos que participan en el problema. b) Construir estas clases de objetos donde cada clase de objetos será la pieza de software que englobe variables y subprogramas constituyendo así piezas con una funcionalidad propia que le permita interactuar con otros objetos. c) Los programas finales no serán otra cosa que objetos interactuando entre sí Abstracción de Clasificación La abstracción de la clasificación nos permite percibir que los objetos de la realidad están organizados como clases o tipos de objetos, caracterizados por propiedades comunes. Todo objeto pertenece por lo menos a alguna clase de objeto. Abstracción de Generalización Define que los objetos de una o más clases pueden aun pertenecer a otra clase más genérica Abstracción de Especialización Define que los objetos de una clase pueden aún subdividirse en clases de objetos más específicos. Abstracción de Agregación Define que muchos de los objetos están construidos a partir de otros objetos ( el todo y sus partes) B.- OBJETO.- Es que cualquier entidad o cosa lógica del mundo real que se pueda imaginar, que tiene ciertas propiedades y presenta algún comportamiento • Un objeto representa un ítem individual e identificable, o una entidad real o abstracta, con un papel definido en el dominio del problema • Un objeto tiene: a) Estado b) Comportamiento c) Identidad La estructura y el comportamiento de objetos similares se definen en sus clases comunes. Los objetos soportan una serie de características específicas de los mismos: • Se agrupan en grupos denominados clases • Contienen datos internos que definen su estado actual. • Soportan ocultamiento de datos. • Pueden heredar propiedades de otros objetos. • Pueden comunicarse con otros objetos enviando o pasando mensajes. • Tienen métodos que definen su comportamiento Ing. Godofredo Poccori Umeres
gpoccori@khipu.edu.pe
1/7
INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre Objeto es una entidad que tiene un estado, un comportamiento y una identidad a)
Estado de un objeto El estado de un objeto abarca todas las propiedades o atributos del objeto, y los valores actuales de cada una de esas propiedades. Las propiedades de los objetos suelen ser estáticas, mientras los valores que toman estas propiedades cambian con el tiempo. • El hecho de que los objetos tengan estado implica que ocupan un espacio, ya en el mundo físico , ya en la memoria del ordenador. • El estado de un objeto está influido por la historia del objeto. • No deben confundirse los objetos, que existen en el tiempo, son mutables, tienen estado, pueden ser creados, destruidos y compartidos..., con los valores (los asignados a una variable, por ejemplo) que son cantidades con las propiedades de ser atemporales, inmutables. • El estado de un objeto representa el efecto acumulado de su comportamiento. • Un Estado de un objeto abarca todas esas propiedades o atributos, más los valores actuales de cada uno de esos atributos. b) Identidad de un objeto Identidad es la propiedad de un objeto que lo lleva a distinguirse de otros. c) Comportamiento de un objeto Comportamiento es como un objeto actúa y reacciona, en términos de sus cambios de estado y de los mensajes que intercambia. El comportamiento de un objeto representa su actividad externamente visible y testable. Son las operaciones que una clase realiza (llamadas también mensajes) las que dan cuenta de como se comporta la clase. Por operación se denota el servicio que una clase ofrece a sus clientes. Un objeto puede realizar cinco tipos de operaciones sobre otro, con el propósito de provocar una reacción: 1. Modificador: altera el estado de un objeto. 2. Selector: accede al estado de un objeto, sin alterarlo. 3. Iterador: permite a todas las partes de un objeto ser accedidas en un orden. 4. Constructor: crea un objeto y/o inicializa su estado. 5. Destructor: libera el estado de un objeto y/o destruye el objeto. El comportamiento es como actúa y reaccionará un objeto en función a la iteración que efectúa sobre otros objetos o a la iteración que efectúan otros objetos sobre Finalmente desde la perspectiva de programación un objeto podemos resumirlo al siguiente esquema:
Objeto = Atributos + Métodos Donde los atributos y métodos están en u compartimiento (capsula) uni-indivisible. Los atributos vienen a ser propiedades que describen al objeto, es decir los atributos definen información asociada al objeto. Los atributos se implementan mediante variables o estructuras de datos. Mientras que los métodos (servicios) representan el comportamiento del objeto. Encapsulamiento Un objeto debe ser considerado como un todo, como una unidad atómica indivisible que engloba las características y el comportamiento del objeto. C.- CLASES En la Programación orientada a Objetos una clase es la implementación de un tipo de objetos. Cuando se desarrolla un software utilizando POO, tanto el análisis y diseño se realiza identificando tipos o clases de objetos ene. Dominio del problema. Lo que realmente se implementa son las clases y no los objetos. Clase = implementación (Atributos + Métodos) comunes a todos los objetos de la misma clase Ing. Godofredo Poccori Umeres
gpoccori@khipu.edu.pe
2/7
INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre Un objeto o instancia de una clase se creará en el momento en el que se invoca al método constructor de objetos de dicha clase y se asigna a una variable del tipo clase. Ocultamiento de la información Es el proceso de ocultar los detalles internos de un objeto y poner a disposición de los otros objetos solamente la lista de servicios que ofrece este. Es ver un objeto con una vista interna y una vista externa. Vista Interna: La información que necesita el objeto para operar y que es innecesaria para los demás objetos de la aplicación. Estos atributos se denominada privados y tienen como marco de aplicación únicamente a las operaciones asociadas al objeto. Esconde la estructura de los atributos y protege el acceso directo a ellos desde fuera del objeto. Vista Externa La que necesitan el resto de los objetos para interactuar con el objeto que definimos. Estas propiedades se denominan públicas y corresponde a la información que necesitan conocer los restantes objetos de la aplicación respecto del objeto definido para poder operar. Esta definido por la lista de métodos.
Representación de un Objeto
Objeto
Atributos
Vista Interna Parte oculta, privada
Mensajes
Métodos (servicios) Vista Externa Parte visible, publica
Ejemplo CPersona aNombre
aDirección
CPersona() Nombre Dirección Datoscompletos()
Implementación de una clase Visión del conceptor .- es el responsable de la identificación y diseño de las clases Ing. Godofredo Poccori Umeres gpoccori@khipu.edu.pe
3/7
INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre Visión de Implementador.- es el responsable de la implementación de la clase Visión del Usuario.- Es el responsable de implementar las aplicaciones finales, haciendo uso de las clases implementadas. Esquema general de implementación de una clase en C# Public class Nombre_de_Clase { /* ****************** Atributos (vista interna) ****************** */ /* ****************** Métodos (vista externa) ****************** */ /* = = = = = = = = = = = Constructores = = = = = = = = = = = * / /* = = = = = = = = = = = Propiedades = = = = = = = = = = = * / /* = = = = = = = = = = = otros Métodos = = = = = = = = = = = * / } Para dar un nombre a una clase se utiliza un sustantivo que exprese de manera apropiada la clase que se desea implementar. Ejemplo para la clase Persona, se utilizara como nombre de clase CPersona. El ocultamiento de información evita que los objetos puedan ser manipulados directamente desde fuera del objeto. Para este propósito utilizamos la palabra private precediendo a cada atributo para ser considerado como parte de la vista interna. Cada método debe ir precedido de la palabra clave public, para ser considerado que pertenece a la vista externa Los métodos pueden ser constructores, modificadores o mutantes, selectores o accedentes y otros . Los métodos constructores.- serán los responsables de la creación de instancias u objetos de clase. Propiedades.- Constituyen el servicio que permite modificar el estado de los atributos o constituyen los servicios que permiten recuperar los valores de los atributos. Los otros métodos.-son los responsables de efectuar procesos asociados a la clase.
Ing. Godofredo Poccori Umeres
gpoccori@khipu.edu.pe
4/7
INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre Ejercicios de Aplicaci贸n Ejercicio N掳 1. Elaborar un algoritmo que determine si un estudiante esta aprobado o desaprobado en su primera unidad de introducci贸n a la inform谩tica. package apppelota; import apppelota.Pelota; /** * @author Ing. Godofredo Poccori Umeres */ public class Main { public static void main(String[] args) { //crear un objeto Pelota p; //es como crear una variable p de tipo pelota p=new Pelota();//inicializo para que use los metodos que tiene p.patearPelota(); //hago uso de su metodo definido en esa clase float var=p.obtenerRadio(); //me creo una variable de tipo real al cual //le doy el metodo definido ene esa clase System.out.print("La pelota tiene un radio de:"+p.obtenerRadio()); } }
package apppelota; /** * @author Godo */ public class Pelota { // creamos un objeto /************* ATRIBUTOS ***************************/ float radio; float peso; public Pelota() { radio=100; peso=250; } /************* METODOS ***************************/ public Pelota(float radio,float peso) { this.radio=radio; this.peso=peso; Ing. Godofredo Poccori Umeres
gpoccori@khipu.edu.pe
5/7
INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre } public float obtenerRadio() { return radio; } public void patearPelota() { System.out.println("Has pateado la pelota"); } public void atraparPelota() { System.out.println("Has atrapado la pelota"); } }
Ing. Godofredo Poccori Umeres
gpoccori@khipu.edu.pe
6/7
INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre IV Actividades Para Casa 4.1.-Escriba un programa para describir la clase Cuadrado 4.2.-Escriba un programa para describir la clase Circulo 4.3.-Escriba un programa para describir la clase Triangulo rectangulo
ACTIVIDADES ENTREGABLES: ENTREGAR EL DESARROLLO DE ACTIVIDADES, PARA CADA ACTIVIDAD EL ANÁLISIS, DISEÑO EN HOJAS DE EXAMEN, A LAPICERO Y CODIFICACIÓN impreso o lógico mostrando la pantalla de ejecución.
Ficha de calificación GUIA DE APLICACIÓN Nº 11 Programación orientada a Objetos Nombre: …………………………………………………………………………………Código: …………………………………. Criterio
Puntaje
Actitudinal
20
Procedimental Ejercicio 1 y 2 de la guía
5
Actividad en clase 4.1
3
Actividad en clase 4.2
3
Actividad 5.1
3
Actividad 5.2
3
Actividad 5.3
3 Total
Calificación Obtenida por el estudiante
20
Firma de Profesor ………………………………………….
Ing. Godofredo Poccori Umeres
gpoccori@khipu.edu.pe
7/7