1
« en: Viernes 3 de Noviembre de 2006, 16:29 »
Hola. Les cuento que tuve el segundo examen de Java y me falto un punto para aprobar. Me quedaron dudas de cuales fueron mis errores asi que les dejo unas dudas q tengo a ver si me pueden ayudar para recuperar.
-----------------------------------------------------------------------------------------------
1- Cuál de las siguientes afirmaciones acerca de las variables estáticas (static) es correcta?
Una vez que se les asigna un valor este no puede cambiar.
Las variables estáticas son también llamadas variables de clase
Sólo variables de tipos primitivos pueden ser definidas como estáticas
-----------------------------------------------------------------------------------------------
2- Cuál de las siguientes afirmaciones es falsa acerca de las variables estáticas de una clase Java?
Son compartidas por todas las instancias de esta clase
Una variable estática puede tener un valor distinto para cada instancia de la clase
Cada instancia de esta clase, puede implementarlos a su manera
Pueden ser accedidas sin necesidad de instanciar un objeto de la clase
------------------------------------------------------------------------------------------------
3- A un programador le pidieron que implemente un programa, que contenga una variable llamada mes (de tipo int) y que según el valor que tenga esta variable, imprima el nombre del mes que corresponde. Es decir: Si mes vale 1, debe imprimir Enero, Si mes vale 2, debe imprimir Febrero, y así sucesivamente. Si en cambio mes toma un valor que no está entre 1 y 12, debería imprimir un mensaje de error. Este es el programa que implementó:
public class Meses {
public static void main(String[] args) {
int mes = 8;
switch (mes) {
case 1:
System.out.println("Enero");
case 2:
System.out.println("Febrero");
case 3:
System.out.println("Marzo");
case 4:
System.out.println("Abril");
case 5:
System.out.println("Mayo");
case 6:
System.out.println("Junio");
case 7:
System.out.println("Julio");
case 8:
System.out.println("Agosto");
case 9:
System.out.println("Septiembre");
case 10:
System.out.println("Octubre");
case 11:
System.out.println("Noviembre");
case 12:
System.out.println("Diciembre");
default:
System.out.println("No es un mes válido");
}
}
}
¿Funcionará este programa correctamente si lo vamos probando con distintos valores para la variable mes?
Si, El programa funcionará correctamente.
No, Aún cuando imprima el nombre correcto del mes, el programa siempre imprime el mensaje de error, pues está puesto como caso default
No, Este programa compila sin errores pero funciona mal porque el programador olvidó los break
----------------------------------------------------------------------------------------------
4- Dadas las siguientes clases Fecha y TestAumentos
public class Fecha {
public int dia;
public int mes;
public int año;
public int getAño() {
return año;
}
public void setAño(int año) {
this.año = año;
}
public int getDia() {
return dia;
}
public void setDia(int dia) {
this.dia = dia;
}
public int getMes() {
return mes;
}
public void setMes(int mes) {
this.mes = mes;
}
public void display() {
System.out.println("dia: "+dia+" mes: "+ mes +" año: " +año );
}
}
public class TestAumentos {
public static void aumentaDia(Fecha f) {
f.dia++;
}
public static void aumentaValor(int i) {
i++;
}
public static void main(String[] args) {
Fecha miFecha = new Fecha();
miFecha.setDia(10);
miFecha.setMes(6);
miFecha.setAño(2006);
int x = 5;
aumentaDia(miFecha);
aumentaValor(x);
System.out.println("miFecha:");
miFecha.display();
System.out.println("valor: ");
System.out.println(x);
}
}
Qué sucede al ejecutar la clase TestAumentos?
Se imprime:
miFecha:
dia: 11 mes: 6 año: 2006
valor:
6
Se imprime:
miFecha:
dia: 11 mes: 6 año: 2006
valor:
5
Se imprime:
miFecha:
dia: 10 mes: 6 año: 2006
valor:
6
Se imprime:
miFecha:
dia: 10 mes: 6 año: 2006
valor:
5
Eso es todo
Saludos.....................