You are on page 1of 79

UD Lenguajes y Herramientas de

Desarrollo de Software
Actividad 2: Programacin orientada a
objetos
Introduccin
El contenido de la siguiente presentacin es ntegramente el
contenido del curso Java Programming Language, Java SE 6 de
Oracle, con algunos agregados propios de Iberotec.
Se utiliza el material oficial de Oracle, por ser Iberotec
miembro del Oracle Academy.
Actividad 2: Programacin orientada a
objetos
1. Ingeniera de Software
2. Declaracin de Clases en Java
3. Declaracin de Atributos
4. Declaracin de Mtodos
5. Acceso a los miembros del objeto
6. Forma de ocultar la informacin
7. Encapsulacin
8. Declaracin de Constructores
Actividad 2: Programacin orientada a
objetos
9. Organizacin de los archivos fuentes
10. Paquetes de Software
11. Sentencia package
12. Sentencia import
13. Disposicin de los directorios y los paquetes
14. Implementacin
15. Resumen de la terminologa
16. Uso de la documentacin sobre el API de Java
Ingeniera de Software
Ingeniera de Software
o La ingeniera de software es una disciplina compleja y, a
menudo, difcil de controlar. Durante la segunda mitad del siglo
anterior, los informticos, ingenieros de software y
diseadores de sistemas dedicaron sus esfuerzos a crear
sistemas de software ms sencillos mediante el uso de cdigo
reutilizable. En la siguiente figura se ofrece una breve historia
de la ingeniera de software.

Ingeniera de Software
Breve historia de la Ingeniera de Software
Ingeniera de Software
Al principio dedicaron sus esfuerzos a crear lenguajes que
ocultaran la complejidad del lenguaje mquina y agregaron
llamadas a procedimientos en el sistema operativo para
manejar operaciones comunes tales como la apertura,
lectura o escritura de archivos.
Otros desarrolladores agruparon en diferentes bibliotecas
conjuntos de funciones y procedimientos comunes que
abarcaban desde el clculo de la cargas estructurales para
ingeniera (NASTRAN), hasta la transmisin de caracteres y
flujos de bytes entre los equipos conectados a una red
(TCP/IP), el acceso a los datos a travs de un mtodo de
acceso secuencial indexado (ISAM) o la creacin de ventanas
y otros objetos de interfaz de usuario en un monitor grfico
(X-Windows y Open Look).

Ingeniera de Software
Muchas de estas bibliotecas manejan los datos en forma de
estructuras de registros abiertas, como es el caso de las
estructuras struct del lenguaje C. El principal problema de las
estructuras de registros es que el diseador de la biblioteca
no puede ocultar la implementacin de los datos utilizada en
los procedimientos.
Esto dificulta la tarea de modificar la implementacin de la
biblioteca sin tocar el cdigo cliente porque ese cdigo
normalmente est ligado a los aspectos especficos de las
estructuras de datos.


Ingeniera de Software
A finales de los 80, la programacin orientada a objetos se
populariz con la llegada de C++. Una de las grandes ventajas
de la programacin OO era su capacidad para ocultar
determinados aspectos de la implementacin de la
biblioteca para que las actualizaciones no afectasen al cdigo
cliente (suponiendo que no se produjesen cambios en las
interfaces). Otra ventaja importante era que los
procedimientos estaban asociados a la estructura de datos.
La combinacin de atributos de datos y procedimientos
(llamados mtodos) se conoce como clase.
Ingeniera de Software
En la actualidad, el equivalente de las bibliotecas de
funciones son las bibliotecas de clases o los kits de
herramientas (toolkits). Esas bibliotecas proporcionan clases
para realizar muchas de las operaciones que realizan las
bibliotecas de funciones, pero, gracias al uso de las subclases,
los programadores del cdigo cliente pueden ampliar estas
herramientas con facilidad para utilizarlas en sus propias
aplicaciones. Las infraestructuras de programacin
proporcionan interfaces (API) que los distintos proveedores
pueden implementar para brindar la cantidad de flexibilidad
y rendimiento que necesite cada desarrollador en sus
aplicaciones.

Ingeniera de Software
La tecnologa Java es una plataforma que se mantiene en
continua expansin a travs de diferentes API e
infraestructuras de programacin tales como Java Foundation
Classes/Swing (J.F.C./Swing) y sus bibliotecas, la arquitectura
de JavaBeans (arquitectura de componentes de Java) y el API
JDBC (Java DataBase Connectivity). La lista de API de Java es
larga y sigue en aumento.

