Sunteți pe pagina 1din 5

CREACIN Y UTILIZACIN DE OBJETOS

Para crear varios objetos de la clase anterior podemos utilizar la


siguiente clase:

package com.example.complejos;

class Principal {
public static void main(String[] main) {
Complejo z, w;
z = new Complejo(-1.5, 3.0);
w = new Complejo(-1.2, 2.4);
z.suma(w);
System.out.println("Complejo: " + z.toString());
}
}
La clase Principal es algo atpica, no tiene atributos ni constructor,
nicamente el mtodo main. Cuando en un proyecto existe una clase
que tiene un mtodo con este perfil, es el que se llama para
comenzar la ejecucin. Como parmetros este mtodo recibe un
array de Strings. Esta informacin tiene inters cuando el programa
es ejecutado desde la lnea de comandos con parmetros.
El la primera lnea se declaran los objetos z y w. En las dos siguientes
lneas se inicializan los objetos llamando al constructor. Se utiliza la
expresin:
<objeto> = new <Clase>(<parmetros>);.
Tambin es posible declarar e inicializar el objeto en la misma
sentencia de la siguiente forma:

<Clase> <objeto> = new <Clase>(<parmetros>);


En el ejemplo sera:
Complejo z = new Complejo(-1.5, 3.0);
Siguiendo con el ejemplo en la siguiente lnea se llama a un
mtodo suma() del objeto z. Se sigue el siguiente expresin:
<objeto>.<mtodo>(<parmetros>);
En la ltima lnea utilizamos System.out.println() para sacar por
la consola una cadena de caracteres. Es decir, si ejecutamos la
aplicacin desde una consola de la lnea de comandos se mostrar un
mensaje por pantalla.

Ejercicio paso a paso: Creacin de una primera clase

Android Studio est pensado exclusivamente para crear


aplicaciones Android. Sin embargo, si sigues los siguientes pasos
podrs crear una aplicacin 100% Java:
1.

Arranca Android Studio.

2.
Crea un nuevo proyecto (File> New > New Project..) con
nombre de aplicacin Complejos y nombre de
paquete com.example.complejos. En la segunda ventana
marca Phone and Tablet. Y en la tercera selecciona la
opcin Add No Activity, as no creamos una actividad que nunca
ser usada. Pulsa Finish.
3.
Pulsa en File> New > New Module. Selecciona Java
Library y pulsa Next.
4.
Introduce en Library name: complejos, como Java pakage
name: com.example.complejos y en Java class name: Complejo.
Pulsa el botn Finish. Se crear un nuevo mdulo Java dentro de
tu proyecto Android.

5.
Reemplaza el cdigo por el mostrado anteriormente en el
ejemplo de la clase Complejo.
6.
Dentro de la vista complejos / java /
com.example.complejos pulsa con el botn derecho y
seleccionaNew / Java Class.
7.

Introduce en el campo Name: Principal y pulsa en Finish.

8.
Reemplaza el cdigo por el mostrado anteriormente en el
ejemplo de la clase Principal.
9. Pulsa en el botn desplegable a la derecha del botn Run .
Selecciona Edit Configurations...
10. En la nueva ventana, haz clic en el signo + de la esquina
superior izquierda y selecciona Application. Aparecer una nueva
configuracin de aplicacin. Selecciona en Name: complejos,
en Main class:com.example.complejos.Principal y en Use
classpath of module: complejos. Pulsa en OK..
11. Pulsa el botn Ejecucin y verifica que el resultado que
aparece en la ventana de Run es similar a:
"C:\Program ...
Complejo: -2.7+5.4i
Process finished with exit code 0
12. En la clase Principal reemplaza "Complejo: " +
z.toString() por "Complejo: " + z. Ejecuta de nuevo el
proyecto y observa que el resultado no cambia. En Java si
aadimos cualquier objeto a una expresin de texto, se utilizar
el mtodo toString() para convertir el objeto a texto.

Practica: La clase coordenada geogrfica


1.
Crea un nuevo proyecto Java con
nombre Coordenadas_Geograficas

2.

Crea una clase con el nombre GeoPunto.

3.

Define dos atributos longitud y latitud tipo double.

4.

Define el constructor de la clase.

5.
Define el mtodo toString() de forma similar a como se hizo
en la clase Complejo.
6.

Define el mtodo double distancia(GeoPunto punto) para

aproximar la distancia en metros entre dos coordenadas.


Podemos utilizar el algoritmo Haversine:
R = radio medio de la Tierra (6,378km)
lat = lat2 lat1
long = long2 long1
a = sin(lat/2) + cos(lat1) cos(lat2) sin(long/2)
c = 2 atan2(a, (1a))
d=Rc

Una posible implementacin en Java de este algoritmo se


muestra a continuacin:

final double RADIO_TIERRA = 6371000; // en metros


double dLat = Math.toRadians(latitud - punto.latitud);
double dLon = Math.toRadians(longitud - punto.longitud);
double lat1 = Math.toRadians(punto.latitud);
double lat2 = Math.toRadians(latitud);
double a =

Math.sin(dLat/2) * Math.sin(dLat/2) +

Math.sin(dLon/2) * Math.sin(dLon/2) *
Math.cos(lat1) * Math.cos(lat2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
return c * RADIO_TIERRA;

7.
Crea la clase Principal de forma similar a como se hizo en
el proyecto Complejos.
8.
Ejecuta el proyecto y verifica que todo funciona
correctamente.

S-ar putea să vă placă și