1. Realizado por: Raúl Ernesto Triviño
Alvarado
CERTIFICACIÓN JAVA 6
Capítulo 1 – Declaraciones y Control de
acceso
2. Identificadores y java Beans
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.
Capítulo 1 – Declaraciones y Control de acceso
3. 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.
Capítulo 1 – Declaraciones y Control de acceso
4. Identificadores y java Beans
Variables legales Variables ilegales
int _a; int :b;
int $c; int -d;
int ______2_w; int e#;
int _$; int .f;
int int 7g;
this_is_a_very_detailed_name_for_an_identifier
;
Capítulo 1 – Declaraciones y Control de acceso
5. Identificadores y java Beans
Listado de palabras reservadas en java
Capítulo 1 – Declaraciones y Control de acceso
6. 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
Capítulo 1 – Declaraciones y Control de acceso
7. 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().
Capítulo 1 – Declaraciones y Control de acceso
8. Declaración de clases
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).
Capítulo 1 – Declaraciones y Control de acceso
9. 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 Control de acceso no publicas con el
Capítulo 1 – Declaraciones y
publicas y
mismo nombre.
10. 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.
Capítulo 1 – Declaraciones y Control de acceso
11. 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.
Capítulo 1 – Declaraciones y Control de acceso
12. 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 exam.stuff;
package cert;
import cert.Beverage;
class Beverage { }
class Tea extends Beverage { }
Compilan?, Arroja error en ejecución?
Capítulo 1 – Declaraciones y Control de acceso
13. 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.
Capítulo 1 – Declaraciones y Control de acceso
14. 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.
Capítulo 1 – Declaraciones y Control de acceso
15. 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? 1 – Declaraciones y Control de acceso
Capítulo
16. Declaración de interfaces
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.
Capítulo 1 – Declaraciones y Control de acceso
18. 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 interface1debe ser declarada con la palabra
Capítulo – Declaraciones y Control de acceso
interface
19. Declaración de interfaces
Estas dos declaraciones por lo tanto son
iguales public abstract interface Rollable { }
public interface Rollable { }
Estas bounce();
public declaraciónes son válidas:
void
void bounce();
abstract void bounce();
public abstract void bounce();
abstract public void bounce();
Estasvoid bounce(); // final and abstract can never be used
final
no son válidas
// together, and abstract is implied
static void bounce(); // interfaces define instance methods
private void bounce(); // interface methods are always public
protected void bounce(); // (same as above)
Capítulo 1 – Declaraciones y Control de acceso
20. 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
Capítulo 1 – Declaraciones y Control de acceso
21. Declarando miembros de una
clase
Responde a 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 that declares and uses a variable-length argument
list.
Capítulo 1 – Declaraciones y Control de acceso
22. 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:
Capítulo 1 – Declaraciones y Control de acceso
23. 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
Capítulo 1 – Declaraciones y Control de acceso
correrlo
24. 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
Capítulo 1 – Declaraciones y Control de acceso
25. 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 ytipos de accesopues arroja error de
Capítulo 1 – Declaraciones Control static
compilación.
26. 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.
Capítulo 1 – Declaraciones y Control de acceso
27. 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.
Capítulo 1 – Declaraciones y Control de acceso
28. 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
Capítulo 1 – Declaraciones y Control de acceso
29. 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 abstract Constructores ilegales
Constructores Legales
Capítulo 1 – Declaraciones y Control de acceso
30. 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
Capítulo 1 – Declaraciones y Control de acceso
31. 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)
Capítulo 1 – Declaraciones y Control de acceso
32. Declaración de variables
Variables de instancia
Pueden ser marcadas como final, transient,
abstract, syncronized, strictfp, native, o static.
Capítulo 1 – Declaraciones y Control de acceso
33. 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
refiereCapítulo 1 – Declaraciones esto existe la sentencia this.
el sistema, por y Control de acceso
34. Declaración de variables
Declaración de arrays
Los arrays se pueden declarar así:
Arrays construidos legalmente Arrays construidos ilegalmente
Variables final
Una variable final no permite reasignar el valor de
la variable una vez se a asignado.
Capítulo 1 – Declaraciones y Control de acceso
35. Declaración de variables
Comportamiento de Comportamiento de un Comportamiento de
una clase final método final una variable final
Capítulo 1 – Declaraciones y Control de acceso
36. 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.
Capítulo 1 – Declaraciones y Control de acceso
37. 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
Capítulo 1 – Declaraciones y Control de acceso
38. 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
Capítulo 1 – Declaraciones y Control de acceso
40. 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
Capítulo 1 – Declaraciones y Control de acceso
43. 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
Capítulo 1 – Declaraciones y Control de acceso
44. 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
Capítulo 1 – Declaraciones y Control de acceso
45. Respuesta 2
Which method names follow the JavaBeans
standard? (Choose all that apply.)
A. addSize
B. getCust
C. deleteRep
D. isColorado
E. putDimensions
Capítulo 1 – Declaraciones y Control de acceso
46. 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
Capítulo 1 – Declaraciones y Control de acceso
Esta pregunta cubre el objetivo 1.4
47. Pregunta 3
1. class Voop {
2. public static void main(String [] args) {
3. doStuff(1);
4. doStuff(1,2);
5. }
6. // insert code here
7. }
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) { }
Capítulo 1 – Declaraciones y Control de acceso
48. 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
Capítulo 1 – Declaraciones y Control de acceso
49. Pregunta 4
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. }
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
Capítulo 1 – Declaraciones y Control de acceso
50. 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.
Capítulo 1 – Declaraciones y Control de acceso
Esta pregunta cubre el objetivo 1.3
51. Pregunta 5
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. }
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
Capítulo 1 – Declaraciones y Control de acceso
52. 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
Capítulo 1 – Declaraciones y Control de acceso
53. Pregunta 6
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(); }
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
Capítulo 1 – Declaraciones y Control de acceso
54. 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
Capítulo 1 – Declaraciones y Control de acceso
55. Pregunta 7
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. }
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
Capítulo 1 – Declaraciones y Control de acceso
56. 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
Capítulo 1 – Declaraciones y Control de acceso
57. Pregunta 8
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. }
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
Capítulo 1 – Declaraciones y Control de acceso
58. 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
Capítulo 1 – Declaraciones y Control de acceso
59. Pregunta 9
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. }
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
Capítulo 1 – Declaraciones y Control de acceso
60. 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
Capítulo 1 – Declaraciones y Control de acceso