Certificación java 6 cap 1

60
CERTIFICACIÓN JAVA 6 Capítulo 1 – Declaraciones y Control de acceso Realizado por: Raúl Ernesto Triviño Alvarado

description

Capítulo 1 – Declaraciones y Control de acceso - SCJP Sun Certified Programmer for Java 6 Exam 310-065

Transcript of Certificación java 6 cap 1

Page 1: Certificación java 6 cap 1

CERTIFICACIÓN JAVA 6Capítulo 1 – Declaraciones y Control de acceso

Realizado por: Raúl Ernesto Triviño Alvarado

Page 2: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Cubre los objetivos 1.3 y 1.4

1.3 Develop code that declares, initializes, and uses primitives, arrays, enums, and objects as static, instance, and local variables. Also, use legal identifiers for variable names.

1.4 Develop code that declares both static and non-static methods, and—if appropriate— use method names that adhere to the JavaBeans naming standards. Also develop code thatdeclares and uses a variable-length argument list.

Identificadores y java Beans

Page 3: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Identificadores y java Beans

Reglas de declarar variables Las variables debe inicializar con una letra, un

signo de pesos, o un símbolo de conexión como una línea al piso (_). No se inicializa con números.

El resto de las variables pueden tener letras, números, símbolo de pesos, y símbolos de conexión.

El nombre de las variables no tienen límites. Las variables diferencian mayúsculas y

minúsculas.

Page 4: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Identificadores y java Beans

Variables legales Variables ilegales

int _a;int $c;int ______2_w;int _$;int this_is_a_very_detailed_name_for_an_identifier;

int :b;int -d;int e#;int .f;int 7g;

Page 5: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Identificadores y java Beans

Listado de palabras reservadas en java

Page 6: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Identificadores y java Beans

Convenciones de código en java Clases e interfaces:

La primera letra debe ser mayúscula, las clases deben ser sustantivos y las interfaces adjetivos

Los métodos Tienen la primera letra en minúscula, y la siguiente palabra

empieza en mayúscula, deben denotar una acción Las variables

Tienen la primera letra en minúscula, y la siguiente palabra empieza en mayúscula, deben denotar un sustantivo

Constantes Debe ser totalmente en mayúsculas y separadas por línea

al piso

Page 7: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Identificadores y java Beans

Estándar JavaBeans Definición para llamar los métodos

estándar de las clases Si la propiedad no es boolean entonces los

métodos getter deben ser getNombreVariable().

Si es un boolean entonces no se usa get si no is, por ejemplo isVariableBoolean().

Los setters deben ser en todos los casos con setNombreVariable().

Page 8: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Cubre el objetivo 1.1

1.1 Develop code that declares classes (including abstract and all forms of nested classes),interfaces, and enums, and includes the appropriate use of package and import statements (including static imports).

Declaración de clases

Page 9: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de clases

Solo debe haber una clase pública en un archivo .java, aunque si pueden declararse varias clases en un archivo.

El nombre del archivo .java debe ser del mismo nombre de la clase pública.

Las clases deben empezar con la sentencia package, debe ir antes de las sentencias import. En caso que se haga lo contrario aparecerá error de compilación.

Las sentencias import y package aplican para todas las clases del archivo, no existe forma que dos clases que estén en el mismo archivo pertenezcan a paquetes diferentes.

No pueden haber clases publicas y no publicas con el mismo nombre.

Page 10: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de clases

Declaración de clases y modificadores Al momento de declarar una clase se deben

tener en cuenta dos aspectos: Modificadores de acceso: Una clase puede ser

privada, pública o protegida Modificadores adicionales: Una clase además

puede ser strictfp, final o abstract.

Page 11: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de clases

Acceso de las clases: El comportamiento de una clase depende

de la forma como se declare, en este aspecto entonces podemos decir que por ejemplo al momento de crear una clase A, esta sea diferente al: Que la clase A sea una instancia de la interface

B (Polifomismo) Que la clase A herede de la clase B (Herencia) Que la clase A tenga un modificador de acceso,

dependiendo de esto B puede acceder a esta o no.

Page 12: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de clases

Acceso de las clases – Acceso por defecto Son las clases que no llevan ningún

modificador al momento de declararlas. Estas clases solo pueden ser vistas por

otras clases del mismo paquete.

package cert;class Beverage { }

package exam.stuff;import cert.Beverage;class Tea extends Beverage { }

Compilan?, Arroja error en ejecución?

Page 13: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de clases

Acceso de las clases – Acceso público Este acceso hace que la clase pueda ser

vista por todas las clases de java. No interesa si esta en otro paquete o librería.

