Professional Documents
Culture Documents
MyDate {
day;
month;
year;
El cdigo del cliente accede directamente a los atributos y comete errores, como p
or ejemplo (d refiere a un objeto MyDate):
d.day = 32;
// da invlido
d.month = 2; d.day = 30;
// plausible pero mal
d.day = d.day + 1;
// no realiza la validacin de pasaje al siguiente mes
Para resolver el problema, oculte los atributos de los datos hacindolos privados
y proporcione mtodos de acceso para recuperarlos, getXyz() (denominados getters)
y mtodos de asignacin de almacenamiento, setXyz() (denominados setters).
Estos mtodos le permiten a la clase modificar la informacin interna, pero ms import
ante an, verificar que los cambios requeridos son vlidos. Por ejemplo:
MyDate d = new MyDate();
d.setDay(32);
//da invlido, devuelve false
d.setMonth(2); d.setDay(30);
//plausible pero mal, setDay devuelve false
d.setDay(d.getDay() + 1);
// retornara false si wrap around es necesario que ocurra
8.11 La Encapsulacin
eceder todas las declaraciones de clases. Si usa una declaracin de paquetes, debe
preceder ambas, las clases y las importaciones.
El nombre del archivo fuente tiene que ser el mismo que el nombre de la declarac
in de la clase pblica en ese archivo. Un archivo fuente puede incluir ms de una dec
laracin de clase, pero slo una puede ser declarada pblica. Si un archivo fuente no
contiene clases pblicas declaradas, el nombre del archivo fuente no est restringid
o. Sin embargo, es una buena prctica tener un archivo fuente para cada clase decl
arada y que el nombre del archivo sea idntico al nombre de la clase.
Por ejemplo, el archivo VehicleCapacityReport.java debera lucir como se muestra e
n le Figura
8.14 Los Paquetes de Software
La mayora de los sistemas de software son grandes. Es comn agrupar clases dentro
de paquetes para el fcil mantenimiento del sistema. UML incluye el concepto de pa
quetes en su lenguaje de modelado. Los paquetes pueden contener clases, as como t
ambin otros paquetes, que integran una jerarqua de paquetes.
Hay muchas maneras de agrupar clases dentro de paquetes significativos. No hay u
na forma correcta o incorrecta, pero una tcnica comn es agruparlas por su similitu
d semntica.
Por ejemplo, un sistema de software de embarque puede contener un conjunto de ob
jetos de dominio (as como la compaa y vehculos, cajas, destinos y an ms) un conjunto d
e reportes y un conjunto de paneles GUI, que se usan para crear la entrada princ
ipal de los datos de la aplicacin. La GUI y los subsistemas reports (reportes) de
penden del paquete domain. Los paquetes UML pueden ser tiles para modelar subsist
emas u otros grupos de acuerdo con sus necesidades. Todos estos paquetes estn con
tenidos en el panel ms alto en jerarqua llamado shipping.
8.15 La Sentencia package
El lenguaje de programacin de la tecnologa Java le provee la sentencia package co
mo la forma de agrupar clases relacionadas. La sentencia package tiene la siguie
nte forma:
package <nombre_paq_sup>[.<nombre_sub_paq>]* ;
Usted puede indicar qu clases, en un archivo fuente, pertenecen a un paquete en p
articular, usando la sentencia package. Por ejemplo:
1
2
3
4
5
6
7
package shipping.domain;
// Clase Vehicle del sub-paquete 'domain' dentro del
// paquete de la aplicacin 'embarque'
public class Vehicle {
...
}
Cuando use una declaracin de paquete, no necesita importar los mismos paquetes o
algn elemento del paquete. Recuerde que la sentencia import se usa para hacer que
las clases en otros paquetes sean accesibles a la clase actual.
La sentencia import especifica la clase a la que quiere acceder. Por ejemplo, si
quiere solamente la clase Writer (del paquete java.io) incluida en el espacio d
e nombres actual, entonces podra usar: import java.io.Writer;
Si quiere acceso a todas las clases dentro de un paquete, use "*". Por ejemplo,
para acceder a todas las clases del paquete java.io, use: import java.io.*;
8.17 El Esquema de Directorios y Paquetes
Los paquetes se guardan en un rbol de directorios; cada rama contiene el nombre
de un paquete. Por ejemplo, el archivo Company.class debera existir en la estruct
ura mostrada en la Figura
8.17 El Esquema de Directorios y Paquetes
8.17.1 El Desarrollo
Es comn estar trabajando en distintos proyectos de desarrollo a la vez.
Hay varios caminos para organizar sus archivos de desarrollo. Esta seccin describ
e una de estas tcnicas.
La Figura muestra un ejemplo de jerarqua de directorios de desarrollo para un pr
oyecto de desarrollo. El elemento importante de esta jerarqua es que el archivo f
uente de cada proyecto est separado de los archivos ya compilados (.class).