Académique Documents
Professionnel Documents
Culture Documents
Datos generales
Capítulo
Páginas 34 - 65 Horas de estudio empleadas para el desarrollo del contenido 14 horas
Propósito:
El propósito de éste capítulo es compreder los conceptos claves que existen en los lenguajes
de programación en general, reconocer la importancia que tienen los conceptos de legibilidad
de cualquier programa que construya y aplicar las convenciones de código recomendadas
para el lenguaje de programación Java.
Conceptos clave:
* Aplicación Java: Es un programa que se ejecuta utilizando el intérprete Java. Existen 2 tipos de
programas en Java: aplicaciones y applets.
* Declaración de clase: Todo programa en Java consiste de, cuando menos, una declaración de
clase definida por el programador.
* Salida formateada: Permite mostrar datos con formato. En Java se utiliza la sentencia printf. El
capítulo 29, que se encuentra en el CD del libro base puede encontrar una explicación detallada
de éste tema.
* Palabra clave (keyword) o palabra reservada: Son de uso exclusivo para lenguaje de programación
y no pueden ser empleadas por el programador para declaración de: clases, variables, constantes,
interfaces, etc.
* Sentencia: Una expresión que puede es parte de un programa y que cumple con una tarea
determinada. También suele llamarse instrucción.
* Identificador: Una serie de caracteres que pueden ser letras, dígitos, guiones bajos (_) y signos de
dólar ($) que sirven para identificar las entidades de un programa (clases, variables, constantes,
interfaces, etc.). En Java no puede iniciar con un número, ni con espacios en blanco en alguna
posición. Java es sensible a mayúsculas y minúsculas es decir considera identificadores diferentes
a estudiante y Estudiante, aunque ambos son válidos.
* Secuencias de escape: Una combinación del carácter de escape (en Java: \) con un carácter para
imprimir “algo” especial.
* Operador de asignación: Sirve para asignar un valor a una variable. En Java el signo igual (=).
Se evalúa primero todo lo que está a la derecha del signo igual y se asigna a la variable que se
encuentra a la izquierda.
* Precedencia de operadores: Orden según el cual todos los operadores son ejecutados. Todos
los operadores se evalúan de izquierda a derecha.
Recuerde:
¸ El nombre del archivo en el cual almacene un programa escrito en Java debe ser igual al
nombre de la clase pública que ha definido.
¸ Una llave izquierda { y una llave derecha } delimitan el cuerpo de una declaración de:
una clase y de un método.
¸ Los tipos de datos primitivos en Java son: bolean, char, byte, short, int, long, float y
double.
Temas adicionales:
El método main. Este método se utiliza como punto de entrada para la ejecución de programas escritos
en Java, esto no implica de ninguna manera, que todas las clases (programas Java) deban incluir éste
método; únicamente aquellas clases que son ejecutables deben hacerlo. Existen otro tipo de clases que
no contendrán este método, pero que son clases útiles para realizar otro tipo de tareas internas dentro
de una aplicación. Igual sucede con la GUI no todas las clases contienen interfaz gráfica de usuario.
El API de Java. Este conjunto de clases predefinidas y empaquetadas con el JDK las podemos utilizar
en cualquier momento. Existe una gran variedad de clases ya pre-construidas que facilitan la vida a
los programadores, deben emplearse y no tratar de inventar la rueda. Existe una documentación sobre
el API, que se conoce como la especificación del API que se ha adjuntado al CD que acompaña a
ésta guía. La puede encontrar en: <UNIDAD_CD>\JDK6\jdk-1_6_0_doc.zip, en posteriores capítulos
estudiaremos brevemente dicha documentación.
Durante estos primeros capítulos se mencionará en varias ocasiones los términos: objetos y métodos,
que serán cubiertos en el segundo bimestre, pero es necesario que se familiarice con ellos por lo que
es recomendable realizar el estudio del caso práctico que se desarrolla en el libro guía, que en un
resumen muy breve se trata de la construcción de un simulador utilizando técnicas de análisis, diseño
y construcción orientada a objetos.
Documentación adicional:
¸ Foro. El tema puede encontrarlo en las evaluaciones a distancia del primer bimestre y se
planteará en el foro en el momento adecuado.
Actividades
Resuelva los ejercicios de Auto evaluación (pag. 68) del Capítulo 2 del libro base
[DD2008]
1. Suponga que existe un programa que contiene una clase pública denominada Estudiante. ¿Cuál
debe ser el nombre y la extensión del archivo en donde se almacenará?
a. ( ) Estudiante.txt
b. ( ) Estudiante.class
c. ( ) Estudiante.java
2. Señale los identificadores que son válidos en Java para clases y variables. En caso de no ser válidas
indique el porqué:
a. Clases:
i. ( ) Estudiante
ii. ( ) GerenteGeneral
iii. ( ) $Persona
iv. ( ) Cuentas_Por_Cobrar
v. ( ) Public
b. Variables:
i. ( ) B
ii. ( ) Area
iii. ( ) montoTotal
iv. ( ) __
v. ( ) Class
3. Señale con una R para los operadores relacionales y de igualdad, con una A para los operadores
aritméticos que maneja Java y con una X si no aplica ninguno de los anteriores:
a. ( ) x
b. ( ) %
c. ( ) =
d. ( ) ¡=
e. ( ) ==
f. ( ) ≤
g. ( ) >=
4. Suponga que tiene un programa escrito en Java que declara 2 variables de tipo entero a y b que
se les asigna los valores 10 y 3 respectivamente. Existe una tercera variable c que se le asigna el
siguiente valor: c = a / b; ¿Cuál es el valor de c?
a. ( ) 3.33
b. ( ) 3
c. ( ) 0
5. Analice el siguiente programa y señale los números de líneas en donde existan errores.
Datos generales
Propósito:
Conceptos clave:
Para éste capítulo es necesario que realice una lectura del capítulo 3 del libro, en donde
se hace una introducción a las clases y los objetos. Es fundamental que lea y comprenda
los conceptos que se muestran en el capítulo 3, debido a que son fundamentales para
el desarrollo dela materia.
El propósito de este capítulo es aprender a resolver problemas y verlos plasmados como un programa
escrito en Java. Para lo cual es necesario aprender a utilizar técnicas de programación estructura,
especialmente las estructuras de control, ciclos repetitivos y demás artilugios de programación que nos
ayudarán a resolver problemas de bajo y mediano nivel de complejidad (los de complejidad alta, serán
abordados en próximas materias). Las técnicas de programación estructurada le ayudarán en un futuro
en la construcción y manipulación de Objetos.
* Cuadros de dialogo: Son utilizados por muchos programas y son ventanas pequeñas que sirven
para mostrar mensajes al usuario o solicitar ingreso de información. Revise la página 96 del libro
base.
* Algoritmos: Es una serie de acciones que se ejecutan en un orden específico para resolver un
problema. Existe algoritmos no computacionales y computacionales.
* Pseudocódigo: Lenguaje informal que ayuda a los programadores a desarrollar algoritmos sin
tener que preocuparse por la sintaxis de un lenguaje. No es un lenguaje de programación de
computadoras, pero ayuda al programador a organizar un programa antes de intentar escribirlo
en un lenguaje de programación.
* Tipos de datos primitivos: Java cuenta con los siguientes tipos de datos primitivos9:
Rango negativo:
-3.4028234663852886E+38 a
-1.40129846432481707E-45
float 32
Rango positivo:
1.40129846432481707E-45 a
3.4028234663852886E+38
Ranto negativo:
-1.7976931348623157E+308 a
-4.94065645841246544E-324
double 64
Rango positivo:
4.94065645841246544E-324 a
1.7976931348623157E+308
* Transferencia de control: Consiste en especificar que la siguiente instrucción a ejecutarse tal vez
no se la siguiente en la secuencia. Se consigue con tres sentencias de control:
¸ Estructura de secuencia. Esta estructura está integrada en Java, la computadora ejecuta las
instrucciones de Java una después de otra, en el orden que están escritas.
¸ Estructura de selección. Se utilizan para elegir entre los cursos alternativos de acción. Java
cuentas con tres estructuras de este tipo: if, if…else y switch.
¸ Estructura de repetición. Java cuenta con tres10 estructuras de este tipo: for, while,
do…while.
Todos los programas pueden escribir utilizando éstas tres estructuras, combinándolas de
las dos maneras apilándolas (escribir estructuras después de otras) y anidándolas (escribir
estructuras dentro de otras).
9. También existen los tipos de datos complejos haciendo referencia a las clases de la POO.
10. En la última versión de Java existe una variación que simplifica el ciclo for, que suele llamarse for in.
* Bloque de código: Una o más sentencias que están encerradas entre llaves ({ y })
* Estructura de selección if simple: Ejecuta las instrucciones que están dentro del bloque if si
la condición es verdadera, si la condición se cumple. Caso contrario se ignora el bloque if y se
ejecuta en orden la siguiente instrucción.
* Estructura de selección if…else: Permite especificar una acción a realizar cuando la condición es
verdadera y otra distinta cuando la condición es falsa. Es decir ejecuta el bloque if si la condición
se cumple, caso contrario se ejecuta el bloque else. Cuidado con el problema del else suelto,
para evitarlo siempre se debe emplear llaves, aunque exista una sola sentencia, para delimitar
cada bloque.
Existe el operador condicional (?:) también llamado if…else de una sola línea, es un operador
ternario.
¸ Contador: También llamado variable de control, que permite controlar el número de veces
que debe repetirse la ejecución del bloque de instrucciones del while. A esta repetición
controlada comúnmente se la llama repetición definida. Cuando se trabaja con un contador
se debe considerar lo siguiente: existe una variable que es de control, el valor inicial de
la variable de control, la cantidad de incremento / decremento con la que se modifica la
variable de control y la condición que evalúa el valor final de la variable de control.
¸ Valor centinela: También llamado valor de señal, valor de prueba o bandera. Se utiliza
para indicar el fin de la introducción de pasos. A ésta repetición se la llama repetición
indefinida.
* Formato de números: Especificar la forma en que se presentarán los números, es decir, cuántos
decimales se presentaran, cuántos dígitos de la parte entera se presentan, como mínimo. En Java
se utiliza el objeto DecimalFormat que se encuentra en el paquete java.text para dar formatos a
números basándose en un patrón determinado.
* Conversión de tipos: Transformar de un tipo de dato hacia otro tipo de dato, utilizando el
operador unario de conversión de tipo, el mismo que se forma colocando paréntesis alrededor
del nombre de un tipo. Éste operador se asocian de izquierda a derecha. Ejemplo es necesario
transformar un entero a un número real, En Java se puede hacer así: (double)valorEntero, de
donde (double) es el operador de conversión y valorEntero es una variable de tipo int.
* Instrucción de repetición for: Es un ciclo repetitivo que implementa los detalles de la repetición
controlada por contador en una sola línea de código. La variable de control se declare e inicializa,
a continuación, el programa comprueba la condición de continuación de ciclo, después de
ejecutar el cuerpo del ciclo, el programa incrementa la variable de control y realiza la prueba de
control de ciclo nuevamente, hasta que la variable de control no pase la prueba.
* Instrucción for in (for mejorado): Es un ciclo repetitivo que no utiliza un contador. Su uso es
indicado para colecciones de objetos, como por ejemplo: arreglos, matrices, listas, etc. En el
punto 7.6 puede ver un detalle de éste “nuevo” ciclo repetitivo..
* Configuración regional: Es característica que permite los números, monedas, etc. se presenten
según las normas y reglas propias de cada país. En Java se utiliza la clase Locale.
* Instrucción de selección múltiple switch: Se utiliza para realizar distintas acciones, con base
a posibles valores de una variable o expresión entera. Consiste en un bloque que contiene una
secuencia de etiquetas case y caso default opcional. Cuando el flujo de control llega a switch el
programa evalúa la expresión que va después de la palabra switch. Lo compara con cada una
11. Según el tamaño en bits que se mostró en la Tabla 1 Tipos de datos primitivos en Java
de las etiquetas case y si encuentra alguna se ejecuta las sentencias de esa etiqueta case, sino se
ejecuta la etiqueta default. Cada etiqueta case contiene una sentencia break que hace que el
bloque switch termine y se continúe con la siguiente instrucción.
* Sentencias break y continue: Estas sentencias alteran el flujo de control especialmente en los
ciclos repetitivos.
¸ break: Permite que un programa se salga de los ciclos while, for, do…while o switch en
el cual aparece. Existe sentencias break etiquetadas que permite salir de estructuras de
control anidadas, pasando el control del programa a la instrucción que se encuentra luego
de la llave de cierre del bloque etiquetado.
¸ continue: Procede con la siguiente iteracción (repetición) del ciclo while, for o do…while,
saltándose las sentencias que se encuentran luego de la sentencia continue. De igual forma
existen sentencias continue etiquetadas que permiten saltar las sentencias que están bajo
ella y el control del programa se ubica al inicio de la etiqueta.
Es en verdad muy complejo el tratar de determinar cuando utilizar uno u otro ciclo repetitivo,
especialmente porque existen equivalencias entre ellos. Lo que existen son recomendaciones y
nociones generales de cuando usar alguno de ellos. Así se puede decir: Un ciclo for se puede utilizar
cuando se sabe a ciencia cierta cuántas iteracciones son necesarias realiza y sobre todo cuando la
variable que hace las veces de contador no debe ser modificada en alguna sentencia que forma el ciclo
repetitivo. Se recomienda usar el ciclo while, cuando la variable de control de ciclo debe incrementarse/
decrementarse según una o varias condiciones. Debe utilizar un ciclo do...while, cuando necesita
ejecutar, las sentencias del ciclo repetitivo, por lo menos una vez. Finalmente utilizará el for in para
tareas de consulta de datos, más no para asignación.
Recuerde:
¸ Cuando trabaje con ciclos repetitivos while do…while, debe utilizar una variable de
control. Debe ser precavido con ella, especialmente con el incremento o decremento que
debe sufrir ésta variable para que el ciclo pueda terminar.
¸ No olvide incluir en cada bloque de las etiquetas case de una sentencia switch la instrucción
break.
Temas adicionales:
Gráficamente:
DATOS
DATOS SALIDA
ENTRADA
PROCESO
Existen diferentes técnicas que permiten determinar de distinta manera estas partes esenciales
de cualquier problema. Algunos usarán diagramas de actividades, otros diagramas de flujo, etc. Lo
importante es que entendiendo estas partes es posible analizar, diseñar, construir en un lenguaje de
programación cualquier problema.
Una vez que se ha construido el diagrama de flujo es necesario realizar pruebas de la solución, estas
pruebas se realizan de manera manual y generalmente se las denomina: prueba manual o corrida en
frío. Para realizar el programador escoge un conjunto de datos de entrada, ejecutando manualmente
cada sentencia del programa fuente (escrito en pseudocódigo o diagrama de flujo) y verificando que los
resultados obtenidos son los esperados de acuerdo al conjunto de datos de entrada.
Series numéricas, comúnmente se utilizan este tipo de problemas para realizar prácticas de los conceptos
de estructuras aprendidas. Para poder resolver este tipo de problemas se debe aplicar el principio de
divide y vencerás, es decir hacer más pequeño el problema, generalmente debemos analizar a detalle
cada miembro de la serie e identificar que operaciones debo realizar para obtener ese elemento,
generalmente operaciones como determinar si es primo, perfecto, factorial, potenciación, etc.
Documentación adicional:
Actividades
Resuelva los ejercicios de Auto evaluación (pag. 155 y 205) de los Capítulos 4 y 5 del
libro base [DD2008]
Construya elementos de interfaz gráfica de usuario como se muestra en los ejercicios desarrollados en
el libro.
1. Construya un programa que permita a un usuario ingresar 3 números y determinar cual de ellos
es mayor.
2. Construya un programa que le presente en pantalla las fórmulas para calcular el área y perímetro
de un triángulo, rectángulo, y círculo. El programa debe presentar un menú y debe permitir al
usuario ingresar un número que corresponda a la figura seleccionada.
3. Elabore 3 programas distintos que permitan presentar en pantalla los primeros 25 números pares.
Cada programa debe ser desarrollado utilizando los ciclos for, while y do…while.
4. Diseñe un programa para convertir una longitud dada en metros a sus equivalentes en
centímetros, pies, pulgadas y yardas. Considere que: 1 metro = 100 centímetros, 1 pulgada =
2.54 centimetros, 1 pie = 12 pulgadas, 1 yarda = 3 pies.
5. Una institución benéfica europea ha recibido tres donaciones en soles, dolares y marcos. La
donación será repartida en tres rubros: 60% para la implementación de un centro de salud,
30% para un comedor de niños y el resto para gastos administrativos. Diseñe un algoritmo y un
programa que determine el monto en euros que le corresponde a cada rubro. Considere que: 1
dólar = 3.52 soles, 1 dólar = 2.08 marcos, 1 dólar = 1.07 euros.
6. En una competencia atlética de velocidad el tiempo se mide en minutos, segundos y centésimas
de segundo y, el espacio recorrido se mide en metros. Diseñe un algoritmo y un programa para
determinar la velocidad promedio de un atleta en km/hr. Considere que: 1 hora = 60 minutos, 1
minuto = 60 segundos, 1 segundo = 100 centésimas de segundo, 1 kilómetro = 1000 metros.
7. Calcular el tiempo equivalente en horas, minutos y segundos a un número de segundos leído
8. Construya un programa que permita ingresar un número y luego presente en pantalla si el número
es perfecto.
9. Elabore un programa que genere los 12 primeros elementos de la serie de fibonacci. Para generar
los elementos de la serie de fibonacci considere lo siguiente:
a. El siguiente elemento de la serie depende de la suma de los 2 anteriores.
b. Los primeros elementos no se generan según (a) sino que son valores iniciales.
10. Calcule el resultado de sumar los n primeros términos de las siguientes series:
Datos generales
[DD2008] Métodos, específicamente el punto 6.3 Métodos static, campos static y la clase
Texto base
Math
Capítulo
Páginas 214 - 219 Horas de estudio empleadas para el desarrollo del contenido 7 horas
Propósito:
El propósito de éste capítulo es aprender a utilizar la documentación que Java posee y explorar
las herramientas incorporadas en Java que ayudan a los programadores en sus labores.
Conceptos clave:
Antes que un capítulo completo esta sección hablará y mostrará el uso de varios métodos
que permiten trabajar con valores numéricos.
¸ Clases estáticas: Clases que pueden llamarse sin la necesidad de crear una instancia de
las mismas. Ejemplo: la clase Math.
¸ Argumentos: Son los valores que se pasan a los métodos y que van encerrados entre
paréntesis.
Recuerde:
* No invente la rueda, utilice los métodos ya creados.
* Debe incluir los argumentos en el orden especificado por el método, caso contrario se produce
un error de compilación.
Temas adicionales:
Las variables de tipo String corresponden a un tipo de dato complejo, es una clase. Cuando se trabaja
con este tipo de variables algunos operados no funcionan de la manera esperada, ejemplo el operador
de igualdad. Para comparar dos variables String debemos emplear un método que está presente en
dicha clase, éste método se llama equals.
Para conocer el API, Java ha desarrollado una documentación utilizando comentarios de documentación
y la herramienta javadoc. Los comentarios de documentación sirven para la generación de este tipo de
documentación, que no es más que un conjunto de páginas Web que muestran en un formato estándar
las clases y los métodos que estas poseen.
Documentación adicional:
API Java, es un anexo que muestra la manera cómo se debe utilizar la documentación
Jdk-1.6_10-doc.zip
existente del API
En la sección de material encontrará una clase que contiene varios métodos generalmente
utilizados cuando se trabaja con series numéricas.
Actividades
2. Elabore un programa que permita sumar los primeros n términos de la siguiente serie:
3. Busque en la documentación del API de Java información sobre la clase NumberFormat, liste
sus atributos. También busque información sobre la clase Locale y mencione la información que
considere relevante sobre esta clase.
SEGUNDO BIMESTRE
Objetivos específicos
1. Aprender crear y trabajar con m{etodos propios de Java y m{etodos creados por el
programador.
Contenidos
CAPÍTULO V: MÉTODOS
5. CAPÍTULO 5: Métodos
5.1 Propósito................................................................................................................................37
5.2 Conceptos clave.....................................................................................................................37
5.3 Documentación adicional......................................................................................................38
5.4 Interactividad a través de los Foros del Entorno virtual de aprendizaje....................................38
5.5 Actividades.............................................................................................................................38
6. CAPÍTULO 6: Arreglos
6.1 Propósito:..............................................................................................................................39
6.2 Conceptos clave.....................................................................................................................39
6.3 Declaración y acceso a los elementos.....................................................................................39
6.4 Recorrer un arreglo................................................................................................................40
6.4.1 Como recorrer un arreglo multidimensional............................................................................41
6.5 Documentación adicional......................................................................................................44
6.6 Interactividad en el Entorno Virtual de Aprendizaje................................................................44
6.7 Actividades.............................................................................................................................44
8.CAPÍTULO 8: Herencia
8.1Propósito....................................................................................................................................59
8.2Conceptos clave.........................................................................................................................59
8.3Interactividad en el Entorno Virtual de Aprendizaje.....................................................................60
8.4Actividades.................................................................................................................................60
Capítulo 5: Métodos
Datos generales
Propósito
Conceptos clave
El comportamiento caminar, ¿Qué necesita saber para caminar?, casi nada simplemente camina y ya,
claro esto no se aplica para los seres humanos, por que antes de dar un paso lo pensamos y establecemos
un rumbo. Pero si el objeto fuese un muñeco de cuerda, la acción caminar simple y llanamente se
ejecutaría y ya, sin necesidad de información previa. Para este caso no se requieren argumentos.
Todo lo dicho se traduce a que los comportamientos o métodos de los objetos representan acciones
del mundo real que pueden o no recibir argumentos o parámetros y que pueden o no retornar un valor
como resultado o como confirmación de ejecución de la acción.
Los métodos en Java son el equivalente a los procedimientos y funciones en otros lenguajes, reciben
aquí el nombre de métodos en razón de que la filosofía que prima en Java es la de desarrollo orientado
a objetos.
Donde:
Tenga siempre en mente la estructura de declaración de un método. Otro cosa importante que debe
tener en mente es la forma de invocar un método de alguna clase, bien sea del API de Java o definida
por el usuario. La forma correcta es Objeto.metodo. Mire la sección 6.4 en las páginas 190 y 191,
fíjese en las llamadas a los métodos de la clase Math. Ej.: Math.max(5, 6); donde Math es el objeto (en
realidad la clase), max es el método y 5 y 6 son los argumentos pasados al método.
Documentación adicional
Para ampliar la información del texto base, se dispone de bibliografÍa adicional, que
estará disponible como anexo en la guía de estudio o en digital, a éstos últimos recursos
podrá acceder a través del entorno virtual de aprendizaje.
Archivo disponible en el
Descripción del documento
EVA
En las primeras secciones del documento encontrará una explicación sobre
Metodos.pdf
métodos, sobrecarga y constructores.
Actividades
Resuelva los ejercicios de Auto evaluación (pag. 251) del capítulo 6 del libro base
[DD2008]
1. Cree una clase abstracta que contenga métodos para: determinar si un número es primo, par,
impar, obtener un elemento de la serie de Fibonacci dada su posición y un método que ingresado
un número busque y presente el primer número primo superior a ese número.
Capítulo 6 Arreglos
Datos generales
Propósito:
Conceptos clave
¿Cómo accesar a un elemento del arreglo, bien sea para leer o modificar el valor?
Para ayudarle a mantener en mente las respuestas a estas preguntas, propongo el siguiente resumen en
notación pseudo BNF13, donde:
Símbolo Significado
<xxxxxx> Un elemento del lenguaje o valor a reemplazar
[] Opcional
xxxx Un elemento del lenguaje, obligatorio y fijo.
Declarar un arreglo
= new <tipo_dato>[<dimension>|,<dimension>|,<dimension>|...];
Ej.:
Recorrer un arreglo
Los arreglos son estructuras de datos, donde cada elemento esta identificado por un índice de fila y un
índice de columna. La estructura de control natural para recorrer un arreglo es la sentencia for, aunque
se puede utilizar un while o cualquier variante de este.
La estructura de control for, describe un ciclo repetitivo o iterativo, que parte desde un valor inicial
hacia un valor final o límite. Los arreglos están limitados a sus dimensiones, un índice, bien sea de fila
o columna, no puede apuntar a un elemento más allá de la dimensión de fila o columna de un arreglo.
Si relaciona estos dos principios, encontrara una relación natural.
En java, al igual que C, los índices empiezan en cero. Esto significa que si la dimensión de un arreglo es
1000, los índices de sus elemento sólo podrán tomar valores entre 0 y 999. Esto traducido a un ciclo
iterativo for, quedaría expresado como:
La sentencia anterior sirve para generar números desde 0 hasta 999. Dentro del ciclo repetitivo, en
cada iteración la variable i va tomando valores entre 0 y 999, justamente lo que necesitamos para
recorrer las posiciones del arreglo.