Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Manual de Java (página 4)



Partes: 1, 2, 3, 4, 5

Capítulo VI: "Arreglos en Java"

Los arreglos en Java son dinámicos, pero no
extensibles, lo cual significa que deben ser creados con el
tamaño que tendrán hasta el final de su
vida.

Un arreglo se declara de la siguiente forma:

<tipo>[] <nombre>;

O sea, para declarar, por ejemplo, un arreglo de
números enteros utilizaremos la siguiente
sentencia:

int[] arrInt;

Es importante notar que el arreglo aún no ha sido
creado, sino meramente declarado. Para crear el arreglo (reservar
su memoria e
inicializarlo) deberemos recurrir al operador
new:

arrInt = new int[10];

Este comportamiento
debe comprenderse de esta forma: en Java todo es un objeto, y los
objetos deben ser creados mediante el operador new. El caso de
los arreglos no es diferente, el tipo de datos del arreglo
(int[] en este caso) es una clase y cada
una de sus instancias debe ser creada explícitamente, el
tamaño puede pensarse como un parámetro al
constructor de la clase.

A partir de este momento podemos utilizar arrInt como un
arreglo de cualquier otro lenguaje.

Una de las características que hacen de Java un
entorno de programación seguro, y que se
relaciona con el manejo de los arreglos es que el lenguaje no
permite la indexación de arreglos fuera de rango, o sea,
una asignación de este tipo generará una
excepción:

ArrInt[25] = 1;

Otra forma de declararlos es la siguiente:

UNIDIMENSIONALES:

tipo nombre_array[]=new tipo[nº];

tipo nombre_array[]={valores};

BIDIMENSIONALES:

tipo nombre_array[][]=new
tipo[nº][nº];

tipo nombre_array[][]={valores};

Ejemplo 6.1

Se sabe que la velocidad de
un proyectil está dada por la ecuación, en forma
vectorial: V= ai+ bj+ ck.
Diseñe una aplicación que sea capaz de leer
los valores
de las constantes a, b y c. y muestre la magnitud y dirección de dicho proyectil.