Ingeniera de Software
Fase de Anlisis y Diseo
o Un proyecto de desarrollo de software se compone de cinco
fases fundamentales: definicin de los requisitos, anlisis,
diseo, implementacin y pruebas. Todas ellas son
importantes, pero es fundamental dedicar el tiempo suficiente
para las fases de anlisis y diseo.


Ingeniera de Software
Fase de Anlisis y Diseo
o Durante la fase de anlisis se define qu objetivos debe
perseguir el sistema. Esto se consigue definiendo todos los
elementos implicados (usuarios, dispositivos y otros sistemas
que interaccionan con el sistema propuesto) y las actividades
que dicho sistema debe llevar a cabo. En esta fase se
identifican tambin los objetos de dominio (tanto fsicos como
conceptuales) que el sistema propuesto manejar, as como el
comportamiento de tales objetos y las interacciones entre ellos.
Estos comportamientos implementan las actividades de las que
el sistema propuesto debe hacerse cargo. La descripcin de
estas actividades debera ser lo bastante detallada como para
crear los criterios que se tomarn como base en la fase de
pruebas.


Ingeniera de Software
Fase de Anlisis y Diseo
o Durante la fase de diseo se define cmo alcanzar el sistema
esos objetivos. En esta fase se crea un modelo de los
elementos implicados, las actividades, los objetos y los
comportamientos del sistema propuesto. Para esta parte
utilizar la herramienta de modelado UML (Unified Modeling
Language).

Ingeniera de Software
Ejemplo de Anlisis y Diseo
o En este mdulo se utiliza como ejemplo una aplicacin de una
empresa de transporte. Deben tomarse en consideracin un
conjunto bsico de requisitos:
El software debe aplicarse a una sola compaa de transporte.
La compaa cuenta con una flota de vehculos que transporta
cajas.
El peso de las cajas es el nico factor importante que debe
tenerse en cuenta al cargar un vehculo.
La empresa posee dos tipos de vehculos: camiones y barcazas de
transporte fluvial.
Las cajas se pesan utilizando el kilogramo como unidad de
medida, pero los algoritmos para calcular la potencia de motor
necesaria deber contabilizar la carga total del vehculo medida
en newtons. Un newton es una medida de fuerza (o peso)
equivalente a 9,8 veces la masa del objeto en kilogramos.



Ingeniera de Software
Ejemplo de Anlisis y Diseo
Deber utilizar una interfaz grfica para hacer el seguimiento de
las cajas que se van agregando a los vehculos.
Tambin deber generar varios informes a partir de los registros
de fletes.
o Tomando estos requisitos como base, puede crear un diseo de
alto nivel:
Los objetos siguientes deben estar representados en el sistema:
una empresa y dos tipos de vehculos.
Una compaa es la suma de mltiples objetos que son los
vehculos.
Tambin existen otros objetos funcionales: los informes y las
pantallas de la interfaz grfica.





Ingeniera de Software
Abstraccin
o El diseo de software ha ido avanzado desde construcciones de
bajo nivel, como es la escritura en cdigo mquina, hasta
niveles mucho ms altos.
o Existen dos fuerzas interrelacionadas que han impulsado este
proceso: la simplificacin y la abstraccin.






Ingeniera de Software
Abstraccin
o La simplificacin tuvo lugar cuando los primeros diseadores de
lenguajes de programacin crearon construcciones de alto nivel
tales como las sentencias condicionales IF y los bucles FOR a
partir del lenguaje de mquina.
o La abstraccin es el mecanismo que oculta los datos privados
de la implementacin tras las interfaces pblicas.
o El concepto de abstraccin condujo al uso de subrutinas
(funciones) en lenguajes de alto nivel y, posteriormente, al
emparejamiento de funciones y datos en objetos. A niveles ms
altos, la abstraccin dio lugar al desarrollo de infraestructuras
de programacin y API.






Ingeniera de Software
Clases como prototipos de objetos
o Al igual que un diseador crea prototipos de dispositivos que
podrn utilizarse en repetidas ocasiones para construir los
dispositivos reales, una clase es un prototipo de software que
puede utilizarse para instanciar (es decir crear) muchos objetos
diferentes. La clase define el conjunto de elementos (atributos)
que definen los objetos, as como el conjunto de
comportamientos o funciones (llamados mtodos) que
manejan el objeto o ejecutan las interacciones entre objetos
relacionados. Juntos, los atributos y mtodos se denominan
miembros. Por ejemplo, un objeto vehculo en la aplicacin de
transporte debe llevar el control de su carga mxima y su carga
real y utilizar mtodos para agregar una caja (de un cierto peso)
al vehculo. El lenguaje Java incorpora tres conceptos clave de la
Programacin Orientada a Objetos (POO): encapsulacin,
herencia y polimorfismo.





Actividad 2: Programacin orientada a
objetos
1. Ingeniera de Software
2. Declaracin de Clases en Java
3. Declaracin de Atributos
4. Declaracin de Mtodos
5. Acceso a los miembros del objeto
6. Forma de ocultar la informacin
7. Encapsulacin
8. Declaracin de Constructores
Declaracin de Clases en Java
La declaracin de clases en Java adopta la forma siguiente:





o <nombre_clase> es el nombre de la clase que se va a declarar y
puede ser cualquier identificador admitido.
o Hay varias palabras clave que pueden usarse como
<modificador>, pero, por ahora, utilice nicamente public. Este
modificador declara que la clase es pblica, es decir, de acceso
universal.
o El cuerpo de la clase declara el conjunto de atributos,
constructores y mtodos asociados a la clase.


<modificador>* class <nombre_clase> {
<declaracin_atributo>*
<declaracin_constructor>*
<declaracin_mtodo>*
}
Declaracin de Clases en Java
Ejemplo de declaracin de una clase




public class Vehiculo {
private double cargaMax;
public void setCargaMax(double valor) {
cargaMax = valor;
}
}
Actividad 2: Programacin orientada a
objetos
1. Ingeniera de Software
2. Declaracin de Clases en Java
3. Declaracin de Atributos
4. Declaracin de Mtodos
5. Acceso a los miembros del objeto
6. Forma de ocultar la informacin
7. Encapsulacin
8. Declaracin de Constructores
Declaracin de Atributos
La declaracin de atributos de los objetos se realiza de la
forma siguiente:



o <nombre> es el nombre del atributo que se va a declarar y
puede ser cualquier identificador admitido.
o Es posible usar varios valores como <modificador>, pero, por
ahora, utilice slo public o private. La clave private indica que
slo pueden acceder al atributo todos los mtodos
pertenecientes a esta clase.
o El <tipo> de atributo puede ser cualquier tipo primitivo (int,
loat, etc.) o cualquier clase.



<modificador>* <tipo> <nombre> [= <valor_inicial>];
Declaracin de Atributos
Ejemplo:





public class Ejemplo {
private int x;
private float y = 10000.0F;
private String name = "Hotel Medioda";
}
Actividad 2: Programacin orientada a
objetos
1. Ingeniera de Software
2. Declaracin de Clases en Java
3. Declaracin de Atributos
4. Declaracin de Mtodos
5. Acceso a los miembros del objeto
6. Forma de ocultar la informacin
7. Encapsulacin
8. Declaracin de Constructores
Declaracin de Mtodos
Para definir los mtodos, el lenguaje Java utiliza un enfoque
similar al de otros lenguajes, en concreto C y C++. La
declaracin adopta el siguiente formato bsico:


o El <nombre> puede ser cualquier identificador admitido, con
algunas restricciones derivadas de los nombres que ya se estn
utilizando.
o El segmento <modificador> es opcional y puede tener
numerosos valores, entre ellos, public, protected y private. El
modificador de acceso public indica que es posible llamar a este
mtodo desde otro cdigo. El mtodo private indica que slo
pueden acceder a l otros mtodos de la clase. El mtodo
protected se describe ms adelante en este curso.


<modificador>* <tipo retorno> <nombre> (<argumento>*){
}
Declaracin de Mtodos
o <tipo_retorno> indica el tipo de valor que devuelve el mtodo.
Si el mtodo no devuelve ningn valor, debe declararse void. La
tecnologa Java es estricta en lo que se refiere a los valores de
retorno. Si la declaracin indica que el mtodo debe devolver,
por ejemplo, un entero (int), el mtodo debe devolver un
entero desde todas las rutas de retorno posibles y slo acepta
llamadas en contextos que esperen el tipo int. Para devolver un
valor dentro de un mtodo debe utilizarse la sentencia return.

