Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Y uso de
Clases en Java:
Encapsulamiento
V2.0
Enero 2012
Ferreiras
Ferreiras IMPLEMENTACIO 1
Exploración del Concepto “Caja Negra”,
“interfaz”:
ECM Si le preguntamos al
mecánico que cosa
hay dentro del ECM:
Interfaz para
conectar con los Que se yo !! Esa vaina es una
sensores. caja negra que se conecta a los
sensores para hacer funcionar
el vehiculo.
ECM: Electronic Control Module
Ferreiras IMPLEMENTACIO 2
Encapsulamiento Es el proceso de
ocultar detalles de implementación,
mientras se publica una interfaz.
interfaz
En el ejemplo anterior,
anterior el mecánico
no tiene por que conocer los detalles
de implementación, le es suficiente con
la interfaz que le proporciona el ECM
para hacer sus conexiones.
Ferreiras IMPLEMENTACIO 3
MAS DEL ENCAPSULAMIENTO
Toda clase consiste de dos partes:
Puede ser vista y usada por los
clientes de la clase
interfase
Que está oculta a los
usuarios de la clase.
Solo su desarrollador
IMPLEMENTACIÓN lo conoce.
(código fuente)
Ferreiras IMPLEMENTACIO 4
Ocultar los detalles de implementación
de una clase se llama ocultamiento de
información o encapsulación;
encapsulación se refiere a la
combinación de los datos y las operaciones
en un objeto;
Ferreiras IMPLEMENTACIO 5
La encapsulación protege el estado
interno del objeto de ser corrompido por sus
clientes;
Ferreiras IMPLEMENTACIO 6
La encapsulación prevé que los valores
de los atributos del objeto puedan ser
cambiados únicamente por operaciones
suplidas por el objeto mismo;
La encapsulación proporciona
operaciones para acceder a los valores de
los atributos que el cliente necesita
cambiar;
Ferreiras IMPLEMENTACIO 7
El encapsulamiento impide que el
estado del objeto no puede ser modificado
directamente por el cliente;
Ferreiras IMPLEMENTACIO 8
El encapsulamiento impide que el
código cliente puede conocer la
implementación de las operaciones ni tomar
ventajas de ello;
Ferreiras IMPLEMENTACIO 9
Gráficamente: Objeto
Interfaz
operaciones
Cliente definidas en
la clase del
objeto
Ferreiras IMPLEMENTACIO 10
En JAVA, se logra el encapsulamiento
en objetos usando modificadores, llamado
modificadores de visibilidad,
visibilidad debido a
que controlan el acceso a los miembros de
la clase. Las palabras reservadas public,
private y protected son modificadores de
visibilidad que se aplican a las variables y a
los métodos de las clases.
Ferreiras IMPLEMENTACIO 11
Operaciones de acceso, de
transformación
Debido a que los datos son encapsulados
(private), toda clase debe proveer las
operaciones para accederlos y
modificarlos. Las operaciones de acceso
permiten acceder a los datos y las
operaciones de transformación permiten
cambiarlos.
Ferreiras IMPLEMENTACIO 12
Implementación
De clases
En JAVA
Ferreiras IMPLEMENTACIO 13
La implementación de una
clase
provee una plantilla para la creación de objetos;
Ferreiras IMPLEMENTACIO 14
PROCESO PARA LA
IMPLEMENTACIÓN DE UNA
CLASE EN JAVA
A partir de de la especificación de las clases
identificadas en el proceso “Encontrando
Clases”, escrita en la forma
Ferreiras IMPLEMENTACIO 15
Los atributos son mapeados a
variables miembros de la clase;
Ferreiras IMPLEMENTACIO 16
Definición de clases en java
class NombreDeLaClase {
// Encapsulamiento
private T var1; Mapea los atributos
private T var2; a variables miembro
...
private T var;
// Interfaz
public T metodo1( ){ ... } Mapea las
public T metodo2( ) { ... } operaciones a
... métodos de la
public T metodo( ){ ... } clase
}
Ferreiras IMPLEMENTACIO 17
Por ejemplo: La parte de la clase
class AsignacionNotas { que encapsula la
información que
private String nombre; almacenarán sus
private int nota; objetos.
private double indice;
La parte de la
public String getNombre(){ }
clase que
public void setNota(int n ){ }
public void calculaIndice( ){ }
establece la
interfaz para sus
} usuarios.
Obsérvese que los métodos son
definidos completamente dentro
de la clase.
Ferreiras IMPLEMENTACIO 18
cada instancia de la clase poblará su data
con valores particulares de sus atributos;
Ferreiras IMPLEMENTACIO 19
las operaciones de la clase pueden ser
invocadas por cada una de sus instancia;
Ferreiras IMPLEMENTACIO 20
Partes de una Clase JAVA
Inicio
bloque de
la clase
Especificador de acceso
a nivel de clases
class nombreDeLaClas {
e
Especificador de acceso
a nivel de miembros de la clase
Variables de instancia
Especificador de acceso
a nivel de miembros de la clase
Métodos
fin
bloque de }
la clase
Ferreiras IMPLEMENTACIO 21
Especificador de nombre de la clase
acceso a nivel de
Por ejemplo: la clase
Variable
numeroPaginas = num;
}
} Variable local al
método
Ferreiras IMPLEMENTACIO 22
Los modificadores de acceso a nivel de
clase :
public
Significa que a la clase se puede acceder
desde cualquier lugar;
Ferreiras IMPLEMENTACIO 23
Los modificadores de acceso a nivel de
miembros ( variables y métodos ) :
public
Significa que se le puede acceder desde
cualquier lugar; Es visible para todas las clases
en todas partes.
Si no tiene modificador
Significa que solo se le puede acceder en
el mismo archivo o en el mismo paquete
(package-private, a ver más adelante );
Ferreiras IMPLEMENTACIO 24
private
Significa que puede ser accedido solamente
por miembros de la misma clase, en su misma
clase; Solo puede ser accedido en su propia
clase;
protected
Significa que se le puede acceder desde el
mismo package o desde cualquier subclase
( clase derivada) de su clase, existente en
cualquier otro package.
Ferreiras IMPLEMENTACIO 25
En resumen:
Ferreiras IMPLEMENTACIO 26
class Es una palabra reservada de JAVA, la cual
comunica al intérprete que se definirá una nueva
clase ; Todo el quehacer de JAVA esta en una
class;
Ferreiras IMPLEMENTACIO 27
variables de instancia Son declaradas
dentro de la clase ( es decir, una variable
miembro), pero no dentro de un método;
Es una variable de la cual cada objeto de la
clase tendrá una copia por separado y viven
en RAM durante la vida de éste.
Ferreiras IMPLEMENTACIO 28
Una variable de instancia (también
llamada campo de instancia) es una
variable que se relaciona con una sola
instancia de una clase. Cada vez que una
instancia de una clase se crea, el sistema
crea una copia de las variables de instancia
relacionadas con esa clase.
Ferreiras IMPLEMENTACIO 29
Por defecto, todas las variables se
crean como variables de instancia;
instancia
Ferreiras IMPLEMENTACIO 30
Lo contrario de una variable de
instancia es una variable estática,
también conocida como una
variable de clase.
clase Una variable
estática existe en todas las
instancias de una clase ( Ver más
adelante “static en JAVA”).
Ferreiras IMPLEMENTACIO 31
Por ejemplo:
class EjemploDeVariables { Variables de instancia
Ferreiras IMPLEMENTACIO 32
Dentro de un método,
método en Java NO es
posible declarar variables static:
// Vichy0.java No compila. El error
class Fofi {
reportado es: “illegal
void Yiyo( double x) {
start of expression” en
static double y = 0.0;
static double y = 0.0;
}
}
public class Vichy0 {
public static void main( String [ ] args ) {
//...
}
}
Ferreiras IMPLEMENTACIO 33
Métodos ( funciones miembro ) Son
una parte integral de cualquier clase
Java; Toda clase java contiene al menos
un método, el método principal main();
Un método java puede ser de instancia,
de la clase, auxiliar ó un constructor.
Ferreiras IMPLEMENTACIO 34
Método de instancia Es un método que
está asociado con un objeto y utiliza las
variables de instancia de ese objeto.
Ferreiras IMPLEMENTACIO 35
Método de clase ( ó método static) Es
un método que pertenece a su clase, en
lugar de a un objeto de esa clase;
Mientras que un método de instancia
tiene acceso tanto a las variables de
instancia como a las variables de clase,
un método de clase sólo tiene acceso a
las variables de clase (variables static).
Ferreiras IMPLEMENTACIO 36
Un método de clase se declara con el
modificador static, así, por ejemplo:
Ferreiras IMPLEMENTACIO 37
En un método static La palabra clave
static adhiere el método a la clase, en
lugar de a los objetos de esa clase;
Para invocarlo, se hace con el nombre
de la clase, en lugar de un objeto de
ésta:
ClaseConMetodoStatic.metodoStatic();
Ferreiras IMPLEMENTACIO 38
Método constructor Es un método
especial que se utiliza para inicializar
las variables miembro de un objeto
recién creado. Es la forma correcta
para definir el estado inicial de un
objeto.
Ferreiras IMPLEMENTACIO 39
Un Método constructor Se caracteriza
porque:
Ferreiras IMPLEMENTACIO 40
Por ejemplo (definición) :
Constructor con
public Libro( int paginas) { parámetros para
numeroPaginas = paginas; argumentos
Ferreiras IMPLEMENTACIO 41
Por ejemplo (uso) :
Construye, crea un
objeto Libro con
Libro unLibro = new Libro();
valores por defecto.
Construye, crea un
objeto Libro con
valores
especificados como
argumentos del
constructor
Ferreiras IMPLEMENTACIO 42
Si un constructor no es definido para la
clase, JAVA usa su constructor implícito por defecto para
inicializar las variables a sus valores por defecto:
Ferreiras IMPLEMENTACIO 43
Sobrecarga de Constructores La clase
puede tener cualquier cantidad de
constructores. Para diferenciarlo el
compilador se basa en los tipos, la cantidad
y el orden de los parámetros:
Libro() { ... }
Libro(int x) { ... }
Libro( String c, double p, int z) { ... }
Ferreiras IMPLEMENTACIO 44
Cuando un objeto es construido,
construido
ocurren las siguientes acciones:
Todas las variables de instancia son inicializadas con
0, false o null;
Los inicializadotes y los bloques de inicialización son
ejecutados en el orden en el cual fueron declarados;
El cuerpo del constructor es invocado;
Ferreiras IMPLEMENTACIO 45
Método auxiliar Es un método que es
exclusivo a la clase; Solo otros métodos en la
misma clase lo pueden invocar. No están
destinado para prestar servicios directamente
a clientes fuera de la clase. Se declara con el
modificador private:
private tipoDeRetorno nombreDelMetodo( lista par){
// cuerpo
}
Ferreiras IMPLEMENTACIO 46
{ y } Las llaves,
llaves Indican el inicio y el
final del cuerpo de la clase.
// Cuerpo de la clase
Ferreiras IMPLEMENTACIO 47
Estructura de una clase JAVA
La organización (recomendada) de las
partes de una clase JAVA es como sigue:
Las variables miembros al principio, antes que los métodos;
Los métodos son organizados así, en ese orden:
constructores
métodos generales ( acceso y cambio )
métodos estáticos
métodos private ( si los hay )
método main ( si hay uno en el archivo ) de ultimo.
Ferreiras IMPLEMENTACIO 48
Estructura de un Test-Driver
de Clases en JAVA
declaraciones de import (si requeridas)
class C1{ }
Debe ser el mismo nombre del archivo fuente
class C2 { } nombreArchivo.java, así lo prefiere Ferreiras.
...
public class nombreArchivo{
// ...
public static void main(String[] args) {
// ...
}
}
Ferreiras IMPLEMENTACIO 49
El método main()
Es el punto de entrada donde el proceso de
ejecución de la aplicación java comienza. Un
programa java no podrá funcionar sin el
método main(). La JVM busca este método
para la ejecución de la aplicación. Es siempre
lo primero que se ejecuta en un programa
java.
Ferreiras IMPLEMENTACIO 50
El método main() tiene la siguiente
estructura y sintaxis, obligatoria:
public static void main(String[ ] args) {
// Cuerpo
}
Ferreiras IMPLEMENTACIO 51
Cada aplicación java debe tener un
método main(), así:
// Cuerpo
} Lo recomendable es
} que en esta clase solo
se escriba el método
main()
Ferreiras IMPLEMENTACIO 52
String[ ] args Indica que main() tiene un
arreglo de referencias a String; Los
elementos del arreglo se refieren a cadenas
que contienen texto que es suplido en la
línea de comando que inicia el programa.
Por ejemplo:
C:\>java StringDemo stringA stringB stringC ...
Ferreiras IMPLEMENTACIO 53
Clase0a.java
jdk1.6.0_25
Hola Ferreiras
C:\Program Files\Java\jdk1.6.0_22\bin>
Ferreiras IMPLEMENTACIO 54
Uso de la clase: Creación de
objetos en java
En JAVA:
Variable primitiva: Almacenan valores de los
tipos primitivos de java, esto es, valores tipo byte,
short, int, long, float, double, char, boolean, que les
son asignados.
Variable objeto: Almacena una referencia a un
objeto, esto es, almacena la dirección del objeto al
que se refiere, es también llamada “puntero al
objeto”. (Ver mas adelante Clase1.java)
Ferreiras IMPLEMENTACIO 55
instanciación Es el acto de la creación de un
objeto mediante el operador new. Un objeto se
dice que es una instancia de una clase en
particular. El operador new crea el objeto, usando
el constructor apropiado, y retorna su referencia
(una dirección en RAM) que es almacenada en la
variable objeto. La variable objeto es un sinónimo,
un alias, del objeto.
Ferreiras IMPLEMENTACIO 56
Construye, crea un
Por ejemplo : objeto Libro con valores
por defecto.
Ferreiras IMPLEMENTACIO 57
La variable Objeto se puede considerar
como un puntero a la ubicación en la
memoria donde se encuentre el objeto:
“Felix Ferreiras”
nombre
Toda interacción con un objeto es al través de una variable de referencia, luego, solo si
tenemos una referencia a un objeto es que podemos usarlo.
Ferreiras IMPLEMENTACIO 58
Accesando Después de que el objeto
ha sido construido, el operador de punto
es usado para acceder a sus métodos de
instancia:
variableObjeto.metodoDeInstancia( );
Ferreiras IMPLEMENTACIO 59
Compilación y ejecución en
JAVA
Archivo
Archivo Archivo
fuente Archivo
Editor fuente Compilador ss.class
.class JVM
nombreClase.java
Librería
Librería
ss
Ejecución
Del
Programa
Ferreiras IMPLEMENTACIO 60
En la consola: Compila el código
fuente
Ferreiras IMPLEMENTACIO 61
javac -help
Usage: javac <options> <source files>
Where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath <path> Specify where to find user class files and annotation processors
-cp <path> Specify where to find user class files and annotation processors
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-endorseddirs <dirs> Override location of endorsed standards path
-proc:{none,only} Control whether annotation processing and/or compilation is done.
-processor <class1> Names of the annotation processors to run; bypasses default
[,<class2>,<class3>...] discovery process
Ferreiras IMPLEMENTACIO 62
-processorpath Specify where to find annotation processors
<path>
-d <directory> Specify where to place generated class files
-s <directory> Specify where to place generated source files
-implicit:{none,class} Specify whether or not to generate class files for implicitly
referenced files
-encoding Specify character encoding used by source files
<encoding>
-source <release> Provide source compatibility with specified release
-target <release> Generate class files for specific VM version
-version Version information
-help Print a synopsis of standard options
-Akey[=value] Options to pass to annotation processors
-X Print a synopsis of nonstandard options
-J<flag> Pass <flag> directly to the runtime system
Ferreiras IMPLEMENTACIO 63
From Java source to bytecode to host machine code
See
http://www.javaworld.com/javaworld/jw-03-2000/jw-0331-java101.html
Ferreiras IMPLEMENTACIO 64
See
http://www.semihkorkmaz.com/2010/11/net-or-java/
Ferreiras IMPLEMENTACIO 65
Organización de los archivos
de una aplicación JAVA
En JAVA no existe el concepto
“Compilación por separado”; Dos tipos de
archivos son de interés saber su ubicación:
nombre.java Son los archivos del código fuente; Todos los
archivos .java que una aplicación requiera deberán
estar en el mismo directorio del que contiene main()
o declarados en un package con import ;
nombre.class Son los archivos de código byte generados por el
compilador de JAVA;
Ferreiras IMPLEMENTACIO 66
Como usted podrá notar, Ferreiras
pone todo en el directorio ...\bin.
Ese es su estilo. Usted puede
organizar sus archivos por tema.
Editar la variable de entorno PATH
le será necesario para correr el
compilador desde cualquier ruta.
Ferreiras IMPLEMENTACIO 67
/*
Clase0.java
jdk1.6.0_22 \\ jdk1.6.0_25
JAVA / Encapsulamiento
Ferreiras
15-Mayo-2011
*/
Ferreiras IMPLEMENTACIO 68
// Uso de la clase Observe que el nombre de esta clase es
el mismo nombre del archivo fuente:
Clase0.java, Así lo prefiere Ferreiras.
public class Clase0 {
Ferreiras IMPLEMENTACIO 69
public void verDatos(){
Ferreiras IMPLEMENTACIO 70
C:\Archivos de programa\Java\jdk1.6.0_25\bin> java Clase0
* GRAPADORA: STANDLEY
* LONGITUD: 10 plg
* NUMERO DE GRAPA QUE USA: 6
* PRECIO DE LA GRAPADORA, RD$: 3456.34
* PRECIO DE LAS GRAPAS, RD$: 123.45
C:\Archivos de programa\Java\jdk1.6.0_25\bin>
# 1 NOTA:
Es obligatorio usar String[] pArgs; Si no es usado
C:\Archivos de programa\Java\jdk1.6.0_25\bin>java Clase0
Exception in thread "main" java.lang.NoSuchMethodError: main
Ferreiras IMPLEMENTACIO 71
Clase0b.java
jdk1.6.0_22 \\ jdk1.6.0_25
Ferreiras IMPLEMENTACIO 72
class Grapadora{ // Definicion de la clase
// Encapsulamiento
// Interfase
public Grapadora() {
marca = "Ferrom57";
longitud = 15;
grapaNo = 10;
precioGrapadora = 5678.34;
precioGrapas = 156.33;
Ferreiras IMPLEMENTACIO 73
public void ponerDatos(String ma, int lo, int nu, double p1, double p2){
marca = ma;
longitud = lo;
grapaNo = nu;
precioGrapadora = p1;
precioGrapas = p2;
//...
Ferreiras IMPLEMENTACIO 74
// Uso de la clase
Ferreiras IMPLEMENTACIO 75
C:\Archivos de programa\Java\jdk1.6.0_25\bin> java Clase0b
* GRAPADORA: Ferrom57
* LONGITUD: 15 plg
* NUMERO DE GRAPA QUE USA: 10 <== Velores por defecto
* PRECIO DE LA GRAPADORA, RD$: 5678.34 suplidos por el
* PRECIO DE LAS GRAPAS, RD$: 156.33 desarrollador
* GRAPADORA: STANDLEY
* LONGITUD: 10 plg
* NUMERO DE GRAPA QUE USA: 6
* PRECIO DE LA GRAPADORA, RD$: 3456.34
* PRECIO DE LAS GRAPAS, RD$: 123.45
Ferreiras IMPLEMENTACIO 76
Clase0c.java
jdk1.6.0_22 \\ jdk1.6.0_25
Ferreiras
18-Mayo-2011.-
Ferreiras IMPLEMENTACIO 77
import java.util.Vector;
class Persona{
Ferreiras IMPLEMENTACIO 78
class Empleado {
codigo = co;
nombreEmpleado = n;
dependiente = d;
}
Ferreiras IMPLEMENTACIO 79
public void verEmpleado() {
Ferreiras IMPLEMENTACIO 80
public class Clase0c {
public static void main( String[] pArgs) {
Persona p1 = new Persona();
p1.setPersona("Maria Sanchez", 34);
Persona p2 = new Persona();
p2.setPersona("Ricardito Sanchez", 14);
Persona p3 = new Persona();
p3.setPersona("Mariita Sanchez", 4);
Vector<Persona> pd = new Vector<Persona>();
pd.add(p1);
pd.add(p2);
pd.add(p3);
Empleado e1 = new Empleado();
e1.setEmpleado( 123456, "Ricardo Sanchez Padre", pd);
e1.verEmpleado();
}
Ferreiras IMPLEMENTACIO 81
C:\Archivos de programa\Java\jdk1.6.0_25\bin> javac Clase0c.java
* CODIGO: 123456
* NOMBRE: Ricardo Sanchez Padre
=> Dependientes
C:\Archivos de programa\Java\jdk1.6.0_25\bin>
Ferreiras IMPLEMENTACIO 82
Clase1.java
jdk1.6.0_22 \\ jdk1.6.0_25
Ferreiras IMPLEMENTACIO 83
class Clase{
private int x;
public Clase(){ x = 0; }
public Clase( int z ){ x = z; }
public int getX(){ return x; }
public void setX(int w){ x = w; }
public void f(Clase obj, int y){
System.out.println("\n=> La referencia del objeto es: " + obj + "\n");
obj.setX(y);
}
}
Ferreiras IMPLEMENTACIO 84
public class Clase1 {
Ferreiras IMPLEMENTACIO 85
C:\Archivos de programa\Java\jdk1.6.0_25\bin> java Clase1
C:\Archivos de programa\Java\jdk1.6.0_25\bin>
Ferreiras IMPLEMENTACIO 86
Clase3.java
jdk1.6.0_25
Ferreiras
13-Mayo-2011
Santo Domingo, R.D.-
Ferreiras IMPLEMENTACIO 87
//import static java.lang.Math.*; // => No requerido
// import java.util.Scanner; // => No requerido
Ferreiras IMPLEMENTACIO 88
C:\Program Files\Java\jdk1.6.0_22\bin> java Clase3
* Entre la base: 10
* Entre la altura: 5
altura = 5.0
base = 10.0
hipo = 11.180339887498949
altura = 3.0
base = 2.0
hipo = 3.605551275463989
C:\Program Files\Java\jdk1.6.0_22\bin>
Ferreiras IMPLEMENTACIO 89
TriaRect.java
jdk1.6.0_25
Ferreiras
13-Mayo-2011
Santo Domingo, R.D.-
Ferreiras IMPLEMENTACIO 90
import static java.lang.Math.*;
import java.util.Scanner;
// DEFINICION DE LA CLASE
Nótese, solo
hay una clase public class TriaRect{
con el
private double base;
modificador de private double altura;
acceso public y private double hipo;
su nombre es
justamente el public void AsignarDatos(){
nombre del
archivo .java en Scanner lee = new Scanner(System.in);
el que reside System.out.print("\n* Entre la base: ");
base = lee.nextDouble();
Ferreiras IMPLEMENTACIO 91
public void VerDatos(){
System.out.println("\n* Estado objeto triangulo:\n" +
"\n\taltura = " + altura +
"\n\t base = " + base +
"\n\t hipo = " + hipo + "\n");
}
//...
public double CalculaArea(double x, double y){
base = x;
altura = y;
hipo = sqrt( pow(base, 2) + pow(altura, 2));
return (base * altura / 2.0);
}
}
} // Fin definición de la clase
Ferreiras IMPLEMENTACIO 92
VetorMisDobles.java
jdk1.6.0_22 | 25 ;-)
Vector unicamente puede almacenar objetos. Los tipos primitivos ( int, double,
char, ...) no. Para resolver este problema y poder manipuar tipos double en un
Vector el trabajo es tremendo !!. Ver el codigo mas abajo.
Ferreiras
18 de Mayo 2011.-
Ferreiras IMPLEMENTACIO 93
import java.util.Vector;
private double x;
public MisDobles( double d){ x = d; }
public void setDoble( double d ){ x = d; }
public double getDoble(){ return x; }
Ferreiras IMPLEMENTACIO 94
public class VectorMisDobles {
Ferreiras IMPLEMENTACIO 95
C:\Archivos de programa\Java\jdk1.6.0_25\bin> java VectorMisDobles
C:\Archivos de programa\Java\jdk1.6.0_25\bin>
Ferreiras IMPLEMENTACIO 96
VetorDoubles.java
jdk1.6.0_22 | 25 ;-)
Ferreiras
18 de Mayo 2011.-
Ferreiras IMPLEMENTACIO 97
import java.util.Vector;
v.add(new Double(1.23));
v.add(new Double(2.34));
v.add(new Double(3.45));
v.add(new Double(4.56));
Ferreiras IMPLEMENTACIO 98
C:\Archivos de programa\Java\jdk1.6.0_25\bin> java VectorDoubles
Ferreiras IMPLEMENTACIO 99
/*
ClaseVerLimitesTipoPrimitivo.java
jdk1.6.0_25 Observe que laaargo es
el nombre de la clase
Ferreiras / JAVA / Limites de los tipos primitivos
*/
}
}
/*
: tipo(min, max)
C:\Archivos de programa\Java\jdk1.6.0_25\bin>
How do it ? Look
Go ahead
and good
luck!!
*/
// Construimos el marco
panel1.add(etiqueta1);
panel1.add(etiqueta2);
panel1.add(etiqueta3);
Ver en
http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JOptionPane.html
*/
class Configuracion {
String entrada1;
String entrada2;
}
}