You are on page 1of 14

Centro Universitario Grupo SOL

2. Programación Orientada a Objetos

JAVA
M. I. Alejandro Cifuentes A.

Programaci

ón Avanzada
Maestría en Dirección de Tecnologías de la Información

1

Programación Orientada a Objetos  OBJETIVOS • • Definir los conceptos de modelado: Abstracción. Maestría en Dirección de Tecnologías de la Información • • M. Alejandro Cifuentes A. 2 .Centro Universitario Grupo SOL 2. Utilizar los modificadores de acceso private y public para el uso adecuado del encapsulamiento. Definir qué es:  Clase  Miembro  Atributo  Método  Constructor  Paquete. Invocar un método de algún objeto en particular. Encapsulamiento y Paquetes. I.

Maestría en Dirección de Tecnologías de la Información 3 . Se pueden usar como “as is” o extender su comportamiento. actividades. Frameworks y APIs: Grandes grupos de objetos que hacen una actividad compleja.  Modelado de relaciones e interacciones entre objetos y actores. Alejandro Cifuentes A. relacionados en una clase.  Buscar abstracciones útiles que ayuden a simplificar el problema o solución. que se use en varias situaciones. objetos y comportamientos. Programación Orientada a Objetos  LA FASE DE ANÁLISIS Y DISEÑO El Análisis describe que necesita hacer el sistema.  Modelado del mundo real: actores. El Diseño describe cómo lo hace el sistema. I.Centro Universitario Grupo SOL 2.  ABSTRACCIÓN Funciones: Escribir un algoritmo una vez solamente. M. Objetos: Agrupamiento de un conjunto de atributos y comportamientos.

 Polimorfismo. Programación Orientada a Objetos  LAS CLASES SON PLANTILLAS PARA LOS OBJETOS • En la industria de la manufactura. • En Java. un plano o plantilla describe un dispositivo a partir del cual se construyen muchos dispositivos físicos.  En software. Alejandro Cifuentes A. I.  Herencia.  Una clase describe los comportamientos que exhibe cada uno de los objetos. M. Maestría en Dirección de Tecnologías de la Información 4 . las clases poseen las tres características clave de la Programación Orientada a Objetos:  Encapsulamiento.Centro Universitario Grupo SOL 2.  Una clase describe el dato que cada uno de los objetos incluye. una clase es una descripción de un objeto.

