domingo, 1 de noviembre de 2015

SOLUCIÓN DEL EXAMEN DE MEDIO CURSO

1.- ¿Qué entiendes por entornos de desarrollo (IDE)? Mencione alguno de ellos.

IDE (Integrated Development Environment) que en español significa Entorno de Desarrollo Integrado, es un programa informático que nos permite el desarrollo de software en un solo lenguaje de programación o en varios de ellos, está compuesto por un conjunto de herramientas:
-          Un compliador
-          Un editor de código fuente
-          Un depurador
-          Un editor de texto
-          Herramientas de automatización

Ejemplos: NetBeans, Eclipse, Dev-C++, Xcode, Visual Studio, entre otros.

2.- Se pide crear clase y objetos de los siguientes datos:

a. Juan, 23, Sistemas

b. Luisa, 21, Contabilidad


CLASE
public class Alumno {
    String nombre;
    int edad;
    String facultad;

    public Alumno(String nombre, int edad, String facultad) {
        this.nombre = nombre;
        this.edad = edad;
        this.facultad = facultad;
    }
}

OBJETOS
public static void main(String[] args) {
        Alumno a1=new Alumno("Juan",23,"Sistemas");
        Alumno a2=new Alumno("Luisa",21,"Contabilidad");
    }   


3.- Definir Wrappers y realizar un ejemplo.

Llamados también clases envolventes, provee a los datos primitivos un envoltorio que permita tratarlos como objetos, de esta manera los datos primitivos pueden tener comportamientos que sólo le corresponden a los objetos.
Otra función de las clases envolventes son las conversiones: a otro tipo de datos primitivos, a cadenas y a otras bases numéricas.
Wrappers: Byte, Short, Integer, Long, Float, Double, Boolean, Character.

Ejemplo 1: Conversión de base 2 a base 10:

public static void main(String[] args) {
        long numero = Long.parseLong("1101011", 2);  
        System.out.println(numero); //Muestra 107
    }

Ejemplo 2: Conversión de un String(cadena) al tipo de dato primitivo int:

public static void main(String[] args) {
        String a="9", b="5";
        int suma;
        suma=Integer.parseInt(a)+Integer.parseInt(b);
        System.out.println(suma); //Muestra 14
    }

4.- Definir tipos de variables y realizar un ejemplo.

- VARIABLES DE INSTANCIA.- Son las variables que se definen dentro de la clase, estas variables cambiarán cada vez que se cree un nuevo objeto de la clase. Ejemplo:

public class Auto{
            String color;    //Variable de instancia
}
Auto a= new Auto;
a.color=”Azul”;

VARIABLES DE CLASE.- Son aquellas variables que tienen un solo valor para toda la clase, este tipo de variables deben ser definidas como “static”, para que no sea posible crear un nuevo valor con cada instancia de la clase. Ejemplo:

public class Alumno{
            static int contador;     //Variable de clase
            public Alumno() {
                        contador++;   //Aumenta en uno cada vez que se instancie la clase
 }
public static int getContador() {
            return contador;
             }
}
public static void main(String[] args) {
        Alumno a1= new Alumno();
        Alumno a2 = new Alumno();
        Alumno a3 = new Alumno();
        Alumno a4 = new Alumno();

        System.out.println(Alumno.getContador()); //Muestra 4
    }
VARIABLES LOCALES.- Son aquellas variables que se declaran, inicializan y se destruyen  dentro de un método. Este tipo de variables deben ser inicializadas con algún valor, no pueden usar modificadores de acceso pero sí pueden ser declaradas como constantes. Ejemplo:
public void suma(int a, int b){
int suma=0;    //Variable local

suma= a + b;
System.out.println(“La suma es: ”+suma);
 }

5.- ¿Qué consideraciones debe tenerse en cuenta en una clase abstracta?

  • Usa la palabra reservada “abstract”.
  • No se puede instanciar.
  • Se puede heredar. Las clases que hereden la clase abstracta deben implementar todos los métodos abstractos.
  • Contiene al menos un método abstracto.

6.- ¿Qué consideraciones debe tenerse en cuenta en una interface?

  • Usa la palabra reservada “implements”.
  • No se puede instanciar.
  • Todos sus variables son constantes, sin necesidad de poner la palabra clave “final”.
  • Sus métodos son abstractos, públicos y no están implementados.

7.- Cuando utilizamos static y final.



a) static: los atributos miembros de una clase pueden ser atributos de clase o atributos de instancia; se dice que son atributos de clase si se usa la palabra clave static: en ese caso la variable es única para todas las instancias (objetos) de la clase (ocupa un único lugar en memoria). A veces a las variables de clase se les llama variables estáticas. Si no se usa static, el sistema crea un lugar nuevo para esa variable con cada instancia (la variable es diferente para cada objeto). En el caso de una constante no tiene sentido crear un nuevo lugar de memoria por cada objeto de una clase que se cree. Por ello es adecuado el uso de la palabra clave static. Cuando usamos “static final” se dice que creamos una constante de clase, un atributo común a todos los objetos de esa clase.



b) final: en este contexto indica que una variable es de tipo constante: no admitirá cambios después de su declaración y asignación de valor. final determina que un atributo no puede ser sobreescrito o redefinido. O sea: no funcionará como una variable “tradicional”, sino como una constante. Toda constante declarada con final ha de ser inicializada en el mismo momento de declararla. final también se usa como palabra clave en otro contexto: una clase final (final) es aquella que no puede tener clases que la hereden.


8.-Java realiza el paso por valor o paso por referencia, explicar.
Entendemos como asignación de variables por valor cuando se hace una copia del valor de una variable a otra. Esto lo vemos así:

public static void main(String[] args) {
        int a = 10; //es una variable
        int b = 20; //es otra variable
        int c = a;  //la variable "c" tiene la copia del valor de "a"
        a = 30; //"a" tiene otro valor
        System.out.format("a=%d, b=%d, c=%d", a, b, c); //imprime a=30, b=20, c=10
    }
Esta asignación también aplica para los parámetros de funciones.

public class PruebaParametrosValorApp {

    public static void main(String[] args) {
        int a = 10, b = 20, c = 30;  //declaro y asigno valores
        System.out.println("Valores antes de cambiar");
        System.out.format("a=%d, b=%d, c=%d\n", a, b, c); //imprime a=10, b=20, c=30
        cambiandoValores(a, b, c); //cambia de valores

        System.out.println("Valores después de cambiar");
        System.out.format("a=%d, b=%d, c=%d\n", a, b, c); //imprime a=10, b=20, c=30
    }

    private static void cambiandoValores(int a, int b, int c) {
        a = 100;
        b = 200;
        c = 300;
        System.out.println("Valores cambiados en el método");
        System.out.format("a=%d, b=%d, c=%d\n", a, b, c); //imprime a=20, b=30, c=10
    }
}

 El resultado es: 

Valores antes de cambiar
a=10, b=20, c=30
Valores cambiados en el método
a=100, b=200, c=300
Valores después de cambiar
a=10, b=20, c=30

Entonces si se asigna otro valor a las variables desde dentro de un método, estos nuevos valores no afectan a las variables originales .


No hay comentarios:

Publicar un comentario