Acceso de las clases – Acceso privado Caso contrarío al anterior, no permite que

ninguna otra clase la pueda ver ni acceder, así esté en el mismo paquete, o inclusive en el mismo archivo.

Page 14: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de clases

Modificadores adicionales – Final Una clase marcada con final, no permite

que la clase tenga hijos en el caso de la herencia

Se hace para garantizar la seguridad de los métodos y las clases, y para obligar que los métodos no puedan ser sobreescritos.

Page 15: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de clases

Declaración de clases – Clase abstracta Una clase abstracta nunca podrá ser instanciada, en

caso que se haga entonces arrojará un error en tiempo de ejecución así compile.

Una clase abstracta se debe implementar siempre y cuando tenga un método abstracto, este deberá implementarse obligatoriamente por las clases que heredan de esta clase.

Una clase abstracta difiere de una interface porque esta puede tener métodos implementados y métodos abstractos.

¿Una clase abstracta puede existir sin tener métodos abstractos? ¿Puede existir una clase que sea final y abstracta?

Page 16: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Cubre los objetivos 1.1 y 1.2

1.1 Develop code that declares classes (including abstract and all forms of nested classes), interfaces, and enums, and includes the appropriate use of package and import statements (including static imports).

1.2 Develop code that declares an interface. Develop code that implements or extends one or more interfaces. Develop code that declares an abstract class. Develop code that extends an abstract class.

Declaración de interfaces

Page 17: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de Interfaces

Funcionamiento de una interface

Page 18: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de Interfaces

Todos los métodos de las interfaces son implícitamente públicos y abstractos, por lo tanto no pueden existir métodos privados o más aún con implementación.

Todas las variables son públicas, estáticas y finales, en otras palabras son constantes.

Los métodos no pueden ser static, ni strictfp o native Una interface puede extender de una o varias interfaces. Una interface no puede extender de algo que no sea otra

interface Una interface no puede implementar nada, ni clase ni

interface. Una interface debe ser declarada con la palabra

interface

Page 19: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de interfaces

Estas dos declaraciones por lo tanto son iguales

Estas declaraciónes son válidas:

Estas no son válidas

public abstract interface Rollable { }public interface Rollable { }

void bounce();public void bounce();abstract void bounce();public abstract void bounce();abstract public void bounce();

final void bounce(); // final and abstract can never be used// together, and abstract is impliedstatic void bounce(); // interfaces define instance methodsprivate void bounce(); // interface methods are always publicprotected void bounce(); // (same as above)

Page 20: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de interfaces

Declarando constantes de interfaces Todas las variables de una interface son constantes, por lo tanto

estas serán implícitamente declaradas como public static final. No es necesario declararlas explícitamente, sin embargo si se

llegan a declarar así no existe problema se puede hacer sin problema.

Por lo tanto no pueden existir variables de tipo private. Las variables al ser constantes deben tener un valor de

inicialización, y su valor nunca podrá cambiar.

Error de compilación

Page 21: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Responde a los objetivos 1.3 y 1.41.3 Develop code that declares, initializes, and uses primitives, arrays, enums, and objects as static, instance, and local variables. Also, use legal identifiers for variable names.1.4 Develop code that declares both static and non-static methods, and—if appropriate—use method names that adhere to the JavaBeans naming standards. Also develop code that declares and uses a variable-length argument list.

Declarando miembros de una clase

Page 22: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declarando los miembros de una clase

Modificadores de acceso Los modificadores de acceso de una clase pueden ser

de 4 niveles: public, protected, default, y private. El nivel de acceso de cada uno de estos se puede

resumir en la siguiente tabla:

Page 23: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declarando los miembros de una clase

Modificadores de no acceso Acceso final en métodos

Un método final no puede ser sobreescrito por parte de una clase hijo.

Es una forma de garantizar la seguridad de los métodos en la herencia.

Compila bien pero arroja error al momento de correrlo

Page 24: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declarando los miembros de una clase

Modificadores de no acceso Acceso final en argumentos

Si en la lista de argumentos aparece una variable marcada como final significa que el valor de esta variable no puede cambiar en el método como tal.

Acceso abstract en métodos Los abstract son métodos que no tienen implementación,

la clase de estos métodos tiene que marcarse como abstract tambien. Por lo tanto pueden haber clases abstract sin métodos abstract, pero no al contrario.

Error de compilación

Page 25: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declarando los miembros de una clase

Modificadores de no acceso Acceso abstract en métodos

Los métodos abstractos por su naturaleza jamás deben mezclarse con modificadores como private o final, pues es necesario queque sea heredados para implementarse, ni con tipos static pues arroja error de compilación.