1 import javax.swing.*;
2 public class
Proyectil{
3
public static void
main (String args []){
4 String leer;
5 double
magnitud, direccion, sum;
6 double
vector[]=new
double[3];
7 int
ban=1;
8
while(ban==1)//miestras hayan datos a procesar
9 {
10 //leemos el valor de las
constantes
11
leer=JOptionPane.showInputDialog("Ingrese el valor de
a:");
12
vector[0]=Double.parseDouble(leer);
13
leer=JOptionPane.showInputDialog("Ingrese el valor de
b:");
14
vector[1]=Double.parseDouble(leer);
15
leer=JOptionPane.showInputDialog("Ingrese el valor de
c:");
16
vector[2]=Double.parseDouble(leer);
17
//calculamos la
magnitud
18
//la cual es la raíz
cuadrada de las suma+
19
//de las componentes al
cuadrado
20
sum=(vector[0]*vector[0])+(vector[1]*vector[1])+(vector[2]*vector[2]);
21
magnitud=Math.sqrt(sum);
22 //La
dirección viene dada por la tangente
inversa
23
//del cociente de las componentes
x,y
24
direccion=Math.atan(vector[1]/vector[0]);
25
JOptionPane.showMessageDialog(null, "El
valor de la magnitud es:
"+magnitud+"n y con
un angulo direccional de:
"+direccion+"
Radianes");
26
leer=JOptionPane.showInputDialog("¿Hay más datos a procesar?nnSi=1 y
No=0");
27
ban=Integer.parseInt(leer);
28 }//del
while
29
}//del
main
30
}//de la clase

Ejemplo 6.2

Se tienen las notas de 5 exámenes de 10
alumnos, y se desea promediar la nota final de cada uno de
ellos. Diseñe una aplicación que solucione este
problema.

1 import javax.swing.*;
2 public class
MatrizNotas{
3
public static void
main (String args []) {
4 int
f,c;
5
double suma,
promedio;
6
double notas
[][]=new double[10][5];
7 String leer;
8 for(f=0;
f<10; f++)//las
filas
9
{
10
suma=0;
11
for(c=0; c<5;
c++)
12
{
13
leer=JOptionPane.showInputDialog("Ingrese la nota:
"+c+" del alumno:
"+f);
14
notas[f][c]=Double.parseDouble(leer);
15
while(notas[f][c]>10 ||
notas [f][c]<0)
16
{
17
leer=JOptionPane.showInputDialog("Ingrese la nota:
"+c+" del alumno:
"+f);
18
notas[f][c]=Double.parseDouble(leer);
19
}
20
suma=suma+notas[f][c];
21 }
22
promedio=suma/5;
23
JOptionPane.showMessageDialog(null, "El
alumno, tiene un promedio de:
"+promedio);
24 }
25 }
26 }
27

Algunas de sus características más
importantes de los arrays son las
siguientes:

1. Los arrays se crean con el operador new
seguido del tipo y número de elementos.

2. Se puede acceder al número de elementos de un
array con la variable miembro implícita length (por
ejemplo, vect.length).

3. Se accede a los elementos de un array con los
corchetes [] y un índice que varía de
length-1.

4. Se pueden crear arrays de objetos de cualquier
tipo. En principio un array de objetos es un array de
referencias
que hay que completar llamando al operador
new.

5. Los elementos de un array se inicializan al
valor por defecto del tipo correspondiente (cero para valores
numéricos, el carácter nulo para char,
false para boolean, null para Strings
y para referencias).

6. Como todos los objetos, los arrays se pasan
como argumentos a los métodos
por referencia.

7. Se pueden crear arrays anónimos (por
ejemplo, crear un nuevo array como argumento actual en la llamada
a un método).

Inicialización de
arrays:

1. Los arrays se pueden inicializar con valores
entre llaves {…} separados por comas.

2. También los arrays de objetos se pueden
inicializar con varias llamadas a new dentro de unas
llaves {…}.

3. Si se igualan dos referencias a un array no se copia
el array, sino que se tiene un array con dos nombres, apuntando
al mismo y único objeto.

4. Creación de una referencia a un array.
Son posibles dos formas:

double[] x; // preferible

double x[];

5. Creación del array con el operador
new:

x = new double[100];

6. Las dos etapas 4 y 5 se pueden unir en una
sola:

double[] x = new double[100];

Preguntas

  1. ¿Qué es un arreglo, array, matriz o
    vector?________________________________________________________________________________________________________________________
  2. ¿Par que sirve el operador new, al momento de
    declarar un
    arreglo?_________________________________________________________________________________________________________________________
  3. ¿Cuáles son las diferencias entre un
    arreglo de una dimensión y dos
    dimensiones?____________________________________________________________________________________________________________________
  4. Mencione dos de las características más
    releventes de los
    arryas?_________________________________________________________________________________________________________________________

Descubre el error

A continuación se presentan una serie de
códigos los cuales pueden poseer alguna clase de error,
puedes identificarlos y corregirlos???

  1. int v = new int[10];

    v[i]=i+5;

  2. for(int i=0; i<10, i++);
  3. int [][] mat = new int();

4. int [] b = {{1, 2, 3}, {4, 5, 6}, };// esta coma es
permitida

Ejercicios

  1. Diseñe un programa que
    guarde los 10 números dígitos y luego los imprima
    en forma ascendente y descendente. Usando, para ello, un
    arreglo de una dimensión.
  2. Dibuje, en un Applet, el nombre más grande de
    cierta cantidad de alumnos en una escuela.
    Cuyos datos están almacenados en arreglo de
    cadenas.
  3. Diseñe una aplicación en java, que lea
    un vector de 10 posiciones y luego, muestre un mensaje en la
    pantalla, indicando la cantidad de ceros que hay en el arreglo.
    La cantidad de cifras positivas y la cantidad de cifras
    negativas.
  4. En un vector de 20 posiciones se almacenan los
    sueldos de n empleados, de los cuales se desea saber, cuantos
    empleados ganan más del mínimo (sueldo
    mínimo: $160.00), cuántos ganan menos que el
    sueldo mínimo.
  5. Realice una búsqueda binaria en un arreglo
    unidimensional. Una búsqueda binaria, es de la siguinte
    forma: se lee el valor que se desea buscar, se compara la
    primera posición, si son iguales, fin de la
    búsqueda; de lo contrario, compararlo con la
    posición dos, y así sucesivamente, si se llega al
    final del arreglo y no se encontró el valor, se debe
    indicar con una leyenda. Pero si se encuentra, se debe
    especificar la posición, que ese valor ocupa en el
    arreglo.
  6. diseñe una matriz en Java, de 6*6 elementos, y
    luego muestre, la suma de sus filas, y columnas por
    separado.
  7. Se desea crear un Applet, el cual sea capaz de leer
    una matriz de 5*6, y luego determine si la suma de la diagonal
    es mayor que la suma de la diagonal menor, además que
    dibuje estos valores, junto con los elementos de la matriz en
    el fondo del Applet.
  8. Se desea saber la suma y la multiplicación de
    dos matrices A y
    B, cada una con m*n elementos.
  9. Dibuje una matriz de 3*3 elementos en un Applet y
    simule, y luego encuentre su determinante, por el método
    de Sarros, el cual consiste el aumentarle a la matriz original
    la primera y segunda columna, luego multiplicar en diagonal,
    cambiando de signo los productos
    realizados de arriba hacia abajo. Posteriormente se suman todos
    los productos y el resultado es el determinante.

Capítulo VII: Clases en Java

Al fin!!!… lo que hasta el capítulo anterior,
pareciera que hayamos estado
repasando el lenguaje
C/C++, puesto que Java, posee mucho de estos lenguajes. Pero
nos estamos adentrando a la esencia de la Programación
Orientadaza o Objetos.

Un programa se construye a partir de un conjunto de
clases.

Una vez definida e implementada una clase, es posible
declarar elementos de esta clase de modo similar a como se
declaran las variables del
lenguaje (de los tipos primitivos int, double,
String, …). Los elementos declarados de una clase
se denominan objetos de la clase. De una única
clase se pueden declarar o crear numerosos objetos. La
clase es lo genérico: es el patrón o
modelo para
crear objetos.

Cada objeto tiene sus propias copias de las variables
miembro, con sus propios valores, en general distintos de los
demás objetos de la clase. Las clases pueden tener
variables static, que son propias de la clase y no de cada
objeto.

  1. Conceptos Claves

Una clase es una agrupación de
datos (variables o campos) y de funciones
(métodos) que operan sobre esos datos. A estos datos y
funciones
pertenecientes a una clase se les denomina variables y
métodos o funciones miembro. La
programación orientada a objetos se basa en la
programación de clases.

Una clase es una agrupación de datos
(variables o campos) y de funciones (métodos) que
operan sobre esos datos. La definición de una clase se
realiza en la siguiente forma:

[public] class Classname { //lo de public es
opcional

// definición de variables y
métodos

}

donde la palabra public es opcional: si no se
pone, la clase tiene la visibilidad por defecto, esto es,
sólo es visible para las demás clases del
package. Todos los métodos y variables deben ser
definidos dentro del bloque {…} de la clase.

Un objeto (en inglés,
instance) es un ejemplar concreto de
una clase. Las clases son como tipos de variables,
mientras que los objetos son como variables concretas de
un tipo determinado.

Classname unObjeto;

Classname otroObjeto;

A continuación se enumeran algunas
características importantes de las clases:

1. Todas las variables y funciones de Java deben
pertenecer a una clase. No hay variables y funciones
globales.

2. Si una clase deriva de otra (extends), hereda
todas sus variables y métodos.

3. Java tiene una jerarquía de clases
estándar de la que pueden derivar las clases que crean los
usuarios.

Una clase sólo puede heredar de una única
clase (en Java no hay herencia
múltiple). Si al definir una clase no se especifica de
qué clase deriva, por defecto la clase deriva de
Object. La clase Object es la base de toda la
jerarquía de clases de Java.

5. En un fichero se pueden definir varias clases, pero
en un fichero no puede haber más que una clase
public. Este fichero se debe llamar como la clase
public que contiene con extensión *.java.
Con algunas excepciones, lo habitual es escribir una sola clase
por fichero.

6. Si una clase contenida en un fichero no es
public, no es necesario que el fichero se llame como la
clase.

7. Los métodos de una clase pueden referirse de
modo global al objeto de esa clase al que se aplican por
medio de la referencia this.

8. Las clases se pueden agrupar en packages,
introduciendo una línea al comienzo del fichero
(package packageName;). Esta agrupación en
packages está relacionada con la jerarquía
de directorios y ficheros en la que se guardan las
clases.

Para la creación de un objeto se necesita el
operador new, y que se declaren las variables de instancia dentro
de una clase. Mediante una clase se pueden declarar varios
objetos que tendrán los mismos atributos.

Creación de Un Objeto

nomb_clase nomb_objeto=new
nomb_clase([valores]);

Cuando se hace referencia a un método este debe
estar declarado y desarrollado al igual que el objeto. Para
declarar y desarrollar un método debe estar dentro de una
clase y se debe indicar el valor que devuelve, el nombre y los
valores que se le pasan.

Definición de los
Métodos

valor devuelto
nombre_método([valores])

{

cuerpo;

}

Si tenemos que hacer referencia a las variables de
instancia y los métodos contenidos en un objeto se
necesita el operador punto(.).

Objeto.nomb_método( );

Objeto.nomb_método(valores);

Objeto.variable;

Veamos un Ejemplo para ilustrar lo que se ha
dicho:

Ejemplo 7.1

Diseñe una Clase, para crear objetos del tipo
Alumnos, en el cual, permita ingresar el nombre, edad y Nota de
ciertos objetos de ese tipo.

Solución:

  1. Digite el siguiente código

1 /*Archivo
Alumnos.Java*/
2
import
javax.swing.*;
3
public class Alumnos{
4 //declaración de
los atributos
5
public String
Nombre;
6
public int Edad;
7 public double
Nota;
8
9 //declaración de los
métodos
10
public void
EstablecerNombre()
11 {
12
Nombre=JOptionPane.showInputDialog("Ingrese el nombre:
");
13
}
14
public void EstablecerEdad(int x)
15 {
16 Edad=x;//el valor recibido lo asigna a
Edad
17
}
18
public void EstablecerNota(double y)
19 {
20 Nota=y;
21 }
22 /*Este
método, muestra todos los
datos del
23 del objeto en pantalla*/
24 public void
MostrarDatos()
25
{
26
String salida="Nombre del Alumno:
"+Nombre+"nEdad:
"+Edad+"nNota:
"+Nota;
27
JOptionPane.showMessageDialog(null, salida);
28 }
29 }

2. Luego guarde el archivo, Compílelo, pero NO lo
ejecute. Con esto estamos creando nuestra Clase, con la cual,
podremos construir Objetos de este tipo.

3. Ahora, y en otro archivo digite las siguientes
sentencias:

1 /*Archivo
UsaAlumnos.java*/
2 class UsaAlumnos{
3 public
static void main (String args []) {
4 //declaramos
y creamos un objeto del tipo Alumnos
5 Alumnos Datos=new Alumnos();
6 //LLamamos a los
métodos
7
Datos.EstablecerNombre();
8 Datos.EstablecerEdad(20);
9
Datos.EstablecerNota(9.5);
10
11 //Ahora mostramos los
Datos
12
Datos.MostrarDatos();
13 }
14 }

4. Luego Guarde el archivo, Compílelo y
Ejecútelo.

Explicación.

En el ejemplo anterior puede notar que, los atributos,
son esas variables simples, es las cuales almacenaremos información relevante a los objetos que,
crearemos a partir de esa clase.

Además que, los estamos declarando como
públicos, lo cual indica que tenemos acceso directo desde
cualquier otro archivo a los atributos. Los métodos son
del tipo public y no devuelven ningún valor, por
tal razón son declarados como void. Además
que. El método EstablecerEdad y EstablecerNota, reciben un
argumento cada uno de ellos, el cual es asignado al respectivo
atributo.

  1. Constructores

Un Constructor es una función,
método, etc, de las clases, la cual es llamada
automáticamente cuando se crea un objeto de esa
clase.

Por ser métodos, los constructores también
aceptan parámetros. Cuando en una clase no especificamos
ningún tipo de constructor, el compilador añade uno
público por omisión sin parámetros, el cual
NO hace nada.

Características de los
Constructores

  1. Un constructor, tiene el mismo nombre de la clase a
    la cual pertenece.
  2. No puede ser Heredado.
  3. No retorna ningún valor (Ni void), por lo cual
    no debe especificarse ningún tipo de dato.
  4. Debe declararse como public, sólo en casos
    realmente extraordinarios será de otro tipo.

Supongamos una clase llamada Datos

public class Datos
{
//declaracion de
atributos
public Datos();//constructor sin
parametros
public Datos(int Edad)
{//Constructor con
parámetros
EdadM=Edad;
}
}

Ejemplo 7.2

Se Desea crear un objeto del tipo Coordenadas, que
indique, la posición de un punto en el plano cartesiano, y
permita calcular la distancia existente con otro punto,
además del punto medio entre ellos.

1 /*Archivo
Coordenadas.java*/
2
3 public class Coordenadas {
4 private int
x,y;//Atributos
5 public Coordenadas (int x1 , int y1)//constructor
6
{
7
//asignamos esos
valores
8
x=x1;
9
y=y1;
10
}
11
public double Distancia (int x1, int y1)
12 {
13 //este
método recibe como parametros
14 //las
coordenadas del segundo punto
15 double D;
16
D=Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
17 return D;//Retornamops el valor de la
distancia
18
}
19
public void Pmedio(int x1, int y1)
20 {
21 double p1, p2;
22 p1=(x+x1)/2;
23 p2=(y+y1)/2;
24
System.out.println("El puntomedio
es: "+p1+","+p2);
25 }
26 }

1 /*Archivo
UsaCoordenadas.java*/
2
public class UsaCoordenadas {
3 public static
void main (String args
[]){
4 Coordenadas
P=new Coordenadas
(10,20);
5
//calculamos la Distancia:
6
System.out.println("La Distancia es:
"+P.Distancia(5,6));
7 //Punto
Medio
8
P.Pmedio(5,6);
9
}
10 }

Explicación:

Un método, si va a devolver algún valor,
éste debe especificarse cuando se hace la
definición del mismo, para el caso, el método
Distancia, devuelve el valor de la distancia, es por ello que lo
especificamos como public double. Además que,
cuando realizamos la llamada de ese método, es en ese
preciso lugar que aparecerá el valor que devuelve. Por
otra parte, los atributos, son de acceso privado, lo cual implica
que, sólo podemos acceder a ellos, en la clase
Coordenadas.

  1. Sobrecarga

Cuando en una clase, se definen un mismo método,
con diferente número de parámetros, o bien con el
mismo numero de parámetros pero diferenciándose en
la definición, en la cual, al menos un parámetro
sea de diferente tipo, cuando esto sucede, se dice que el
método está sobrecargado.

Ejemplo 7.3

Cree una aplicación en Java, que imprima un
número imaginario. Nota, los números imaginarios,
poseen una parte real y otra imaginaria, acompañada por la
constante i.

1 class Imaginario {
2 private
int real, imag;
3 public Imaginario()
4 {
5 real=0;
6 imag=0;
7 }
8 public Imaginario(int x, int y)
9 {
10 real=x;
11 imag=y;
12 }
13 public void
Mostrar()
14
{
15
System.out.println("El Numero
Imaginario es: "+real+"
+ "+imag+"i");
16 }
17 }

1 class
UsaImaginario{
2
public static void
main (String args []) {
3 Imaginario oI=new
Imaginario(5,6);
4
oI.Mostrar();
5
}
6
}

Preguntas

  1. ¿Que es y para que sirven las
    Clases?___________________________________________________________________________________________________________________________
  2. ¿Cuál es la diferencia entre las
    sentencia public y
    private?________________________________________________________________________________________________________________
  3. ¿Qué es un
    constructor?___________________________________________________________________________________________________________
  4. Mencione dos características de los
    constructores:_________________________________________________________________________________________________________________________________
  5. ¿Por qué, la clase a partir de la cual
    creamos los objetos y la clase que la utiliza, deben estar en
    el mismo
    directorio?_________________________________________________________________________________________________________________________________________________

Descubre el error

1. class punto{

Public int x;

Private int y;

void punto( )

{x=10;y=20;}

}

  1. punto p=new Punto( );
  2. System.out.printl(p.X + " "+p.Y);
  3. public punto(int , int ){x=a;y=b;}

5. punto(int a, int b){a=x; y=b;}

punto(){a=-1;b=-1;}

Ejercicios

  1. Diseñe Una clase que permita crear Objetos del
    tipo Perros. La cual
    almacene información pertinente al nombre, raza y peso
    de cierta cantidad de Perros.
  2. Se desea crear un programa que lea dos números
    imaginarios, y luego imprima: la suma, resta y
    multiplicación de ellos. (La parte real se suma con la
    parte real, la parte imaginaria con la parte imaginaria, y
    así para la resta y multiplicación).
  3. Diseñe una mini-Agenda, en la cual usted
    guarde los datos personales (nombre, teléfono y e-mail) de sus amigos. Haga
    uso, para ello de un Arreglo de referencias a objetos del tipo
    Agenda().
  4. Diseñe una clase en Java, llamada Leer(), la
    cual devuelva una cadena que el usuario haya ingresado por
    separado, y luego las concatene, dejendo un espacio entre
    ellas. Ejemplo=str1=Manuel; str2=Ortez à Cadena=Manuel Ortez.
  5. Cree un Objeto del tipo Fecha(), el cual recibe como
    argumentos, el día, mes y año. Y luego imprima
    esos Datos.
  6. Se desea crear un objeto del tipo Moneda, el cual
    realice el cambio de
    colones a dólares (1 colón=8.75 dólares).
    Al ingresar una cantidad en colones imprima la respectiva
    equivalencia el dólares, pero solo con DOS
    decimales.

Capitulo VIII: Paquetes, Interfaces y
Herencia

8.1 Paquetes (Packages)

Un package es una agrupación de clases. En
la API de Java 1.1 había 22 packages; en
Java 1.2 hay 59 packages, lo que da una idea del
"crecimiento" experimentado por el lenguaje. Además, el
usuario puede crear sus propios packages. Para que una
clase pase a formar parte de un package llamado
pkgName, hay que introducir en ella la
sentencia:

package pkgName;

que debe ser la primera sentencia del fichero sin contar
comentarios y líneas en blanco.

Los nombres de los packages se suelen escribir
con minúsculas, para distinguirlos de las clases, que
empiezan por mayúscula. El nombre de un package
puede constar de varios nombres unidos por puntos (los propios
packages de Java siguen esta norma, como por
ejemplo java.awt.event). Todas las clases que forman parte
de un package deben estar en el mismo directorio. Los
nombres compuestos de los packages están
relacionados con la jerarquía de directorios en que se
guardan las clases. Es recomendable que los nombres de las
clases
de Java sean únicos en Internet.
Es el nombre del package lo que permite obtener esta
característica. Una forma de conseguirlo es incluir el
nombre del

dominio (quitando quizás el país),
como por ejemplo en el package siguiente:

es.ceit.jgjalon.infor2.ordenar

Las clases de un package se almacenan en un
directorio con el mismo nombre largo (path) que el
package. Por ejemplo, la clase,

es.ceit.jgjalon.infor2.ordenar.QuickSort.class

debería estar en el directorio,

CLASSPATHesceitjgjaloninfor2ordenarQuickSort.class

donde CLASSPATH es una variable de entorno del PC que
establece la posición absoluta de los directorios en los
que hay clases de Java (clases del sistema o de
usuario), en este caso la posición del directorio
es en los discos locales del ordenador.

Pasos Para Crear un Paquete

  1. Seleccionar el Nombre de Paquete. Ejemplo:
    MiPaquete.es; misClases.Utilidades. Para ello cree una carpeta
    llamada Ejemplo, en el disco
    duro.
  2. Crear una estructura
    Jerárquica de carpetas en el disco duro. Esta estructura
    jerárquica se hace corresponder con una estructura en el
    disco duro con una estructura jerárquica de carpetas, de
    tal forma que los nombres de las carpetas coinciden con los
    nombres de los elementos del paquete. (Para ello, dentro de la
    carpeta Ejemplo, cree una carpeta llamada MIsClases, y dentro
    de ella, una llamada es) Lo cual se especifica con la variable
    CLASSPATH. Para nuestro ejemplo, la variable CLASSPATH debe
    indicar, entre otras, la ruta de la carpeta MisClases. En
    JGRASP en Settings escoger Path/Classpath luego escoger la
    carpeta CLASSPATH.
  3. Copie en esta carpeta (Carpeta es) los archivos
    correspondientes a Alumnos.java, Coordenadas.java e
    Imaginario.java (los cuales han sido creados en el
    capítulo anterior).

    package MisClases.es;

  4. Modifique estos archivos, colocándoles a cada
    uno de ellos la instrucción:
  5. vuélvalos a compilar.
  6. Luego copie el archivo que utiliza la clase
    Coordenadas.java (Nos referimos al archivo
    UsaCoordendas.java). este archivo puede guardarlo en la
    dirección: C:Ejemplo.

    import MisClases.es.Coordenadas;

  7. Modifique este archivo colocándole la
    sentencia:

    Con lo Anterior ya hemos creado, nuestro primer
    paquete, lo cual, es de manera similar, que Java controla,
    los paquetes que dispone para la realización de
    nuestros programas.

    1. Interfaces
  8. Vuélvalo a Compilar y
    Ejecútelo.

Una interfaz, pareceriera que no tiene ningún
tipo de aplicación o implementación, dentro de los
programas que, creamos en Java. Sin embargo no es así. Ya
que, una interfaz indica, como será la "apariencia", que
la clase tendrá. Además que, establece cierto
"protocolo" entre
las clases.

Para declarar una clase haremos uso de la palabra
reservada interface (la cual sustituye a la palabra
class).

Y para implementar la interfaz, haremos uso de la
palabra reservada implements la cual debe especificarse,
al momento de declarar la clase que, implementará dicha
interfaz.

Ejemplo:

Supongamos que queremos crear un programa que, dadas la
base y la altura de un rectángulo, nos devuelva su area,
su perímetro y su volumen. Pero
haciendo uso de una interfaz.

Solución:

  1. En archivo nuevo digite el siguiente código:

1 //declaración de la
interfaz
2 public interface
Calculos {
3
public double Perimetro();//calcula el Perímetro
4 public double
Area();//calcula
Area
5
public double Volumen();//calcula el volumen
6 }//fin de
la interfaz

2. Guarde este archivo y compílelo.

3. En otro archivo digite el siguiente
código:

1 //Declaración de la clase que implementa la
Interfaz Calculos
2
public class Rectangulo extends Object implements Calculos{
3 private double
base, altura;
4
public
Rectangulo()//constructor
5
{
6
base=0;
7
altura=0;
8
}
9
//establece la base
10 public void
AignarBase(double
x)
11
{
12
base=x;
13
}
14
//estabece el valor de la
altura
15
public void AsignarAltura(double y)
16 {
17 altura=y;
18 }
19 //Calculamos el Perímetro
20 public double
Perimetro()
21
{
22
return
2*base+2*altura;
23
}
24
//calculamos el
area
25
public double Area()
26 {
27 return base*altura;
28 }
29 public double
Volumen()
30
{
31
double
espesor=5;
32
return
base*altura*espesor;
33 }
34 }

4. Guarde y compile.

5. Ahora digite, en otro archivo, la siguiente secuencia
de código:

1 //vamos a
probar la clase
2
//y la interfaz
3 import
javax.swing.*;
4
import
java.text.DecimalFormat;//para
que los resultados
5
//se muestren con decimales
6 public class
PruebaRect {
7
public static void
main (String args []) {
8 double
a,b,c;
9
String salida;
10
DecimalFormat df=new
DecimalFormat(".00");
11 //creamos
el objeto, que contenga sólo dos
decimales
12
Rectangulo rect=new
Rectangulo();
13

14
//Dimenciones del
rectangulo:
15
rect.AsignarBase(8.5);
16
rect.AsignarAltura(10.98);
17
18 //calculos
19
a=rect.Perimetro();
20 b=rect.Area();
21
c=rect.Volumen();
22

23
//impresión
24 salida="El rectangulo, tiene un perímetro de:
"+df.format(a)+"nUn
area de: "+df.format(b)+"nY un volumen de:
"+df.format(c);
25
JOptionPane.showMessageDialog(null, salida);
26 }

6. Guárdelo, compílelo y
ejecútelo.

Quizá el lector piense que, una interfaz no tiene
mayor uso, y a lo mejor, ni se perciba su funcionamiento y mucho
menos su implementación. Y siendo franco, al principio, ni
yo entendía el por que usar una interfaz. Sin embargo Las
interfaces son útiles para:

  • Capturar similitudes entre clases no relacionadas sin
    forzar una relación entre ellas.
  • Declarar métodos que una o varias clases
    necesitan implementar.
  • Revelar la interface de programación de un
    objeto sin recelar sus clases (los objetos de este tipo son
    llamados objetos anónimos y pueden ser útiles
    cuando se comparte un paquete de clases con otros
    desarrolladores). El objetivo de
    definir interfaces es permitir una mayor abstracción de
    datos, por ejemplo, permitiendo que un método reciba un
    objeto de una instancia de alguna clase que implementa una
    interface, de modo que pueda invocarse a un método
    definido en esta, aunque no se conozca la clase real que se
    está utilizando.

Partes: 1, 2, 3, 4, 5
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter