Está en la página 1de 14

Centro Universitario Grupo SOL

2. Programacin Orientada a Objetos

JAVA
M. I. Alejandro Cifuentes A.

Programaci

n Avanzada
Maestra en Direccin de Tecnologas de la Informacin

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos OBJETIVOS Definir los conceptos de modelado: Abstraccin, Encapsulamiento y Paquetes. Definir qu es: Clase Miembro Atributo Mtodo Constructor Paquete. Utilizar los modificadores de acceso private y public para el uso adecuado del encapsulamiento. Invocar un mtodo de algn objeto en particular.
Maestra en Direccin de Tecnologas de la Informacin

M. I. Alejandro Cifuentes A.

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos LA FASE DE ANLISIS Y DISEO El Anlisis describe que necesita hacer el sistema. Modelado del mundo real: actores, actividades, objetos y comportamientos. El Diseo describe cmo lo hace el sistema. Modelado de relaciones e interacciones entre objetos y actores. Buscar abstracciones tiles que ayuden a simplificar el problema o solucin. ABSTRACCIN Funciones: Escribir un algoritmo una vez solamente, que se use en varias situaciones. Objetos: Agrupamiento de un conjunto de atributos y comportamientos, relacionados en una clase. Frameworks y APIs: Grandes grupos de objetos que hacen una actividad compleja. Se pueden usar como as is o extender su comportamiento.
M. I. Alejandro Cifuentes A. Maestra en Direccin de Tecnologas de la Informacin

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos LAS CLASES SON PLANTILLAS PARA LOS OBJETOS En la industria de la manufactura, un plano o plantilla describe un dispositivo a partir del cual se construyen muchos dispositivos fsicos. En software, una clase es una descripcin de un objeto. Una clase describe el dato que cada uno de los objetos incluye. Una clase describe los comportamientos que exhibe cada uno de los objetos. En Java, las clases poseen las tres caractersticas clave de la Programacin Orientada a Objetos: Encapsulamiento. Herencia. Polimorfismo.

M. I. Alejandro Cifuentes A.