M. Maestría en Dirección de Tecnologías de la Información 5 . Alejandro Cifuentes A. Programación Orientada a Objetos  DECLARACIÓN DE CLASES EN JAVA • Sintáxis de una clase de Java: <modificadores> class <nombreDeClase>{ [<declaracionesDeAtributos>] [<declaracionesDeConstructores>] [<declaracionesDeMétodos>] • Ejemplo: public class Vehicle{ private double maxLoad. I. } } • El nombreDeClase es cualquier identificador legal y puede haber varios valores para los modificadores.Centro Universitario Grupo SOL 2. public void setMaxLoad(double value){ maxLoad = value.

0F. I. • Ejemplo: public class Foo{ private int x.Centro Universitario Grupo SOL 2. private float y = 10000. } •El nombreDeAtributo es cualquier identificador legal y puede haber varios valores para los modificadores. private String name = “Cugs”. Maestría en Dirección de Tecnologías de la Información 6 . Programación Orientada a Objetos  DECLARACIÓN DE ATRIBUTOS • Sintáxis básica de un atributo: <modificadores> <tipo> <nombreDeAtributo>. M. •private indica que el atributo es accesible solamente a los métodos dentro de esta clase. •El tipo del atributo puede ser primitivo o alguna clase. Alejandro Cifuentes A.

I. Maestría en Dirección de Tecnologías de la Información 7 . se declara void.Centro Universitario Grupo SOL 2. Alejandro Cifuentes A. public int getWeight(){ return weight. } public void setWeight(int newWeight){ weight = newWeight. M. } • Si no se regresa un valor. } • Usar return para regresar valores. Programación Orientada a Objetos  DECLARACIÓN DE MÉTODOS •Sintáxis de un método: <modificadores> <tipoDeRegreso> <nomDeMétodo>([<listaDeArgumentos>]){ [<enunciados>] } • Ejemplo: public class Dog{ private int weight.

<miembro> • Se utiliza para el acceso a los miembros del objeto. incluyendo los atributos y métodos. d. atributos y métodos.setWeight(42). Maestría en Dirección de Tecnologías de la Información • • • M. Programación Orientada a Objetos  ACCESO A LOS MIEMBROS DEL OBJETO • La notación “punto”: <objeto>. I. no se necesita usar la notación punto para el acceso local de los miembros.weight = 43. Alejandro Cifuentes A.setWeight(42). Dentro de la definición de un método. no privados de una clase. le dice al objeto d que ejecute su método setWeight. 8 . • Ejemplo: d. // solamente se permite si // weight es public d.Centro Universitario Grupo SOL 2. El operador “punto” permite el acceso a los miembros.

9 . •El código cliente posee acceso directo a los datos internos: MyDate d = new MyDate(): MyDate d. regresa false d.setDay(30). Alejandro Cifuentes A. MyDate d = new MyDate(). // no checa por la envoltura MyDate day month year getDay() getMonth() getYear() setDay(int) Verifica los días del mes setMonth(int) setYear(int) validDay(int) • La Solución.day = 30. pero setDay regresa false d.month = 2. d. I.Centro Universitario Grupo SOL 2.getDay() + 1).setDay(d. // día inválido Day Month d.day + 1.// también inválido Year d.day = 32. Programación Orientada a Objetos  EL OCULTAMIENTO DE LA INFORMACIÓN • El Problema.day = d. // puede ser. d. // día inválido. // regresa false si la envoltura se ejecuta Maestría en Dirección de Tecnologías de la Información M. d.setMonth(2). • Se debe usar setters/getters para el acceso a datos internos.setDay(32).

Programación Orientada a Objetos  EL ENCAPSULAMIENTO • Es la metodología para ocultar ciertos elementos de la implantación de una clase.Centro Universitario Grupo SOL 2. • Obliga al usuario a utilizar una interfaz para el acceso a los datos. proporcionando una interfaz pública para el software del cliente. I. • Incrementa el mantenimiento del código. • Oculta los detalles de implantación de una clase. MyDate date getDay() getMonth() getYear() setDay(int) setMonth(int) setYear(int) validDay(int) M. Maestría en Dirección de Tecnologías de la Información 10 . Alejandro Cifuentes A.

al menos. public dog(){ weight = 42. . } public void setWeight(int newWeight){ weight = newWeight.Centro Universitario Grupo SOL 2. I. } public int getWeight(){ return weight. Programación Orientada a Objetos  LOS CONSTRUCTORES • Cada clase debe tener. • Si no se escribe un constructor. se suministra uno default automáticamente: • El constructor default no posee argumentos. } } Maestría en Dirección de Tecnologías de la Información 11 Ejemplo: M. • Sintáxis de un constructor: <modificador><nomDeClase>([listaDeArgumentos]){ [enunciados] public class Dog{ } private int weight. Alejandro Cifuentes A. un constructor. ni tiene cuerpo.

Si no se declara un paquete.<nomDelSubPkg>]*. 12 . I. Alejandro Cifuentes A.reports. Los nombres de los paquetes deben ser jerárquicos y separados por puntos. Programación Orientada a Objetos  EL ENUNCIADO package • Sintáxis del enunciado package: package <nomDelTopPkg>[. Solamente se permite una declaración de un paquete por archivo fuente.Centro Universitario Grupo SOL 2. La declaración del paquete se especifica al inicio del archivo fuente. entonces la clase “pertenece” al paquete default. Maestría en Dirección de Tecnologías de la Información M. Un paquete es una forma de agrupar las clases que están relacionadas. • • • • • • Ejemplo: package shipping.

se redirigen los archivos banking/ domanin/*. Programación 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.java La ruta de su carpeta final en src M.domain y tener las clases compiladas en reports/ su directorio correcto: Compiler/ cd JavaProjects/BankPrj/src javac –d .Centro Universitario Grupo SOL 2.. banking/ Para compilar todos los archivos en el paquete domain/*. src/ En la compilación. Maestría en Dirección de Tecnologías de la Información • src/ doc/ class/ 13 ./class banking/domain/*. trabajando en el directorio que reports/ doc/ se encuentre un nivel por arriba del inicio del class/ paquete.JAVA . I. Alejandro Cifuentes A.class a otro directorio con la opción –d del GUI/ comando javac.CLASS GUI/ banking.

4. • Si aplicación se implanta como una jerarquía de archivos de clase. Este directorio está en path/jre/lib/ext/. Alejandro Cifuentes A. entonces copie ese archivo en el directorio de “extensión de librería”.0\jre\lib\ext\ En Windows. • No se necesitan variables de ambiente especiales (JDK_HOME. I.4. JAVA_HOME o CLASSPATH).0/jre/lib/ext/ En Solaris.0\jre\classes\ En Windows. M.4. • Si la aplicación se implanta como archivo JAR. Este directorio está en path/jre/classes/. por ejemplo: /usr/jdk1.4.Centro Universitario Grupo SOL 2. por ejemplo: /usr/jdk1.0/jre/classes/ En Solaris. C:\jdk1. Programación Orientada a Objetos  IMPLANTACIÓN • Se puede implantar una aplicación en una máquina cliente sin manipular la variable de ambiente CLASSPATH del usuario. Maestría en Dirección de Tecnologías de la Información 14 . entonces coloque el paquete completo bajo el directorio jre/classes. C:\jdk1.