Page 26: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declarando los miembros de una clase

Métodos sincronized Indican que este método solo puede ser accedido por un hilo a

la vez. Este modificador solo puede ser aplicado a métodos, no a

clases o variables. Métodos Native

Sólo puede asignarse a métodos. Indica que el método está escrito en un lenguaje dependiente

de la plataforma, habitualmente en C. Cuando usemos un método nativo, sólo incluiremos la cabecera

del método con el modificador native y terminado en punto y coma (;) (como si fuera un método abstracto)

Se necesitan por tanto los ficheros .h y .c correspondientes que serán los que contengan el código fuente del método nativo.

Page 27: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declarando los miembros de una clase

Métodos Strictfp Es un modificador que se puede usar como modificador de

clase y/o modificador de métodos. Pero nunca como modificador de instancias o variables.

Cuando colocamos el modificador strictfp delante de una clase o delante de un método, estamos indicando que nuestra clase o método se rige por el estandar IEEE 754 para manejar números en coma flotante y para realizar operaciones de coma flotante.

De esta forma se puede suponer cómo van a comportarse las operaciones en punto flotante sin importar la arquitectura de la JVM que se encuentre por debajo.

La desventaja es que si la arquitectura que tenemos por debajo soporta una precisión mayor, los métodos strictfp no harán uso de toda esa potencia y capacidad.

Page 28: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declarando los miembros de una clase

Var-args Los var-args solo existen en la declaración de los métodos, Se declaran colocando el tipo de variable, seguido de tres

puntos (…) y el nombre de la variable. Cuando se declara un var-arg se pueden, implementar otros

atributos, pero no varios var-args. Los var-args deben declararse como el último atributo de los que

recibe el método

Var-args legales Var-args ilegales

Page 29: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declarando los miembros de una clase

Declaración de constructores Los constructores nunca pueden retornar

un atributo. Deben tener el mismo nombre del atributo Pueden ser public, o private pero no

pueden ser static, final o abstractConstructores Legales

Constructores ilegales

Page 30: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de variables

Existen dos tipos de variables en java: Primitivas y de referencia.

Variables primitivas

Adicionalmente a esto existen las variables booleanas que solo pueden ser true o false

Page 31: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de variables

Declaración de variables de referencia Las variables de referencia pueden ser declaradas

como static, de instancia, de métodos, o locales. Se pueden declarar uno o más variables del

mismo tipo, en la misma linea. Variables de instancia

Están declaradas dentro de la clase pero fuera de cualquier método

Pueden ser declaradas con cualquiera de los 4 tipos de acceso (default, private, public y protected)

Page 32: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de variables

Variables de instancia Pueden ser marcadas como final, transient,

abstract, syncronized, strictfp, native, o static.

Page 33: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de variables

Variables locales Son variables que están declaradas dentro de los

métodos Por lo tanto el nivel de alcance de esta variable es solo

a nivel del método, si se llama desde un punto fuera de este, entonces arroja error de compilación.

Esta variable es necesaria inicializarla antes de usarla. Las variables locales no pueden ser public, transient,

volatile, abstract, o static, pero si pueden ser final. Shadowing: Es cuando una variable local se llama

igual que una variable de instancia, existen riesgos a que el sistema no logre identificar cual variable se refiere el sistema, por esto existe la sentencia this.

Page 34: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Arrays construidos legalmente

Arrays construidos ilegalmente

Declaración de variables

Declaración de arrays Los arrays se pueden declarar así:

Variables final Una variable final no permite reasignar el

valor de la variable una vez se a asignado.

Page 35: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de variables

Comportamiento de una clase final

Comportamiento de un método final

Comportamiento de una variable

final

Page 36: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de variables

Variables trasient Las variables trasient indican que no se

tendrán en cuenta al momento de serializar y deserializar la clase.

Variables volatile Indica que para esta variable un hilo deberá

comparar su copia privada con la copia maestra almacenada en memoria.

Page 37: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de variables

Variables y métodos static Cuando uno marca algo en static significa

que en tiempo de ejecución corre antes de crearse la instancia de la clase y solo se ejecuta una sola vez. Estos bloques corren antes del constructor.

El nivel de static se puede aplicar a métodos, variables, clases internas, y bloques.

No pueden ser static constructores, clases externas, interfaces, métodos locales de las clases internas, variables locales, y variables locales

Page 38: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de variables

Declaración de enums Enum es una variable que corresponde a una lista

enumerada de valores constantes. Se declara así

Estos no pueden ser declarados como private o protected.

Los enums son considerados como clases apartes, si va dentro de una clase sería como una clase interna, por lo tanto no puede declararse un enum dentro de un método