Maestra en Direccin de Tecnologas de la Informacin

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos DECLARACIN DE CLASES EN JAVA Sintxis de una clase de Java: <modificadores> class <nombreDeClase>{ [<declaracionesDeAtributos>] [<declaracionesDeConstructores>] [<declaracionesDeMtodos>] Ejemplo: public class Vehicle{ private double maxLoad; public void setMaxLoad(double value){ maxLoad = value; } } El nombreDeClase es cualquier identificador legal y puede haber varios valores para los modificadores.
M. I. Alejandro Cifuentes A. Maestra en Direccin de Tecnologas de la Informacin

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos DECLARACIN DE ATRIBUTOS Sintxis bsica de un atributo: <modificadores> <tipo> <nombreDeAtributo>; Ejemplo: public class Foo{ private int x; private float y = 10000.0F; private String name = Cugs; } El nombreDeAtributo es cualquier identificador legal y puede haber varios valores para los modificadores. private indica que el atributo es accesible solamente a los mtodos dentro de esta clase. El tipo del atributo puede ser primitivo o alguna clase.
M. I. Alejandro Cifuentes A. Maestra en Direccin de Tecnologas de la Informacin

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos DECLARACIN DE MTODOS Sintxis de un mtodo: <modificadores> <tipoDeRegreso> <nomDeMtodo>([<listaDeArgumentos>]){ [<enunciados>] } Ejemplo: public class Dog{ private int weight; public int getWeight(){ return weight; } public void setWeight(int newWeight){ weight = newWeight; } Si no se regresa un valor, se declara void. } Usar return para regresar valores.
M. I. Alejandro Cifuentes A. Maestra en Direccin de Tecnologas de la Informacin

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos ACCESO A LOS MIEMBROS DEL OBJETO La notacin punto: <objeto>.<miembro> Se utiliza para el acceso a los miembros del objeto, incluyendo los atributos y mtodos. Ejemplo: d.setWeight(42); d.weight = 43; // solamente se permite si // weight es public d.setWeight(42); le dice al objeto d que ejecute su mtodo setWeight. El operador punto permite el acceso a los miembros, atributos y mtodos, no privados de una clase. Dentro de la definicin de un mtodo, no se necesita usar la notacin punto para el acceso local de los miembros.
Maestra en Direccin de Tecnologas de la Informacin

M. I. Alejandro Cifuentes A.

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos EL OCULTAMIENTO DE LA INFORMACIN El Problema. El cdigo cliente posee acceso directo a los datos internos: MyDate d = new MyDate(): MyDate d.day = 32; // da invlido Day Month d.month = 2; d.day = 30;// tambin invlido Year d.day = d.day + 1; // no checa por la envoltura
MyDate day month year getDay() getMonth() getYear() setDay(int) Verifica los das del mes setMonth(int) setYear(int) validDay(int)

La Solucin. Se debe usar setters/getters para el acceso a datos internos. MyDate d = new MyDate(); d.setDay(32); // da invlido, regresa false d.setMonth(2); d.setDay(30); // puede ser, pero setDay regresa false d.setDay(d.getDay() + 1); // regresa false si la envoltura se ejecuta
Maestra en Direccin de Tecnologas de la Informacin

M. I. Alejandro Cifuentes A.

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos EL ENCAPSULAMIENTO Es la metodologa para ocultar ciertos elementos de la implantacin de una clase, proporcionando una interfaz pblica para el software del cliente. Oculta los detalles de implantacin de una clase. Obliga al usuario a utilizar una interfaz para el acceso a los datos. Incrementa el mantenimiento del cdigo.
MyDate

date
getDay() getMonth() getYear() setDay(int) setMonth(int) setYear(int) validDay(int)
M. I. Alejandro Cifuentes A. Maestra en Direccin de Tecnologas de la Informacin

10

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos LOS CONSTRUCTORES Cada clase debe tener, al menos, un constructor. Si no se escribe un constructor, se suministra uno default automticamente: El constructor default no posee argumentos, ni tiene cuerpo. Sintxis de un constructor: <modificador><nomDeClase>([listaDeArgumentos]){ [enunciados] public class Dog{ } private int weight;
public dog(){ weight = 42; } public int getWeight(){ return weight; } public void setWeight(int newWeight){ weight = newWeight; } } Maestra en Direccin de
Tecnologas de la Informacin 11

Ejemplo:

M. I. Alejandro Cifuentes A.

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos EL ENUNCIADO package Sintxis del enunciado package: package <nomDelTopPkg>[.<nomDelSubPkg>]*; Ejemplo: package shipping.reports; Un paquete es una forma de agrupar las clases que estn relacionadas. La declaracin del paquete se especifica al inicio del archivo fuente. Solamente se permite una declaracin de un paquete por archivo fuente. Si no se declara un paquete, entonces la clase pertenece al paquete default. Los nombres de los paquetes deben ser jerrquicos y separados por puntos.
Maestra en Direccin de Tecnologas de la Informacin

M. I. Alejandro Cifuentes A.

12

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos LA PLANTILLA DE DIRECTORIOS Y PAQUETES Los paquetes se almacenan en el rbol del JavaProjects/ BankPrj/ directorio que contiene el nombre del paquete. src/ En la compilacin, se redirigen los archivos banking/ domanin/*.JAVA .class a otro directorio con la opcin d del GUI/ comando javac, trabajando en el directorio que reports/ doc/ se encuentre un nivel por arriba del inicio del class/ paquete. banking/ Para compilar todos los archivos en el paquete domain/*.CLASS GUI/ banking.domain y tener las clases compiladas en reports/ su directorio correcto: Compiler/
cd JavaProjects/BankPrj/src javac d ../class banking/domain/*.java
La ruta de su carpeta final en src
M. I. Alejandro Cifuentes A. Maestra en Direccin de Tecnologas de la Informacin

src/ doc/ class/

13

Centro Universitario Grupo SOL


2. Programacin Orientada a Objetos IMPLANTACIN Se puede implantar una aplicacin en una mquina cliente sin manipular la variable de ambiente CLASSPATH del usuario. Si la aplicacin se implanta como archivo JAR, entonces copie ese archivo en el directorio de extensin de librera. Este directorio est en path/jre/lib/ext/; por ejemplo: /usr/jdk1.4.0/jre/lib/ext/ En Solaris. C:\jdk1.4.0\jre\lib\ext\ En Windows. Si aplicacin se implanta como una jerarqua de archivos de clase, entonces coloque el paquete completo bajo el directorio jre/classes. Este directorio est en path/jre/classes/; por ejemplo: /usr/jdk1.4.0/jre/classes/ En Solaris. C:\jdk1.4.0\jre\classes\ En Windows. No se necesitan variables de ambiente especiales (JDK_HOME, JAVA_HOME o CLASSPATH).
M. I. Alejandro Cifuentes A. Maestra en Direccin de Tecnologas de la Informacin

14

También podría gustarte