o La lista <argumentos> permite pasar argumentos al mtodo.
Los elementos de la lista deben ir separados por comas y cada
elemento debe constar de un tipo y un identificador.



Declaracin de Mtodos
Ejemplo
public class Perro {
private int peso;
public int getPeso() {
return peso;
}
public void setPeso(int newPeso) {
if ( newPeso > 0 ) {
peso = newPeso;
}
}
}
Declaracin de Mtodos
El cdigo muestra dos mtodos para la clase Perro.
o El mtodo getPeso devuelve el valor del atributo peso y no
utiliza parmetros. Los valores de los mtodos se devuelven
utilizando la sentencia return.
o El mtodo setPeso modifica el valor de peso con el parmetro
newPeso. No devuelve ningn valor. Este mtodo utiliza una
sentencia condicional para impedir que el cdigo cliente defina
el peso de Perro con un nmero negativo o con cero.

Actividad 2: Programacin orientada a
objetos
1. Ingeniera de Software
2. Declaracin de Clases en Java
3. Declaracin de Atributos
4. Declaracin de Mtodos
5. Acceso a los miembros del objeto
6. Forma de ocultar la informacin
7. Encapsulacin
8. Declaracin de Constructores
Acceso a los miembros del objeto
En el ejemplo siguiente ver la siguiente lnea de cdigo en el
mtodo Prueba Perro.main:

Esta lnea indica al objeto d (en realidad una variable, d, que
contiene una referencia a un objeto del tipo Perro) que
ejecute su mtodo setPeso. Esto se denomina notacin de
punto.
El operador punto (.) permite acceder a los atributos y
mtodos que componen los miembros no privados de una
clase.
Dentro de la definicin de los mtodos, no es necesario usar
la notacin de punto para acceder a los miembros locales.
Por ejemplo, el mtodo setPeso de la clase Perro no utiliza la
notacin de punto para acceder al atributo peso.

d.setPeso(42);
Acceso a los miembros del objeto
En el Cdigo se muestra el comportamiento de los mtodos
de Perro. Cuando se crea el objeto Perro, se inicializa la
variable de la instancia peso con el valor 0. Por tanto, el
mtodo getPeso devuelve 0.
Asimismo en este cdigo se establece el peso en 42, que es
un argumento vlido, y el mtodo setPeso define el valor de
la variable peso.
No obstante, no se admite el valor -42 como peso, as que el
mtodo setPeso no modifica la variable peso.

