definir los conceptos de la programación orientada a objetos utilizar los modificadores de acceso...

44

Upload: inocencio-mejias

Post on 03-Jan-2015

41 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método
Page 2: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método
Page 3: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Definir los conceptos de la programación orientada a objetos

Utilizar los modificadores de acceso private y public (encapsulamiento)

Invocar un método de un objeto

Page 4: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

El análisis describe qué hace el sistema:₋ Modelado del mundo real: actores y actividades,

objetos y comportamientos

El diseño describe cómo lo hace:₋ Modelado de relaciones e iteraciones entre objetos

y actores en el sistema₋ Detectar abstracciones útiles y utilización de

patrones para simplificar el problema o la solución

Page 5: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Funciones – Escribir el algoritmo una vez para usarlo muchas veces

Objetos – Agrupar un conjunto de atributos relacionados y comportamientos en una clase

Frameworks y APIs – Grandes grupos de objetos que dan soporte a una actividad compleja₋ Los Frameworks pueden ser utilizados “tal como

están” o se pueden extender sus comportamientos

Page 6: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

En una fábrica, el diseño de un dispositivo describe como se van a construir muchos dispositivos físicos.

En software, una clase es la descripción de un objeto:₋ Una clase describe los datos que cada

objeto incluye₋ Una clase describe el comportamiento que

cada objeto exhibe

Page 7: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

En la tecnología Java, las clases cumplen tres características claves de la POO:

₋ Encapsulamiento₋ Herencia₋ Polimofismo

Las cuales veremos más adelante.

Page 8: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método
Page 9: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Sintaxis básica de una clase Java:

<modificador> class < nombre_clase> { [< declaraciones_de_atributos>] [< declaraciones_de_constructores>] [< declaraciones_de_métodos>]}

Ejemplo:

public class Vehicle {private double maxLoad;

public void setMaxLoad(double value) { maxLoad = value; }

}

Page 10: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Existen 3 modificadores de acceso:₋ public₋ protected₋ private

Existen 4 niveles de acceso:₋ public₋ protected₋ default₋ private

Page 11: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método
Page 12: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Las clases solo pueden ser (excepción en caso inner clases):₋ public₋ default

Otros modificadores aplicables a clases₋ final₋ abstract

Page 13: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método
Page 14: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Por ahora veremos solo dos:₋ private: miembros solo visibles por la propia

clase, veremos más adelante que no se heredan

₋ public: miembros o clases visibles por todas las demás clases

Page 15: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método
Page 16: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Sintaxis básica de un atributo: [< modificadores>] < tipo> <nombre> [ =

<valor_inicial>];

Ejemplopublic class Foo { private int x; private float y = 10000.0F; private String name = "Bates Motel";}

Page 17: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Sintaxis básica de métodos: [< modificadores >] < tipo_retorno> <nombre>([<

lista_de_argumentos>]) { [< sentencias>]}

Ejemplopublic class Dog { private int weight; public int getWeight() { return weight;

} public void setWeight(int newWeight) { weight = newWeight;

} }

Page 18: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Si el tipo de retorno es un objeto, se acepta null como valor de retorno

Nada puede ser retornado si se declara el tipo de retorno como void, pero puede utilizarse simplemente return.

Page 19: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método
Page 20: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

La notación “punto”: <objeto>.<miembro> Esto es utilizado para acceder a miembros de

objetos, como los atributos y métodos Ejemplos:

₋ d.setWeight(42);₋ d.weight = 42; // sólo permitido si weight

tiene

// alcance public

Page 21: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Los métodos y atributos son conocidos como “miembros” (también las inner classes).

Los miembros pueden usar todos los niveles de acceso.

Los miembros accedidos sin el operador punto (.) deben pertenecer a la propia clase.

Page 22: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método
Page 23: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

El problema:El código del cliente tiene acceso a los datos

internos

d.day = 32;

// día no válido

d.month = 2; d.day = 30;

//posible pero erróneo

d.day = d.day + 1;

// no realiza chequeo sobre el mes

Page 24: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

La solución: El código del cliente debe utilizar los métodos setters/getters para acceder a los datos internos:

₋ MyDate d = new MyDate();

₋ d.setDay(32);

₋ d.setMonth(2);₋ d.setDay(30);

₋ d.setDay(d.getDay() + 1);

Page 25: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Oculta los detalles de implementación de una clase

Obliga al usuario a utilizar una interfase para acceder a los datos

Hace el código más mantenible

Page 26: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Sintaxis básica de un constructor:[< modificador>] < nombre_de_clase> ([<

lista_de_argumentos>]) {[< sentencias>]

} Los constructores deben tener el mismo nombre

que la clase No tienen un tipo de retorno

Page 27: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Ejemplo1 public class Dog {2 private int weight;34 public Dog() {5 weight = 42;6 }78 public int getWeight() {9 return weight;10 }11 public void setWeight(int newWeight) {12 weight = newWeight;13 }14}

