jueves, 31 de diciembre de 2009

Feliz Año nuevo 2010

Al culminar este año les agradezco que hayan compartido con nosotros nuestro primer año en línea de "Acerca de Java".

Espero seguir compartiendo junto a ustedes siempre, esperando de sus comentarios y sugerencias para poder llevar un mejor servicio de estudio de la tecnología Java, con la bendición de Dios, la compañía de los ángeles y con todos ustedes lectores que son los principales protagonistas.

Para el año entrante 2010 espero sigamos adelante, haciendo uso de nuevas alternativas para compartir las técnicas de programación, también de innovaciones de esta tecnología, enlaces a otras páginas webs y blogs que puedan aclararnos las ideas y compartir el conocimiento que nos lleve a crecer como personas y a mejorar las condiciones de vida del ser humano.

Nos espera todavía mucho por recorrer, java es un lenguaje muy extenso y por eso hay tantos libros que lo abordan de distinta manera. Gracias a todos los que escriben por pasión al conocimiento, al libro de la WROX "Java JDK 6.0" (W. Clay Richardson y otros autores) de la cual he extraído algunas ideas para compartir, a DEITEL por su libro "Java, cómo programar" donde explican de forma clara, extensa y precisa la programación orientada a objetos en Java 1.4; por supuesto, también gracias al API de Java que es la guía de referencia de cualquier programador Java y por último a todos los blogs, foros y demás herramientas de internet que sirven para tener información de referencia y poder aclararla o extenderla. Es decir gracias a todos aquellos que directa o indirectamente aportan o hacen posible este servicio.

Y además, gracias de nuevo a ustedes por su compañía y apoyo.

¡Nos vemos en el 2010, Feliz Navidad y un 2010 lleno de amor y esperanza!

Les desea su servidor Kelvin Atencio a través de www.acercadejava.blogspot.com

martes, 22 de diciembre de 2009

Tenemos 2 de Argumentos variables y otras 2 más...

Nota: Si no ve bien las imágenes del código puede dar click en ella y esta se mostrará más fielmente en una nueva pantalla.

1.- ¿Cuál es el resultado de compilar y ejecutar el siguiente código?



[A].- Error de compilación
[B].- Se imprime 1
[C].- Se imprime 2
[D].- Se imprime 3
[E].- Se imprime 4
[F].- Se lanza una excepción en ejecución

2.- ¿Cuál es el resultado al compilar y ejecutar este código?
Suponga que en ejecución se pasan los parámetros de la siguiente manera:
>java PruebaVarArgs2 arg1 arg2 arg3



[A].- Se imprime "entro en arreglo"
[B].- Se imprime "entro en elipsis"
[C].- Se lanza IllegalArgumentException
[D].- Se lanza ArrayIndexOutOfBoundsException
[E].- El programa no puede compilar
[F].- Ninguna de las anteriores

3.- ¿Que se imprime al compilar y ejecutar el siguiente código?

[A].- This is the default outputtwentyten
[B].- twentyten
[C].- twenty
[D].- Error de compilacion
[E].- Excepción en ejecución

4.- ¿Qué se imprime en pantalla al compilar y ejecutar el siguiente código?

[A].- medidas finales (Alto: 50.0, Ancho: 20.0)
[B].- medidas finales (Alto: 60.0, Ancho: 30.0)
[C].- medidas finales (Alto: 80.0, Ancho: 20.0)
[D].- medidas finales (Alto: 80.0, Ancho: 30.0)
[E].- medidas finales (Alto: 60.0, Ancho: 20.0)
[F].- medidas finales (Alto: 50.0, Ancho: 30.0)

Respuestas Correctas:

1.- [D]. Se imprime 3.
Si, el compilador no tiene ninguna dificultad al compilar este código, pero en la ejecución como ambos métodos pueden ejecutar el código se le da prioridad al que recibe dos parámetros por defecto. Es decir si llamo a metodo(), o metodo(5), o metodo(1,8,7), se imprime 0, 1 y 3 respectivamente que es la longitud de z, pero al llamar a metodo(6,2) se ejecuta metodo(int x, int y) y por lo tanto se imprime 3 que es el resultado de 6 entre 2.

2.- [E]. El programa no puede compilar:
Esto debido a que el compilador interpreta tanto método String[] como String... como arreglos y por lo tanto el método está duplicado, por lo tanto el programa no compila.

3.- [B]. twentyten:
C
omo k vale 20, el programa imprime twenty, luego, como no existe un break, continúa abajo hasta case 10, por lo que imprime ten también. La compilación tiene efecto aunque default este de primero y aunque esté en cualquier parte de switch este sólo se ejecuta si ninguno de los case coincide.

4.- [C]. medidas finales (Alto: 80.0, Ancho: 20.0):
Java por defecto pasa los parámetros por valor. Para referencias y arreglos puedo cambiar el contenido pero no puedo asignarle una nueva referencia. Debido a esto, la línea 24 deja a rectangulo igual (50.0, 20.0), pero al llamar a cambiarAlto si cambia el valor dentro de la referencia y por lo tanto cambia el alto a 80.0, por lo tanto las medidas finales son Alto: 80.0 y Ancho 20.0