Repaso
Lenguajes de programación III


Teoría OO
1. Qué es la programación orientada a objetos? (Definirlo con sus propias palabras, según la experiencia adquirida
en clase)
2. Qué es un objeto? Qué es una clase? Cual es la relación entre un objeto y una clase.
3. Para que sirven los atributos de una clase ? Que alcance tienen dichos atributos? Cuál es la diferencia entre propiedades y atributos
4. Qué es un método? Cuál es la diferencia entre procedimiento/funcion de programación estructurada contra los métodos en programación OO?
5. Qué es un constructor de una clase? Por qué se pueden definir varios constructores?
6. En la terminología de objetos se habla del termino, enviar un mensaje. En que consiste el envío de mensajes?
7. En qué consiste la relación cliente-proveedor? En que consiste un código fuertemente acoplado?
8. Qué es el encapsulamiento?  Qué es el contrato de la clase? 
9. En qué consiste la delegación?
10. Para que sirve la herencia? Qué prueba se debe aplicar para decidir si una clase debe ser descendiente de otra?
11. En qué consiste la herencia por diferencia? Qué es especializar un método?
12. Qué es una jerarquía de herencia? Para que se utilizan las clases abstractas?
13. En qué consiste la herencia por sustitución? Mencionar dos ejemplos vistos en clase.
14. Que es la herencia simple? Y la herencia múltiple? Cual implementa Java?
15. Qué es el polimorfismo? Que es la ligadura dinámica? Qué es una variable polimórfica?
16. Para que sirve el polimorfimso de inclusión?
17. Que es la sobrecarga de métodos?
18. En qué consiste el diseño por interfases? Que ventaja proporciona utilizar interfases?
19. Qué significa que la meta final de un programa orientado a objetos es que maximice el encapsulamiento, la reutilización y la flexibilidad por medio
de herencia y polimorfismo.
20. Explicar cual es el proceso de desarrollo de software orientado a objetos

Lenguaje Java
1. Indicar y explicar todos los tipos escalares o nativos de Java.
2. Cuál es la sintaxis de declaración de una clase?
3. En Java, cómo se instancia a un objeto? 
4. Qué es una referencia? Qué valores puede tomar una referencia? Que operaciones se pueden aplicar sobre una referencia? Que indica la palabra this?
5. Cual es la diferencia entre una variable local y un atributo? Como se declaran ambos?
6. Cuál es la diferencia entre una propiedad/metodo declarada con static, frente a las declaradas sin este calificador?
7. Cuando una clase en Java no tiene un constructor, que es lo que hace por omisión Java al instanciar a un objeto?
8. Como funciona el operador ternario "?" ? 
9. Cuál es la diferencia de las instrucciones while, for, if, do de Java frente a las de lenguaje C?
10. En Java, al invocar métodos, el paso de parámetros es por valor o por referencia?
11. Como se declara en Java a un método?
12. Explicar la diferencia entre calificar a un atributo/metodo de la clase como private, public o no calificarlo.
13. Cuando una clase se califica public, en que afecta? Si no se califica, que pasa?
14. Por que se presenta una excepción de tipo java.lang.NullPointerException?
15. Como se declara un arreglo? Cómo se crea un arreglo?. Que reglas se deben considerar para manipularlos? Cuando un arreglo contiene referencias
a un arreglo, que valor tiene cada celda al momento de crearlo? Cómo se obtiene la longitud de un arreglo?
16. Qué es un paquete para Java? Mencionar tres paquetes vistos en clase.
17. Cuando un método necesita disparar una excepción, cómo se debe declarar? Para que sirven las palabras throw y throws?
18. Como se controlan las excepciones? Cuál es la diferencia entre la clase Exception  y RuntimeException?
19. Que es un StackTrace, cuando se dispara una excepcion?
20. Con que palabra reservada se indica herencia?  Que consideraciones se deben seguir en los constructores de las clases que hacen herencia?
21. Para que sirve el calificador protected? Como se redefine un método de una clase ancestro?
22. Cual es el significado de la palabra reservada super? Cómo se utiliza? Cuál es el nombre de la clase ancestro de todas las clases Java?
23. Cuando una clase se quiere "congelar" desde la perspectiva de herencia, que significa esto? Con que palabra reservada de Java se aplica?
24. Como se declaran constantes en Java?
25. Como se declaran las interfases en Java. Como se relacionan las clases con las interfases? Se puede instanciar una interfase?
26. Cuál es la diferencia entre una clase abstracta y una interfase?
27. Como se concatenan las cadenas de caracteres? Como se comparan entre sí? 
28. Cómo se declarara un arreglo bidimensional? Cómo se puede interpretar un arreglo bidimensional, tridimensional,n-dimensional?


Práctica Java
1. Corregir un programa con errores
2. Explicar el programa y decir que resultados arroja
3. Completar el programa, poniendo las instrucciones que faltan.
4. Ordenar las instrucciones que se indican, para construir el programa y se llegue a un resultado


Compilación, ejecución y pruebas unitarias
0. Qué versión de JDK se está utilizando en clase
1. Como se compila un programa.  Para que sirve la opcion -d y -cp
2. Como se ejecuta un programa Java que tiene a una rutina main. 
3. Para que sirve el classpath? En la ejecución de un programa Java, como se fija? Que se indica en el classpath?
4. Qué es un archivo jar? Con qué comando se genera?
5. Con que comando se genera la documentación?
6. Como se ejecutan las pruebas unitarias con el marco de desarrollo JUnit
7. Cual es la función del recolector de basura (Garbage Collector)

Se puede estudiar del libro "Java para estudiantes" de Douglas Bell, cap. 4,5,7,8,9,11,12,13,14,16,21,26,27,28

    Source: geocities.com/gusdelact/cib4122006

               ( geocities.com/gusdelact)