Pro01 Vi
Pro01 Vi
Pro01 Vi
Introducción a la programación.
Caso práctico
1 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
1.- Introducción.
¿Cuántas acciones de las que has realizado hoy, crees que están
relacionadas con la programación?
2 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Caso práctico
Juan le comenta a Ada y a María: —La verdad es que cuando conoces bien un
lenguaje de programación, crees que puedes hacer cualquier programa
directamente sobre el ordenador pero, al final, te das cuenta de que deberías
haberte parado a planificar tu trabajo. Muchas veces tienes que volver atrás,
recodificar y, en ocasiones, rehacer gran parte del programa porque lo que tienes
hecho no está bien planteado.
María, que permanece atenta a lo que dicen Ada y Juan, quiere aprender bien,
desde el principio, y tendrá la ventaja de tener a su lado a dos expertos.
3 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Resolución de problemas
4 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
5 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
La diferencia fundamental entre algoritmo y programa es que, en el segundo, los pasos que
permiten resolver el problema, deben escribirse en un determinado lenguaje de programación
para que puedan ser ejecutados en el ordenador y así obtener la solución.
Los lenguajes de programación son sólo un medio para expresar el algoritmo y el ordenador
un procesador para ejecutarlo. El diseño de los algoritmos será una tarea que necesitará de la
creatividad y conocimientos de las técnicas de programación. Estilos distintos, de distintos
programadores a la hora de obtener la solución del problema, darán lugar a algoritmos
diferentes, igualmente válidos.
En esencia, todo problema se puede describir por medio de un algoritmo y las características
fundamentales que éstos deben cumplir son:
Pero cuando los problemas son complejos, es necesario descomponer éstos en subproblemas
más simples y, a su vez, en otros más pequeños. Estas estrategias reciben el nombre de
diseño descendente o diseño modular (top-down design). Este sistema se basa en el
lema divide y vencerás.
Para representar gráficamente los algoritmos que vamos a diseñar, tenemos a nuestra
disposición diferentes herramientas que ayudarán a describir su comportamiento de una forma
precisa y genérica, para luego poder codificarlos con el lenguaje que nos interese. Entre otras
tenemos:
Diagramas de flujo: esta técnica utiliza símbolos gráficos para la representación del
algoritmo. Suele utilizarse en las fases de análisis.
6 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Tablas de decisión: en una tabla son representadas las posibles condiciones del
problema con sus respectivas acciones. Suele ser una técnica de apoyo al pseudocódigo
cuando existen situaciones condicionales complejas.
Debes conocer
A continuación, te ofrecemos dos enlaces muy interesantes:
Autoevaluación
Rellena los huecos con los conceptos adecuados:
Enviar
7 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Caso práctico
8 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Como habrás podido apreciar, existen múltiples paradigmas, incluso puede haber lenguajes de
programación que no se clasifiquen únicamente dentro de uno de ellos. Un lenguaje como
Smalltalk es un lenguaje basado en el paradigma orientado a objetos. El lenguaje de
programación Scheme, en cambio, soporta sólo programación funcional. Python, soporta
múltiples paradigmas.
Autoevaluación
¿En qué paradigma de programación podríamos enmarcar el lenguaje de
programación Java?
Programación Estructurada.
Programación Declarativa.
9 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
No, Java permite trabajar con una filosofía más potente que la programación
estructurada.
Sí, Java emplea la filosofía de ver el mundo como objetos que tienen
propiedades y métodos que les permiten interactuar entre ellos.
Solución
1. Incorrecto (Retroalimentación)
2. Incorrecto (Retroalimentación)
3. Opción correcta (Retroalimentación)
10 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Caso práctico
Sea cual sea el estilo que escojamos, a la hora de automatizar una determinada tarea, debemos
realizar el proceso aplicando un método a nuestro trabajo. Es decir, sabemos que vamos a dar
solución a un problema, aplicando una filosofía de desarrollo y lo haremos dando una serie de
pasos que deben estar bien definidos.
11 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
a. Análisis
El análisis inicial ofrecerá una idea general de lo que se solicita, realizando posteriormente
sucesivos refinamientos que servirán para dar respuesta a las siguientes cuestiones:
La respuesta a la primera pregunta se identifica con los resultados deseados o las salidas
del problema. La respuesta a la segunda pregunta indicará qué datos se proporcionan o
las entradas del problema.
Ejercicio resuelto
Vamos a ilustrar esta fase realizando el análisis del siguiente problema:
Está claro que las entradas de datos en este problema se reducen al radio del
círculo, pero piensa ¿qué salidas de datos ofrecerá la solución?
Y la entrada...
12 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
b. Diseño
Hay que tener en cuenta que, antes de pasar a la implementación del algoritmo, hemos
de asegurarnos que tenemos una solución adecuada. Para ello, todo diseño requerirá de
la realización de la prueba o traza del programa. Este proceso consistirá en un
seguimiento paso a paso de las instrucciones del algoritmo utilizando datos concretos. Si
la solución aportada tiene errores, tendremos que volver a la fase de análisis para realizar
las modificaciones necesarias o tomar un nuevo camino para la solución. Sólo cuando el
algoritmo cumpla los requisitos y objetivos especificados en la fase de análisis se pasará
a la fase de implementación.
En esta fase se pueden detactar errores que nos obliguen a volver a la etapa inicial de
análisis.
13 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
4.2.- Implementación.
a. Codificación o construcción
Pero para que nuestro programa comience a funcionar, antes debe ser traducido a un
lenguaje que la máquina entienda. Este proceso de traducción puede hacerse de dos
formas, compilando o interpretando el código del programa.
14 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Documentación externa: son los manuales que se crean para una mejor ejecución
y utilización del programa.
Autoevaluación
Rellena los huecos con los conceptos adecuados:
Enviar
15 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
4.3.- Explotación.
Fuente: Youtube
16 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Caso práctico
Sean cuales sean las fases en las que realicemos el proceso de desarrollo de software, y casi
independientemente de él, siempre se debe aplicar un modelo de ciclo de vida.
Ciclo de vida del software: es una sucesión de estados o fases por las cuales pasa
un software a lo largo de su "vida".
Existen varios tipos de ciclos de vida del software, a continuación te mostramos un resumen de
los más importantes.
17 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Autoevaluación
Entre los distintos tipos de ciclo de vida del software, los modelos
incremental y en cascada son modelos del tipo evolutivo.
Verdadero Falso
Falso
El modelo incremental sí es del tipo evolutivo, así como el modelo en espiral,
ya que ambos permiten adaptarse a requisitos variables en el tiempo. El
modelo en cascada es mucho más restrictivo y necesita de unos
requerimientos prefijados y no variables.
18 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Caso práctico
María que asiente con la cabeza, piensa que aprender más sobre los lenguajes
disponibles en la actualidad puede ayudar a la hora de elegir entre unos u otros.
Por lo tanto, cada lenguaje de programación define reglas que permiten componer el
texto de un programa como una secuencia de símbolos. El conjunto de estas reglas
se denomina gramática o, más usualmente, la sintaxis del lenguaje. Sintaxis significa
con orden. Cada regla establece una clase definida de objetos o categorías
19 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Con frecuencia se resaltan los elementos de la sintaxis con colores diferentes para facilitar su lectura. Este ejemplo
está escrito en Python.
20 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Algunas operaciones en
lenguaje máquina.
SUMAR 00101101
RESTAR 00010011
MOVER 00111010
Dada la complejidad y dificultades que ofrecía este lenguaje, fue sustituido por otros más
sencillos y fáciles utilizar. No obstante, hay que tener en cuenta que todos los programas para
poder ser ejecutados, han de traducirse siempre al lenguaje máquina que es el único que
entiende la computadora.
Este lenguaje, al ser muy complicado para el programador, fué sustituido por el lenguaje
ensamblador, que utilizaba una abreviatura o nemotécnico de cada instrucción en binario, de
forma que sea más fácil recordarla, pero aún así, sigue siendo necesario tener unos
conocimientos exhaustivos del hardware.
21 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Autoevaluación
Rellena los huecos con los conceptos adecuados:
Enviar
22 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Algunas operaciones y su
mnemotécnico en lenguaje
Ensamblador.
MULTIPLICAR MUL
DIVIDIR DIV
MOVER MOV
Pero aunque ensamblador fue un intento por aproximar el lenguaje de los procesadores al
lenguaje humano, presentaba múltiples dificultades:
Los programas seguían dependiendo directamente del hardware que los soportaba.
Los programadores tenían que conocer detalladamente la máquina sobre la que
programaban, ya que debían hacer un uso adecuado de los recursos de dichos sistemas.
La lectura, interpretación o modificación de los programas seguía presentando
dificultades.
23 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Para paliar los problemas derivados del uso del lenguaje ensamblador
y con el objetivo de acercar la programación hacia el uso de un
lenguaje más cercano al humano que al del computador, nacieron los
lenguajes compilados. Algunos ejemplos de este tipo de lenguajes son:
Pascal, Fortran, Algol, C, C++, etc.
Pero un programa que está escrito en un lenguaje de alto nivel también tiene que traducirse a un
código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta
operación se llaman compiladores.
El compilador realizará la traducción y además informará de los posibles errores. Una vez
subsanados, se generará el programa traducido a código máquina, conocido como código
objeto. Este programa aún no podrá ser ejecutado hasta que no se le añadan los módulos de
enlace o bibliotecas, durante el proceso de enlazado. Una vez finalizado el enlazado, se obtiene
el código ejecutable.
24 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Fuente: softwaredebase6isc
Autoevaluación
Durante la fase de enlazado, se incluyen en el código fuente determinados
módulos (bibliotecas) que son necesarios para que el programa pueda
realizar ciertas tareas, posteriormente se obtendrá el código ejecutable.
Verdadero Falso
Falso
El código fuente es traducido por el compilador, pero en la fase de enlazado
los módulos son añadidos al código objeto; estos módulos permitirán al
programa manejar dispositivos, comunicarse con otros elementos del
sistema, etc.
25 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
A medio camino entre los lenguajes compilados y los interpretados, existen los lenguajes que
podemos denominar pseudo-compilados o pseudo-interpretados, es el caso del Lenguaje
Java.
Java puede verse como compilado e interpretado a la vez, ya que su código fuente se compila
para obtener el código binario en forma de bytecodes, que son estructuras parecidas a las
instrucciones máquina, con la importante propiedad de no ser dependientes de ningún tipo de
máquina (se detallarán más adelante). La Máquina Virtual Java se encargará de interpretar este
código y, para su ejecución, lo traducirá a código máquina del procesador en particular sobre el
que se esté trabajando.
26 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Hay otro punto por el que un lenguaje interpretado es mejor para el aprendizaje: su
código fuente es legible. Los programas compilados no se pueden inspeccionar
en busca de ideas o para aprender cómo funcionan (a menos que hagas ingeniería
inversa).
Debes conocer
Puedes entender por qué Java es un lenguaje compilado e interpretado a través
del siguiente esquema.
Autoevaluación
En Java el código fuente es compilado, obteniéndose el código binario en
forma de bytecodes. Pero, ¿Cuál es la extensión del archivo resultante?
Extensión .obj.
Extensión .class.
Extensión .Java.
Correcto, este tipo de archivos son los que la Máquina Virtual Java traducirá
para poder ejecutarlos en la máquina real.
Incorrecto, los archivos con esta extensión contienen el código fuente del
programa.
Solución
27 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
1. Incorrecto (Retroalimentación)
2. Opción correcta (Retroalimentación)
3. Incorrecto (Retroalimentación)
28 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Caso práctico
Ada indica a Juan y María que el lenguaje
elegido para sus desarrollos va a ser Java. La
flexibilidad, facilidad de aprendizaje, similitud
con algunos lenguajes que ya conocen y su
capacidad para adaptarse a cualquier
plataforma, hacen que sea ideal para producir
las nuevas aplicaciones de BK Programación.
29 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Antes de que apareciera Java, el lenguaje C era uno de los más extendidos por su versatilidad.
Pero cuando los programas escritos en C aumentaban de volumen, su manejo comenzaba a
complicarse. Mediante las técnicas de programación estructurada y programación modular se
conseguían reducir estas complicaciones, pero no era suficiente.
Debes conocer
Obtén una descripción detallada de las características reseñadas anteriormente a
través del siguiente artículo:
30 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
31 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Pero no fue hasta 1995 cuando pasó a llamarse Java, dándose a conocer al público como
lenguaje de programación para computadores. Java pasa a ser un lenguaje totalmente
independiente de la plataforma y a la vez potente y orientado a objetos. Esa filosofía y su
facilidad para crear aplicaciones para redes TCP/IP ha hecho que sea uno de los lenguajes más
utilizados en la actualidad.
El principal objetivo del lenguaje Java es llegar a ser el nexo universal que conecte a los
usuarios con la información, esté ésta situada en el ordenador local, en un servidor Web, en una
base de datos o en cualquier otro lugar.
Java 2 es la tercera versión del lenguaje, pero es algo más que un lenguaje de programación,
incluye los siguientes elementos:
32 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
J2EE engloba a J2SE, y J2SE a su vez engloba a J2ME. Pero por su parte J2ME tiene cierto
parte diferenciada de J2SE y J2EE:
Fuente: Slireshare
Actualmente, la última versión de Java disponible es 8 Update 60, cuya fecha de revisión fué el
18 de agosto de 2015 y lanzada en marzo de 2014. Cabe destacar:
Historia de Java
33 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Por simplificar un poco las cosas, un programa en Java será como una representación teatral en
la que debemos preparar primero cada personaje, definir sus características y qué va a saber
hacer. Cuando esta fase esté terminada, la obra se desarrollará sacando personajes a escena y
haciéndoles interactuar.
Al emplear los conceptos de la Programación Orientada a Objetos (POO), Java incorpora las
tres características propias de este paradigma: encapsulación, herencia y
polimorfismo. Los patrones o tipos de objetos se denominan clases y los objetos que
utilizan estos patrones o pertenecen a dichos tipos, se identifican con el nombre de
instancias. Pero, no hay que alarmarse, estos conceptos se verán más adelante en
sucesivas unidades.
Pues bien, aproximadamente así es como funciona la programación dirigida a objetos: unimos
elementos pequeños para construir otros más grandes. Nuestros programas estarán formados
por muchos componentes (objetos) independientes y diferentes; cada uno con una función
determinada en nuestro software y que podrá comunicarse con los demás de una manera
predefinida.
34 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
a. Independencia: Los programas escritos en Java pueden ser ejecutados en cualquier tipo
de hardware y sistema operativo. El código fuente es compilado, generándose el código
conocido como Java Bytecode (instrucciones máquina simplificadas que son específicas
de la plataforma Java), el bytecode será interpretado y ejecutado en la Máquina Virtual
Java (MVJ o JVM – Java Virtual Machine) que es un programa escrito en código nativo
de la plataforma destino entendible por el hardware. Con esto se evita tener que realizar
un programa diferente para cada CPU o plataforma.
Por tanto, la parte que realmente es dependiente del sistema es la Máquina Virtual Java,
así como las librerías o bibliotecas básicas que permiten acceder directamente al
hardware de la máquina. Por tanto, para cada sistema operativo debe instalarse la versión
correspondiente de la JVM.
b. Trabajo en red: Esta capacidad del lenguaje ofrece múltiples posibilidades para la
comunicación vía TCP/IP. Para poder hacerlo existen librerías que permiten el acceso y la
interacción con protocolos como http, ftp, etc., facilitando al programador las
tareas del tratamiento de la información a través de redes.
Autoevaluación
¿Qué elemento es imprescindible para que una aplicación escrita en Java
pueda ejecutarse en un ordenador?
35 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Solución
1. Incorrecto (Retroalimentación)
2. Incorrecto (Retroalimentación)
3. Opción correcta (Retroalimentación)
36 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
b. Simplicidad: Aunque Java es tan potente como C o C++, es bastante más sencillo.
Posee una curva de aprendizaje muy rápida y, para alguien que comienza a programar en
este lenguaje, le resulta relativamente fácil comenzar a escribir aplicaciones interesantes.
Si has programado alguna vez en C o C++ encontrarás que Java te pone las cosas más
fáciles, ya que se han eliminado: la aritmética de punteros, los registros, la definición
de tipos, la gestión de memoria, etc. Con esta simplificación se reduce bastante la
posibilidad de cometer errores comunes en los programas. Un programador
experimentado en C o C++ puede cambiar a este lenguaje rápidamente y obtener
resultados en muy poco espacio de tiempo.
Muy relacionado con la simplicidad que aporta Java está la incorporación de un elemento
muy útil como es el Recolector de Basura (Garbage collector). Permite al programador
liberarse de la gestión de la memoria y hace que ciertos bloques de memoria puedan
reaprovecharse, disminuyendo el número de huecos libres ( fragmentación de
memoria).
Cuando realicemos programas, crearemos objetos, haremos que éstos interaccionen, etc.
Todas estas operaciones requieren de uso de memoria del sistema, pero la gestión de
ésta será realizada de manera transparente al programador. Todo lo contrario que ocurría
en otros lenguajes. Podremos crear tantos objetos como solicitemos, pero nunca
tendremos que destruirlos. El entorno de Java borrará los objetos cuando determine que
no se van a utilizar más. Este proceso es conocido como recolección de basura.
Autoevaluación
37 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Enviar
38 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Una vez escrito el código fuente (archivos con extensión .Java), éste es precompilado
generándose los códigos de bytes, Bytecodes o Java Bytecodes (archivos con extensión .class)
que serán interpretados directamente por la Maquina Virtual Java y traducidos a código nativo
de la plataforma sobre la que se esté ejecutando el programa.
Para que un bytecode pueda ser ejecutado en cualquier plataforma, es imprescindible que dicha
plataforma cuente con el intérprete adecuado, es decir, la máquina virtual específica para esa
plataforma. En general, la Máquina Virtual Java es un programa de reducido tamaño y gratuito
para todos los sistemas operativos.
39 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Caso práctico
Hasta ahora, hemos descrito el lenguaje de programación Java, hemos hecho un recorrido por
su historia y nos hemos instruido sobre su filosofía de trabajo, pero te preguntarás ¿Cuándo
empezamos a desarrollar programas? ¿Qué elementos forman parte de un programa en Java?
¿Qué se necesita para programar en este lenguaje? ¿Podemos crear programas de diferente
tipo?
No te impacientes, cada vez estamos más cerca de comenzar la experiencia con el lenguaje de
programación Java. Iniciaremos nuestro camino conociendo cuales son los elementos básicos
de un programa Java, la forma en que debemos escribir el código y los tipos de aplicaciones
que pueden crearse en este lenguaje.
40 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Vamos a analizar cada uno de los elementos que aparecen en dicho gráfico:
public class Clase_Principal: todos los programas han de incluir una clase como esta. Es una clase
general en la que se incluyen todos los demás elementos del programa. Entre otras cosas,
contiene el método o función main() que representa al programa principal, desde el que se
llevará a cabo la ejecución del programa. Esta clase puede contener a su vez otras clases del
usuario, pero sólo una puede ser public. El nombre del fichero .Java que contiene el código fuente
de nuestro programa, coincidirá con el nombre de la clase que estamos describiendo en estas
líneas.
Recomendación
Ten en cuenta que Java distingue entre mayúsculas y minúsculas. Si le das a la
clase principal el nombre PrimerPrograma, el archivo .Java tendrá como
identificador PrimerPrograma.Java, que es totalmente diferente a
primerprograma.Java. Además, para Java los elementos PrimerPrograma y
primerprograma serían considerados dos clases diferentes dentro del código
fuente.
public static void main (String[] args): Es el método que representa al programa principal, en él
se podrán incluir las instrucciones que estimemos oportunas para la ejecución del
programa. Desde él se podrá hacer uso del resto de clases creadas. Todos los programas
Java tienen un método main.
Punto y coma: aunque en el ejemplo no hemos incluido ninguna línea de código que
41 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
termine con punto y coma, hay que hacer hincapié en que cada línea de código ha de
terminar con punto y coma (;). En caso de no hacerlo, tendremos errores sintácticos.
Autoevaluación
public static void main (String[] args) es la clase general del programa.
Verdadero Falso
Falso
42 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Así mismo, junto a JDK se incluye una implementación del entorno de ejecución Java, el JRE
(Java Runtime Environment) para ser utilizado por el JDK. El JRE incluye la Máquina Virtual de
Java (MVJ ó JVM – Java Virtual Machine), bibliotecas de clases y otros ficheros que soportan la
ejecución de programas escritos en el lenguaje de programación Java.
Debes conocer
Para poder utilizar JDK y JRE es necesario realizar la descarga e instalación de
éstos. Puedes seguir los pasos del proceso de instalación, escogiendo el sistema
operativo donde se quiera instalar.
43 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Para poder desarrollar nuestros primeros programas en Java sólo necesitaremos un editor de
texto plano y los elementos que acabamos de instalar a través de Java SE.
Autoevaluación
Podemos desarrollar programas escritos en Java mediante un editor de
textos y a través del JRE podremos ejecutarlos.
Verdadero Falso
Verdadero
Efectivamente, JRE incluye un subconjunto de JDK que permitiría realizar la
compilación del código fuente y la ejecución posterior en la Máquina Virtual
Java de nuestro programa.
44 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
En décadas pasadas una biblioteca era un conjunto de programas que contenían cientos de
rutinas (una rutina es un procedimiento o función bien verificados, en determinado lenguaje de
programación). Las rutinas de biblioteca manejaban las tareas que todos o casi todos los
programas necesitaban. El programador podía recurrir a esta biblioteca para desarrollar
programas con rapidez.
Autoevaluación
Indica qué no es la API de Java:
45 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Incorrecto, la API de Java está incluida junto con JDK y JRE en Java SE.
Solución
46 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Debes conocer
Por tanto, PATH es la variable del sistema que utiliza el sistema operativo para
buscar los ejecutables necesarios desde la línea de comandos o la ventana
Terminal.
Windows 8
47 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Windows 7
Windows XP
Windows Vista
48 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
La variable CLASSPATH: esta variable de entorno establece dónde buscar las clases o biblitecas
49 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
de la API de Java, así como las clases creadas por el usuario. Es decir, los ficheros .class que se
obtienen una vez compilado el código fuente de un programa escrito en Java. Es posible que en
dicha ruta existan directorios y ficheros comprimidos en los formatos zip o jar que pueden ser
utilizados directamente por el JDK, conteniendo en su interior archivos con extensión class.
Si no existe la variable CLASSPATH debes crearla, para modificar su contenido sigue el mismo
método que hemos empleado para la modificación del valor de la variable PATH, anteriormente
descrito. Ten en cuenta que la ruta que debes incluir será el lugar donde se instaló el JDK hasta
su directorio lib.
Debes conocer
RECURSOS DE AYUDA
Instalación de Java
Desactivar Java
Uso de Java
Preguntas generales
Recomendación
En el caso de que tengas alguna duda, puedes apoyarte en los recursos de ayuda
que te relacionamos a continuación:
Instalación de Java
Desactivar Java
Uso de Java
Preguntas generales
Autoevaluación
¿Qué variable de sistema o de entorno debemos configurar correctamente
para que podamos compilar directamente desde la línea de comandos
nuestros programas escritos en lenguaje Java?
CLASSPATH.
PATH.
50 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Javac.exe.
Solución
1. Incorrecto (Retroalimentación)
2. Opción correcta (Retroalimentación)
3. Incorrecto (Retroalimentación)
51 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Para que el programa pueda ser ejecutado, siempre y cuando esté incluido en su interior el
método main, podremos utilizar el interprete incluido en el kit de desarrollo.
Ejercicio resuelto
Vamos a llevar a la práctica todo lo que hemos estado detallando a través de la
creación, compilación y ejecución de un programa sencillo escrito en Java.
Observa el código que se muestra más abajo, seguro que podrás entender parte
de él. Cópialo en un editor de texto, respetando las mayúsculas y las minúsculas.
Puedes guardar el archivo con extensión .Java en la ubicación que prefieras.
Recuerda que el nombre de la clase principal (en el código de ejemplo MiModulo)
debe ser exactamente igual al del archivo con extensión .Java, si tienes esto en
cuenta la aplicación podrá ser compilada correctamente y ejecutada.
52 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
/**
* La clase MiModulo implementa una aplicación que
* simplemente imprime "Módulo profesional - Programación" en pantalla.
*/
class MiModulo {
53 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Aplicaciones de consola:
Son programas independientes al igual que los
creados con los lenguajes tradicionales.
Se componen como mínimo de un archivo .class que
debe contar necesariamente con el método main.
No necesitan un navegador web y se ejecutan cuando invocamos el comando Java
para iniciar la Máquina Virtual de Java (JVM). De no encontrarse el método main la
aplicación no podrá ejecutarse.
Las aplicaciones de consola leen y escriben hacia y desde la entrada y salida
estándar, sin ninguna interfaz gráfica de usuario.
Aplicaciones gráficas:
Aquellas que utilizan las clases con capacidades gráficas, como Swing que es la
biblioteca para la interfaz gráfica de usuario avanzada de la plataforma Java SE.
Incluyen las instrucciones import, que indican al compilador de Java que las clases
del paquete Javax.swing se incluyan en la compilación.
Applets:
Son programas incrustados en otras aplicaciones, normalmente una página web
que se muestra en un navegador. Cuando el navegador carga una web que
contiene un applet, éste se descarga en el navegador web y comienza a ejecutarse.
Esto nos permite crear programas que cualquier usuario puede ejecutar con tan
solo cargar la página web en su navegador.
Se pueden descargar de Internet y se observan en un navegador. Los applets se
descargan junto con una página HTML desde un servidor web y se ejecutan en la
máquina cliente.
No tienen acceso a partes sensibles (por ejemplo: no pueden escribir archivos), a
menos que uno mismo le dé los permisos necesarios en el sistema.
No tienen un método principal.
Son multiplataforma y pueden ejecutarse en cualquier navegador que soporte Java.
Servlets:
Son componentes de la parte del servidor de Java EE, encargados de generar
respuestas a las peticiones recibidas de los clientes.
Los servlets, al contrario de los applets, son programas que están pensados para
trabajar en el lado del servidor y desarrollar aplicaciones Web que interactúen con
los clientes.
Midlets:
Son aplicaciones creadas en Java para su ejecución en sistemas de propósito
simple o dispositivos móviles. Los juegos Java creados para teléfonos móviles son
midlets.
Son programas creados para dispositivos embebidos (se dedican a una sola
actividad), más específicamente para la máquina virtual Java MicroEdition (Java
ME).
Generalmente son juegos y aplicaciones que se ejecutan en teléfonos móviles.
54 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Fuente: itesm.mx
Autoevaluación
Un Applet es totalmente seguro ya que no puede acceder, en ningún caso, a
zonas sensibles del sistema. Es decir, no podría borrar o modificar nuestros
archivos.
Verdadero Falso
Falso
Los Applets podrían acceder a zonas sensibles de nuestro sistema si les
diéramos permisos para hacerlo. Pero si no está firmado como confiable,
tiene un acceso limitado al sistema del usuario.
55 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Caso práctico
Estas circunstancias hacían que el desarrollo de software no estuviera optimizado. Con el paso
del tiempo, se fueron desarrollando aplicaciones que incluían las herramientas necesarias para
realizar todo el proceso de programación de forma más sencilla, fiable y rápida. Para cada
lenguaje de programación existen múltiples entornos de desarrollo, cada uno con sus ventajas e
inconvenientes. Dependiendo de las necesidades de la persona que va a programar, la facilidad
de uso o lo agradable que le resulte trabajar con él, se elegirá entre unos u otros entornos.
Para el lenguaje de programación Java existen múltiples alternativas, siendo los principales
entornos de desarrollo NetBeans (que cuenta con el apoyo de la empresa Sun), Eclipse y
JCreator. Los dos primeros son gratuitos, con soporte de idiomas y multiplataforma (Windows,
Linux, MacOS).
¿Y cuál será con el que vamos a trabajar? El entorno que hemos seleccionado llevar a cabo
nuestros desarrollos de software en este módulo profesional será NetBeans, al haber sido
construido por la misma compañía que creó Java, ser de código abierto y ofrecer capacidades
profesionales. Aunque, no te preocupes, también haremos un recorrido por otros entornos
destacables.
56 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
El objeto de todo ésto es lograr que el proceso de codificación sea lo más sencillo posible para
así poder rebajar los tiempos de desarrollo de las aplicaciones. Estos interfaces además nos
facilitan el trabajo con las clases y librerías , haciendo su incorporación más sencilla e intuitiva..
El objeto de todo esto es lograr que el proceso de codificación sea lo más sencillo posible para
así poder rebajar los tiempos de desarrollo de las aplicaciones. Estos interfaces además nos
facilitan el trabajo con las clases y librerías , haciendo su incorporación más sencilla e intuitiva..
Hay que tener en cuenta que un entorno de desarrollo no es más que una fachada para el
proceso de compilación y ejecución de un programa. ¿Qué quiere decir eso? Pues que si
tenemos instalado un IDE y no tenemos instalado el compilador, no tenemos nada.
Fuente: Maplesoft.
57 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Fuente: Maplesoft.
58 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
NetBeans
Eclipse
BlueJ
Jgrasp
Jcreator LE
IntelliJ IDEA
Jbuilder
Jcreator
JDeveloper
Debes conocer
Cada uno de los entornos nombrados más arriba posee características que los
hacen diferentes unos de otros, pero para tener una idea general de la versatilidad
y potencia de cada uno de ellos, accede a la siguiente tabla comparativa:
59 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Autoevaluación
¿Cuál de los siguientes entornos sólo está soportado en la plataforma
Windows?
Eclipse.
Intellij IDEA.
Jcreator.
Solución
1. Incorrecto (Retroalimentación)
2. Incorrecto (Retroalimentación)
3. Opción correcta (Retroalimentación)
60 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto
de componentes de software llamados módulos. Un módulo es un archivo Java que contiene
clases de Java escritas para interactuar con las APIs de NetBeans y un archivo especial
(manifest file) que lo identifica como módulo.
Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos
módulos. Debido a que los módulos pueden ser desarrollados independientemente, las
aplicaciones basadas en esta plataforma pueden ser extendidas fácilmente por cualquiera que
desarrolle también software.
Cada módulo provee una función bien definida, tales como el soporte de Java, edición, o
soporte para el sistema de control de versiones. NetBeans contiene todos los módulos
necesarios para el desarrollo de aplicaciones Java en una sola descarga, permitiendo a la
persona que va a realizar el programa comenzar a trabajar inmediatamente.
61 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
62 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Descarga únicamente NetBeans si tienes ya instalado el JDK. (Esta versión aún no incluye
lenguaje Español)
Debes conocer
Para aprender cómo realizar la instalación completa, JDK y NetBeans, en sus
últimas versiones es importante que sigas las indicaciones que se muestran en el
siguiente artículo:
63 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Para comenzar a describir el aspecto del entorno, es necesario crear un nuevo proyecto
accediendo al menú File - New Project, indicaremos el tipo de aplicación que vamos a crear.
Debes conocer
Para continuar con la creación de nuestro proyecto y la descripción del aspecto
del entorno, accede a la siguiente presentación:
Cuando trabajemos con NetBeans, nuestros proyectos harán uso de clases para
poder desarrollar las operaciones de nuestros programas. Estas clases se
agruparán en paquetes y en la siguiente presentación puedes aprender cómo se
gestionan a través del entorno:
64 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Una de las ventajas que ofrece este entorno es poder examinar nuestros proyectos a través de
la vista Archivos. Esta vista nos enseña la realidad de los archivos del proyecto, la carpeta build
contiene los archivos compilados (.class), la carpeta src el código fuente y el resto, son archivos
creados por Netbeans para comprobar la configuración del proyecto o los archivos necesarios
para la correcta interpretación del código en otros sistemas (en cualquier caso no hay que
borrarlos). Para activar esta vista, selecciona en el menú principal Windows - Files.
Autoevaluación
Rellena los huecos con los conceptos adecuados:
Enviar
65 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Licencia: CC-BY-SA
Procedencia: http://commons.wikimedia.org
/wiki/File:Wiener_Melange_0363wien_img_9691.jpg
Licencia: CC-by-sa
Procedencia: http://commons.wikimedia.org
/wiki/File:Cruce_de_caminos-El_Hierro.jpg
Autoría: Desconocido.
Procedencia: http://commons.wikimedia.org
/wiki/File:OstrichHead.JPG
Procedencia: http://commons.wikimedia.org
/wiki/File:Codigo_de_maquina.png
Autoría: Robpatrik
Licencia: CC BY-NC-SA
Procedencia: http://www.flickr.com/photos
/alkalinezoo/3595562784/
Licencia: CC-by-sa
Procedencia: http://commons.wikimedia.org
/wiki/File:2010-11-14_orr_ob_08.JPG
66 de 67 13/10/15 13:41
Introducción a la programación. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_1U3g...
Licencia: GNU/GPL
Procedencia: http://commons.wikimedia.org
/wiki/File:Exquisite-kcontrol.png
Autoría: netbeans.org
Procedencia: http://netbeans.org
Procedencia: http://commons.wikimedia.org
/wiki/File:Maldives_00147.JPG
Autoría: Acatur
67 de 67 13/10/15 13:41