Acceso a los miembros del objeto
Ejemplo
public class PruebaPerro {
public static void main(String[] args) {

Perro d = new Perro();
System.out.println("El peso del perro d es + d.getPeso());
d.setPeso(42);
System.out.println("El peso del perro d es + d.getPeso());
d.setPeso(-42);
System.out.println("El peso del perro d es + d.getPeso());
}
}
La salida es:
El peso del perro d es 0
El peso del perro d es 42
El peso del perro d es 42
Actividad 2: Programacin orientada a
objetos
1. Ingeniera de Software
2. Declaracin de Clases en Java
3. Declaracin de Atributos
4. Declaracin de Mtodos
5. Acceso a los miembros del objeto
6. Forma de ocultar la informacin
7. Encapsulacin
8. Declaracin de Constructores
Forma de ocultar la informacin
Imagine que tiene una clase llamada MyDate que incluye los
atributos siguientes: day, month y year. La Figura contiene un
diagrama de una posible implementacin de la clase MyDate.




Una implementacin sencilla permite el acceso directo a
estos atributos, por ejemplo:


public class MyDate {
public int day;
public int month;
public int year;
}
Forma de ocultar la informacin
Por tanto, el cdigo cliente accede directamente a estos
atributos y genera errores, por ejemplo (d se refiere al objeto
MyDate):


d.day = 32;
// da no vlido

d.month = 2; d.day = 30;
// posible pero incorrecto, 30 de febrero

d.day = d.day + 1;
// no hay comprobacin de comportamiento cclico (wraparound)
Forma de ocultar la informacin
Para resolver el problema, oculte los datos de atributos
hacindolos privados y proporcione otros mtodos de acceso
como getXyz(), a veces denominados getters, y setXyz(), a
veces llamados setters. En la siguiente Figura se ilustra otro
diagrama UML de la clase MyDate donde se ocultan las
variables de instancia detrs de los mtodos de acceso get y
set.


Forma de ocultar la informacin


Forma de ocultar las
variables de
instancia de la clase
MyDate
Forma de ocultar la informacin
Estos mtodos permiten a la clase modificar los datos
internos, pero, sobre todo, verificar la validez de los cambios
solicitados. Por ejemplo:


MyDate d = new MyDate();

d.setDay(32);
// da no vlido, devuelve false

d.setMonth(2); d.setDay(30);
// posible pero incorrecto, setDay devuelve false

d.setDay(d.getDay() + 1);
// esta lnea devuelve false si se produce comportamiento cclico
Actividad 2: Programacin orientada a
objetos
1. Ingeniera de Software
2. Declaracin de Clases en Java
3. Declaracin de Atributos
4. Declaracin de Mtodos
5. Acceso a los miembros del objeto
6. Forma de ocultar la informacin
7. Encapsulacin
8. Declaracin de Constructores
Encapsulacin
La encapsulacin es la forma de ocultar ciertos elementos de
la implementacin de una clase y, al mismo tiempo,
proporcionar una interfaz pblica para el software cliente. Es
una forma ms de ocultar los datos, ya que la informacin de
los atributos es un elemento significativo de la
implementacin de las clases.
Por ejemplo, el programador de la clase MyDate podra optar
por volver a implementar la representacin interna de una
fecha como el nmero de das transcurridos desde el
comienzo de una determinada poca. Esto podra facilitar las
comparaciones de fechas y el clculo de los intervalos entre
fechas. Como el programador ha encapsulado los atributos
dentro de una interfaz pblica, puede realizar este cambio sin
que afecte al cdigo cliente.
Encapsulacin
La encapsulacin aporta mayor flexibilidad para representar
los datos.

Actividad 2: Programacin orientada a
objetos
1. Ingeniera de Software
2. Declaracin de Clases en Java
3. Declaracin de Atributos
4. Declaracin de Mtodos
5. Acceso a los miembros del objeto
6. Forma de ocultar la informacin
7. Encapsulacin
8. Declaracin de Constructores
Declaracin de Constructores
Un constructor es un conjunto de instrucciones diseadas
para inicializar una instancia. Los parmetros del constructor
se pasan de la misma forma que los de los mtodos. La
declaracin bsica tiene el siguiente formato:



El nombre del constructor siempre debe ser idntico al de la
clase. Si se utilizan, los nicos modificadores vlidos
(<modificador>) para los constructores son public, protected
y private.
La lista de <argumentos> es la misma que en el caso de las
declaraciones de mtodos.



[<modificador>] <nombre_clase> ( <argumentos>* ) {
<sentencia>*
}

Declaracin de Constructores
Los constructores no son mtodos. No tienen valores de
retorno ni se heredan.






La clase Perro tiene una sola variable de instancia peso. El
constructor(sin parmetros) inicializa peso con el valor 42.
Tambin es posible declarar constructores con parmetros.
Este aspecto se trata ms adelante en el curso.




public class Perro {
private int peso;

public Perro() {
peso = 42;
}
}
Declaracin de Constructores
Constructor Predeterminado
o Cada clase tiene al menos un constructor. Si no se escribe
ninguno, el lenguaje Java se encarga de suministrarlo. En ese
caso, el constructor no tiene argumentos y su cuerpo est
vaco.
o El constructor predeterminado permite crear instancias de los
objetos con new Xyz(). En caso de que no se utilice, es preciso
suministrar un constructor para cada clase.
o Si se agrega la declaracin de un constructor a una clase que no
tena ningn constructor explcito, se pierde el constructor
predeterminado. A partir de ese momento, y a menos que el
constructor agregado no tenga argumentos, las llamadas a new
Xyz() generarn errores de compilacin.

Actividad 2: Programacin orientada a
objetos
9. Organizacin de los archivos fuentes
10. Paquetes de Software
11. Sentencia package
12. Sentencia import
13. Disposicin de los directorios y los paquetes
14. Implementacin
15. Resumen de la terminologa
16. Uso de la documentacin sobre el API de Java
Organizacin de los archivos fuentes
Los archivos fuente de Java tienen el siguiente formato:





El signo ms (+) indica uno o ms. Para que pueda utilizarse,
un archivo fuente debe contener al menos la definicin de
una clase.


[<declaracin_paquete>]
<declaracin_importacin>*
<declaracin_clase>+
Organizacin de los archivos fuentes
El orden de estos elementos es importante. Es decir, las
sentencias de importacin deben preceder a las
declaraciones de clases y, si se utiliza una declaracin de
paquetes, sta debe preceder a la de clases e importaciones.
El nombre del archivo fuente debe ser el mismo que el de la
declaracin de clase pblica de ese archivo.
Por otra parte, el archivo fuente puede incluir varias
declaraciones de clases, pero slo una puede declararse
como pblica (public). Si un archivo fuente no contiene
ninguna declaracin de clase pblica, entonces no existen
restricciones en cuanto al nombre de archivo. No obstante, es
recomendable tener un archivo fuente por cada declaracin
de clase y el nombre de dicho archivo debe ser idntico al de
la clase.

Organizacin de los archivos fuentes
Por ejemplo, el archivo InformeCapacidadVehiculo.java
debera tener un contenido similar a ste:



package transporte.informes;

import transporte.dominio.*;
import java.util.List;
import java.io.*;

public class InformeCapacidadVehiculo {
private List vehiculos;
public void generarInforme(Writer output) {
// cdigo para generar el informe
}
}
Actividad 2: Programacin orientada a
objetos
9. Organizacin de los archivos fuentes
10. Paquetes de Software
11. Sentencia package
12. Sentencia import
13. Disposicin de los directorios y los paquetes
14. Implementacin
15. Resumen de la terminologa
16. Uso de la documentacin sobre el API de Java
Paquetes de Software
La mayora de los sistemas de software son de grandes
dimensiones. Es habitual agrupar las clases en paquetes para
facilitar la administracin del sistema. UML incluye el
concepto de paquete en su lenguaje de modelado. Los
paquetes pueden contener clases u otros paquetes que
forman una jerarqua. En la Figura puede verse un ejemplo de
una estructura de paquetes:

Paquetes de Software
Existen muchas formas de agrupar las clases en paquetes con
sentido lgico. No existe una forma correcta o errnea de
hacerlo, pero una tcnica habitual es agrupar las clases por
similitud semntica.
Por ejemplo, un sistema de software de transporte debera
contener una serie de objetos de dominio (como la empresa,
los vehculos, las cajas, los destinos, etc.), un conjunto de
informes y un grupo de paneles de la interfaz grfica que
sirvan para crear la aplicacin de introduccin de datos
principal. Los subsistemas GUI e informes dependen del
paquete dominio. Los paquetes UML pueden ser tiles para
modelar subsistemas u otras agrupaciones de elementos en
funcin de las necesidades. Los dems paquetes estn
incluidos en el paquete de nivel superior, llamado transporte.


Actividad 2: Programacin orientada a
objetos
9. Organizacin de los archivos fuentes
10. Paquetes de Software
11. Sentencia package
12. Sentencia import
13. Disposicin de los directorios y los paquetes
14. Implementacin
15. Resumen de la terminologa
16. Uso de la documentacin sobre el API de Java
Sentencia package
El lenguaje Java proporciona la sentencia package como una
forma de agrupar clases relacionadas. Esta sentencia se
utiliza con la siguiente sintaxis:


Es posible indicar que las clases de un archivo fuente
pertenecen a un determinado paquete utilizando la sentencia
package, por ejemplo:


package <nombre_paq_superior>[.<nombre_paq_subordinado>]*;
package transporte.dominio;
// Clase Vehiculo del subpaquete dominio que hay dentro del
// paquete transporte.
public class Vehiculo {
...
}
Sentencia package
La declaracin de paquetes, si existe, debe situarse al
comienzo del archivo fuente. Puede ir precedida de un
espacio en blanco y comentarios, pero nada ms. Slo se
permite una declaracin de paquetes, que ser la que
gobierne todo el archivo fuente. Si un archivo fuente Java no
contiene ninguna declaracin de paquete, las clases
declaradas en el archivo pertenecern al paquete
predeterminado (sin nombre).

Sentencia package
Los nombres de paquetes forman una jerarqua y se separan
mediante puntos. Lo normal es que los elementos de estos
nombres se escriban enteramente en minsculas. Sin
embargo, el nombre de las clases suele empezar por una letra
mayscula y se escribe en mayscula la primera letra de cada
palabra que se agrega a fin de diferenciar las distintas
palabras dentro del nombre de clase. stas y otras
convenciones sobre la nomenclatura se explican en
Convenciones de codificacin en el lenguaje Java.
Si no se incluye ninguna sentencia package en el archivo,
todas las clases declaradas en ese archivo pertenecen al
paquete predeterminado(que es un paquete sin nombre).

Actividad 2: Programacin orientada a
objetos
9. Organizacin de los archivos fuentes
10. Paquetes de Software
11. Sentencia package
12. Sentencia import
13. Disposicin de los directorios y los paquetes
14. Implementacin
15. Resumen de la terminologa
16. Uso de la documentacin sobre el API de Java
Sentencia import
Esta sentencia tiene la siguiente sintaxis:




Cuando vaya a utilizar paquetes, use la sentencia import para
indicar al compilador el lugar donde se encuentran las clases.
De hecho, el nombre del paquete (por ejemplo,
transporte.dominio) forma parte del nombre de las clases
contenidas en ese paquete. As, puede referirse a la clase
Empresa como transporte.dominio.Empresa en todo el
archivo, o bien utilizar la sentencia import junto con el
nombre de la clase Empresa.

import <nombre_paq>[.<nombre_paq_subordinado>].<nombre_clase>;
o bien
import <nombre_paq>[.<nombre_paq_subordinado>].*;
Sentencia import
Las sentencias import deben preceder a cualquier
declaracin de clase del archivo.
En el ejemplo siguiente se muestra un fragmento de archivo
donde se utiliza la sentencia import.


package transporte.informes;

import transporte.dominio.*;
import java.util.List;
import java.io.*;

public class InformeCapacidadVehiculo {
private Empresa empresaParaInforme;
...
}
Sentencia import
Cuando se declara un paquete, no es necesario importar el
paquete en s, ni ninguno de los elementos que contiene.
Recuerde que la sentencia import se utiliza para poner las
clases de otros paquetes a disposicin de la clase actual.
import indica la clase a la que se quiere acceder. Por ejemplo,
si slo quiere incluir la clase Writer (del paquete java.io) en el
espacio de nombres actual, utilizar:

Si quiere acceso a todas las clases del paquete, utilice el
asterisco *. Por ejemplo, para acceder a todas las clases del
paquete java.io, escriba:


import java.io.Writer;
import java.io.*;
Sentencia import
La sentencia import permite utilizar los nombres de clase en
un formato abreviado dentro del cdigo fuente, eso es todo.
Este tipo de sentencias no hacen que el compilador cargue
ningn dato adicional en la memoria de trabajo. En este
sentido, import se diferencia bastante de la sentencia
#include de C o C++. La sentencia import, con o sin carcter
comodn (*), no tiene ningn efecto en el archivo de clase de
salida, ni tampoco en el rendimiento del programa durante la
ejecucin.
Asimismo, es improbable que su uso provoque diferencias de
rendimiento durante la compilacin.
Actividad 2: Programacin orientada a
objetos
9. Organizacin de los archivos fuentes
10. Paquetes de Software
11. Sentencia package
12. Sentencia import
13. Disposicin de los directorios y los paquetes
14. Implementacin
15. Resumen de la terminologa
16. Uso de la documentacin sobre el API de Java
Disposicin de los directorios y los paquetes
Los paquetes se almacenan en un rbol de directorios cuyas
ramas son los nombres de los paquetes. Por ejemplo, el
archivo Empresa.class se encontrar en la estructura de
directorios que aparece en la Figura.

Disposicin de los directorios y los paquetes
Desarrollo
o Es habitual tener que trabajar en varios proyectos de desarrollo
al mismo tiempo. Existen muchas formas de organizar los
archivos de desarrollo. En esta seccin se describe una de ellas.

o En la Figura anterior puede verse un ejemplo de jerarqua de
directorios creada para un proyecto de desarrollo. El aspecto
fundamental de esta jerarqua es que los archivos fuente de
cada proyecto estn separados de los archivos compilados
(.class).

Disposicin de los directorios y los paquetes
Desarrollo

Disposicin de los directorios y los paquetes
Compilacin con la opcin -d
o Normalmente, el compilador de Java sita los archivos de clases
en el mismo directorio que los archivos fuente. Es posible
enviar los archivos de clases a otro directorio utilizando la
opcin -d del comando javac. La forma ms sencilla de compilar
los archivos de los paquetes es trabajar en el directorio situado
un nivel por encima del comienzo del paquete (en este
ejemplo, el directorio src).
o Para compilar todos los archivos del paquete
transporte.dominio de forma que todas las clases compiladas
vayan al directorio de paquete correcto dentro de
TransporteProy/class/, escriba lo siguiente:

cd ProyectosJava/TransporteProy/src
javac d ../classes transporte/dominio/*.java
Actividad 2: Programacin orientada a
objetos
9. Organizacin de los archivos fuentes
10. Paquetes de Software
11. Sentencia package
12. Sentencia import
13. Disposicin de los directorios y los paquetes
14. Implementacin
15. Resumen de la terminologa
16. Uso de la documentacin sobre el API de Java
Implementacin
Implementacin
o Es posible implementar una aplicacin en una mquina cliente
sin modificar la variable de entorno CLASSPATH del usuario.
Normalmente, la mejor forma de hacerlo es crear un archivo
Java ejecutable (JAR). Para crear este archivo, debe crear un
archivo temporal donde se indique el nombre de la clase que
contiene el mtodo main necesario para la ejecucin, por
ejemplo:

Main-Class: mipaquete.MiClase
Implementacin
Implementacin
o A continuacin, cree el archivo JAR de la forma habitual,
aunque deber agregar una opcin para que el contenido del
archivo temporal se copie en el archivo META-
INF/MANIFEST.MF. Para ello, utilice la opcin m, como en
este ejemplo:

jar cmf tempfile MiPrograma.jar
Implementacin
Implementacin
o Por ltimo, el programa puede ejecutarse simplemente con un
comando como ste:



o En algunas plataformas, basta hacer doble clic en el icono de un
archivo JAR ejecutable para que se inicie el programa
correspondiente.

java -jar /ruta/al/archivo/MiPrograma.jar
Implementacin
Implementacin de las bibliotecas
o Algunas veces es necesario implementar el cdigo de las
bibliotecas en un archivo JAR. En tales casos, es posible copiar
el archivo JAR en el subdirectorio ext del directorio lib situado
bajo el directorio principal del JRE. Acte con precaucin al
hacerlo porque, si implementa las clases de esta forma,
normalmente reciben privilegios de seguridad completos.
o Esto puede ocasionar problemas durante la ejecucin del
programa en el caso de que existan conflictos de nombres con
otras clases del ncleo del JDK u otras clases que se hayan
instalado de esa misma forma.

Actividad 2: Programacin orientada a
objetos
9. Organizacin de los archivos fuentes
10. Paquetes de Software
11. Sentencia package
12. Sentencia import
13. Disposicin de los directorios y los paquetes
14. Implementacin
15. Resumen de la terminologa
16. Uso de la documentacin sobre el API de Java
Actividad 2: Programacin orientada a
objetos
9. Organizacin de los archivos fuentes
10. Paquetes de Software
11. Sentencia package
12. Sentencia import
13. Disposicin de los directorios y los paquetes
14. Implementacin
15. Resumen de la terminologa
16. Uso de la documentacin sobre el API de Java
Uso de la documentacin sobre el API de Java
Existen diferentes archivos en formato HTML que sirven de
documentacin sobre el API suministrado. La organizacin de
estos documentos es jerrquica, de modo que la pgina
inicial muestra la lista de todos los paquetes en forma de
hipervnculos. Cuando seleccione el vnculo de un
determinado paquete, aparecer la lista de todas las clases
que contiene ese paquete. Si selecciona el vnculo de una
clase, se abrir una pgina con informacin sobre esa clase.
En la Figura se muestra una de las clases.

Uso de la documentacin sobre el API de Java
Uso de la documentacin sobre el API de Java
Los documentos de las clases contienen las secciones
siguientes:

o La jerarqua de la clase
o Una descripcin de la clase y su propsito
o La lista de atributos
o La lista de constructores
o La lista de mtodos
o Una lista detallada de atributos con sus descripciones
o Una lista detallada de constructores con sus descripciones y las
listas de parmetros formales
o Una lista detallada de mtodos con sus descripciones y las listas
de parmetros formales


TAREA
Investiga el concepto de las siguientes palabras en 03 lneas y
lo presentas en PowerPoint

oClase:
oObjeto:
oAtributo:
oMtodo:
oConstructor:
oPaquete:

You might also like