Page 39: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de variables

Declaración de enums

Page 40: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de variables

Declaración de constructores, métodos y variables en un enum Como los enums son una especia de clase,

entonces pues pueden tener constructores, métodos y variables

Constructores: Nunca se puede invocar directamente un

constructor de un enum, este se invoca automáticamente cuando se definen los valores

Pueden haber constructores con uno o más atributos, y pueden sobrescribirse los constructores

Page 41: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Declaración de variables

Page 42: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Preguntas de práctica

Page 43: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Pregunta 1

Which is true? (Choose all that apply.) A. "X extends Y" is correct if and only if X

is a class and Y is an interface B. "X extends Y" is correct if and only if X

is an interface and Y is a class C. "X extends Y" is correct if X and Y are

either both classes or both interfaces D. "X extends Y" is correct for all

combinations of X and Y being classes and/or interfaces

Page 44: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Respuesta 1

A es incorrecta porque las clases implementan interfaces no extienden de ellas.

B es incorrecta porque las interfaces solo heredan de otras interfaces

C es la correcta. La D es incorrecta por las razones ya

vista.

Esta pregunta cubre el objetivo 1.2

Page 45: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Respuesta 2

Which method names follow the JavaBeans standard? (Choose all that apply.)

A. addSize B. getCust C. deleteRep D. isColorado E. putDimensions

Page 46: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Respuesta 2

A es incorrecta porque la sentencia add solo se usa con los métodos listener

B es correcta porque usa get C es incorrecta porque delete no esta dentro

del estándar D es correcta porque usa is, is se usa para

variables booleanas E es incorrecta porque put no esta dentro del

estándar

Esta pregunta cubre el objetivo 1.4

Page 47: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Pregunta 3

Which, inserted independently at line 6, will compile? (Choose all that apply.)

A. static void doStuff(int... doArgs) { } B. static void doStuff(int[] doArgs) { } C. static void doStuff(int doArgs...) { } D. static void doStuff(int... doArgs, int y) { } E. static void doStuff(int x, int... doArgs) { }