Page 28: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Existe por lo menos un constructor en cada clase.

Si el programador no escribe ningún constructor, el constructor por defecto esta presente automáticamente:₋ El constructor por defecto no recibe

parámetros₋ El cuerpo del constructor es vacío₋ Permite al programador construir objetos

con new Xxx() sin tener que escribir un constructor.

Page 29: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Todas las clases (incluso las abstractas) tienen por lo menos un constructor

Si se coloca un tipo de retorno en un constructor, se convierte en una función con el mismo nombre que la clase pero deja de ser un constructor

Las interfaces no tienen constructor(Importante)

Page 30: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método
Page 31: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Sintaxis básica de un archivo Java:[< declaración_de_package>][< declaraciones_de_import>]< declaración_de_clase>+

Ejemplo del archivo VehicleCapacityReport.java :

package shipping.reports;import shipping.domain.*;import java.util.List;import java.io.*;public class VehicleCapacityReport { private List vehicles; public void generateReport(Writer output) {...}}

Page 32: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Un archivo fuente puede tener solo una clase public

Un archivo fuente puede tener más de una clase no-public

Si el fuente contiene una clase publica su nombre debe coincidir con el de la clase

Los fuentes sin clases public no tienen restricciones en cuanto al nombre del archivo

Las clases en un mismo archivo pueden declararse en cualquier orden ( no existe problema de forward referencing )

Page 33: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Los paquetes permiten un mejor manejo de sistemas de software grandes

Los paquetes pueden contener clases y sub-paquetes

Page 34: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Sintaxis básica de la sentencia package:package < nombre_de_paquete_padre>[.<nombre_de_sub-paquete>]*;

Ejemplo:package shipping.reports;

Especifique la declaración del package al comienzo del archivo fuente.

Page 35: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Solamente una declaración de paquete por archivo fuente.

Si ningún paquete es declarado, entonces la clase pertenece al paquete por defecto.

Los nombres de los paquetes debe ser jerárquico y separado por punto.

Page 36: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Los paquetes son guardados en el árbol de directorio que contenga el nombre del paquete.

Ejemplo, los paquetes de la aplicación “shipping” :

Page 37: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Sintaxis básica de la sentencia import:

import < nombre_pkg> [.<nombre_sub_pkg>].< nombre_clase>;

(en este caso solamente se importa la clase que se va ha utilizar)

O

import < nombre_pkg>[.< nombre_sub_pkg>].*;

(en este caso se importan todas las clases del sub package)

Page 38: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Ejemplo:

import shipping.domain.*;

import java.util.List;

import java.io.*;

Precede a todas las declaraciones de clases Le indica al compilador dónde encontrar las

clases que se utilizan

Page 39: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Los imports son un shortcut al fully qualified name de la clase que importan. Ej: import java.util.List;public class Auto{

private List<Rueda> ruedas;......

} Si se usan clases de otro paquete y no hay sentencias de

import, se deberá usar el fully qualified name de la clase donde se quiera hacer referencia a la misma. Ej: public class Auto{

private java.util.List<Rueda> ruedas;......

} Imports y fully qualified names pueden coexistir

Page 40: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Clase – Código fuente que diseña los objetos de tiempo de ejecución

Objeto – Instancia de una clase También conocido como instancia Atributo – Elemento con información de un objeto También conocido como dato miembro, variable de instancia, campo de dato

Método – Elemento que define el comportamiento de un objeto. También conocido como algoritmo, función, procedimiento

Constructor – Es “como un método” constructor utilizado para inicializar un objeto nuevo

Package – Grupo de clases agrupada y/o sub paquetes

Page 41: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Conjunto de archivos HTML que provee información de las API

Un frame describe un paquete y contiene enlaces a páginas que describen la información de cada clase en ese paquete.

El documento de cada clase incluye la jerarquía de clases a la cuál pertenece, una descripción de la clase, una lista de variables miembro, una lista de constructores, una lista de métodos, etc.

La direccion es http://java.sun.com/j2se/1.5.0/docs/api/

Page 42: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método
Page 43: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Definición de objetivos. Definición de Programación Orientada a Objetos (POO) Fases en el Proceso de Software. Clases y Objetos Herencia, Polimorfismo y Encapsulamiento. Sintaxis: atributos, métodos, clases, constructores. Métodos de acceso y modificación. Paquetes e Imports de paquetes. Documentación de Java (API)

Page 44: Definir los conceptos de la programación orientada a objetos Utilizar los modificadores de acceso private y public (encapsulamiento) Invocar un método

Arraquis₋ http://www.arrakis.es/~abelp/ApuntesJava/indice.htm

Java Sun ₋ http://download.oracle.com/javase/1.5.0/docs/guide/language/index.html