1. class Voop {2. public static void main(String [] args) {3. doStuff(1);4. doStuff(1,2);5. }6. // insert code here7. }

Page 48: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Respuesta 3

A es correcta, pues cumple la sintaxis de los vararg

B es incorrecta, un array es un objeto, no sirve para llenarse como lo hace el código

C es incorrecta, esta mal declarado el vararg D es incorrecta porque el vararg debe ser el

último atributo de los argumentos del método E es correcta, se pueden tener varios vararg en

una lista de argumentos del método

Esta pregunta cubre el objetivo 1.4

Page 49: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Pregunta 4

What is the result? A. woof burble B. Multiple compilation errors C. Compilation fails due to an error on line 2 D. Compilation fails due to an error on line 3 E. Compilation fails due to an error on line 4 F. Compilation fails due to an error on line 9

1. enum Animals {2. DOG("woof"), CAT("meow"), FISH("burble");3. String sound;4. Animals(String s) { sound = s; }5. }6. class TestEnum {7. static Animals a;8. public static void main(String[] args) {9. System.out.println(a.DOG.sound + " " + a.FISH.sound);10. }11. }

Page 50: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Respuesta 4

A es correcta, los enums pueden tener constructores, y métodos, además se pueden instanciar como static

B es incorrecta, no se presentan errores de compilación C es incorrecta, así se crean la elaboración de los

atributos del enum, además la sentencia termina con ; D es incorrecta, los enums pueden tener variables

locales E es incorrecta, los enums pueden tener constuctores F es incorrecta, una clase main puede acceder a enum

a través de una instancia estática.

Esta pregunta cubre el objetivo 1.3

Page 51: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Pregunta 5

What is the result? (Choose all that apply.) A. 5 6 7 B. 5 followed by an exception C. Compilation fails with an error on line 7 D. Compilation fails with an error on line 8 E. Compilation fails with an error on line 9 F. Compilation fails with an error on line 10

1. package pkgA;2. public class Foo {3. int a = 5;4. protected int b = 6;5. public int c = 7;6. }3. package pkgB;4. import pkgA.*;5. public class Baz {6. public static void main(String[] args) {7. Foo f = new Foo();8. System.out.print(" " + f.a);9. System.out.print(" " + f.b);10. System.out.println(" " + f.c);11. }12. }

Page 52: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Respuesta 5

A es incorrecta, la aplicación no compila. B es incorrecta, pues la aplicación arroja errores de compilación

y no de ejecución. C es incorrecta, la clase Foo es pública por lo tanto puede ser

vista por cualquier otra clase. D es correcta, las clases con acceso por defecto no pueden ser

vistas por clases de otros paquetes, arroja error de compilación. E es correcta, las clases con acceso protected solo pueden ser

vistas por clases externas pero solo por sus hijas, error de compilación

F es incorrecta, las variables públicas se pueden ver por cualquier otra clase

Esta pregunta cubre el objetivo 1.1

Page 53: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Pregunta 6

What is the result? (Choose all that apply.) A. Compilation succeeds B. Compilation fails with an error on line 1 C. Compilation fails with an error on line 3 D. Compilation fails with an error on line 5 E. Compilation fails with an error on line 7 F. Compilation fails with an error on line 9

1. public class Electronic implements Device{ public void doIt() { } }2.3. abstract class Phone1 extends Electronic { }4.5. abstract class Phone2 extends Electronic{ public void doIt(int x) { } }6.7. class Phone3 extends Electronic implements Device{ public void doStuff() { } }8.9. interface Device { public void doIt(); }

Page 54: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Respuesta 6

A es correcta, las clases y las interfaces estan correctamente implementadas.

B es incorrecta, una clase puede implementar una interface sin ningún problema.

C es incorrecta, una clase abstracta puede existir sin métodos abstractos, además la clase padre implementó el método de la interface

D es incorrecta, una clase abstracta puede sobrescribir un método como una clase normal.

E es incorrecta, una clase puede heredar de una clase e implementar una interface al mismo tiempo, además el método de la interface lo implementó la clase padre.

F es incorrecta, la interface esta correctamente implementada

Esta pregunta cubre el objetivo 1.2

Page 55: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Pregunta 7

What is the result? (Choose all that apply.) A. Compilation succeeds B. Compilation fails with an error on line 6 C. Compilation fails with an error on line 7 D. Compilation fails with an error on line 8 E. Compilation fails with an error on line 9 F. Compilation fails with an error on line 10

4. class Announce {5. public static void main(String[] args) {6. for(int __x = 0; __x < 3; __x++) ;7. int #lb = 7;8. long [] x [5];9. Boolean []ba[];10. enum Traffic { RED, YELLOW, GREEN };11. }12. }

Page 56: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Respuesta 7

A es incorrecta, el código no compila correctamente B es incorrecta, una variable puede empezar con línea al

piso _ C es correcta, una variable no puede empezar con

simbolo #, solo se vale letras, simbolo pesos ($), o línea al piso (_)

D es correcta, un array no puede declararse con el tamaño, debería ser long [] x [];

E es incorrecta, por el mismo motivo del punto anterior F es correcta, un enum no puede declararse dentro de un

método.

Esta pregunta cubre el objetivo 1.3

Page 57: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Pregunta 8

What is the result? (Choose all that apply.) A. TUE B. WED C. The output is unpredictable D. Compilation fails due to an error on line 4 E. Compilation fails due to an error on line 6 F. Compilation fails due to an error on line 8 G. Compilation fails due to an error on line 9

3. public class TestDays {4. public enum Days { MON, TUE, WED };5. public static void main(String[] args) {6. for(Days d : Days.values() )7. ;8. Days [] d2 = Days.values();9. System.out.println(d2[2]);10. }11. }

Page 58: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Respuesta 8

A es incorrecta, pues las posiciones en los arreglos empiezan desde 0

B es correcta, pues es la variable que corresponde a la posicion 2 del array.

C es incorrecta, la salida si se puede predecir D es incorrecta, el enum esta correctamente declarado E es incorrecto, este es un for simplificado F es incorrecto, el método values del enum, retorna un

arreglo de valores G es incorrecto, se puede obtener de esta forma un valor

de un array

Esta pregunta cubre el objetivo 1.3

Page 59: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Pregunta 9

What is the result? A. 13 B. Compilation fails due to multiple errors C. Compilation fails due to an error on line 6 D. Compilation fails due to an error on line 7 E. Compilation fails due to an error on line 11

4. public class Frodo extends Hobbit {5. public static void main(String[] args) {6. Short myGold = 7;7. System.out.println(countGold(myGold, 6));8. }9. }10. class Hobbit {11. int countGold(int x, int y) { return x + y; }12. }

Page 60: Certificación java 6 cap 1

Capítulo 1 – Declaraciones y Control de acceso

Respuesta 9

A es incorrecta, el código no compila bien y jamás da 13

B es incorrecta, solo presenta un error de compilación.

C es incorrecta, el valor está dentro del rango de respuestas.

D es correcta, no se puede llamar un método no estático en un método estático.

E es incorrecta, el método esta correctamente implementado

Esta pregunta cubre el objetivo 1.4