Logo DIE

Entorno y Lenguaje de Programación

Unidad de Apoyo para el Aprendizaje

Iniciar

Introducción


Para una mejor comprensión de la programación orientada a objetos, se deben practicar los conceptos aprendidos en la teoría, implementándolos en algún lenguaje de programación.

Lo primero que se debe hacer para comenzar a programar en dicho lenguaje es conocer sus fundamentos y el entorno de ejecución, así como también las herramientas útiles con las que se cuenta para optimizar el desarrollo de programas.

Una vez que se han comprendido las bases del lenguaje, el entorno y las herramientas, se puede proceder a realizar un programa sencillo y con todos los pasos necesarios, desde la codificación en el lenguaje hasta la ejecución del mismo en el entorno.

Nota: Elegir un lenguaje para aprender programación orientada a objetos es un tema de discusión entre programadores profesionales, ya que no existe un criterio unánime respecto a qué lenguaje es el ideal para aprender todos los conceptos necesarios. En esta UAPA, la base de estudio será el lenguaje de programación Java; sin embargo, queda a criterio del profesor el uso de éste u otro lenguaje orientado a objetos.





Utilizar el entorno de ejecución y el lenguaje de programación orientado a objetos, que permita configurar un entorno para el desarrollo de programas usando Java.

El entorno de ejecución


La tecnología Java es un lenguaje de programación y una plataforma comercializada por primera vez en 1995 por Sun Microsystems.

El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. El lenguaje de programación Java es un lenguaje de alto nivel orientado a objetos. El lenguaje es inusual porque los programas Java son tanto compilados como interpretados.

La plataforma Java es una plataforma de software que se ejecuta sobre la base de varias plataformas de hardware. Está compuesto por la JVM (Java Virtual Machine) y la Interfaz de programación de aplicaciones Java o API (un amplio conjunto de componentes de software listos para usar, que facilitan el desarrollo y despliegue de aplicaciones).

Además de la API Java, toda implementación completa de la plataforma Java incluye:

Herramientas de desarrollo para compilar, ejecutar, supervisar, depurar y documentar aplicaciones.

Mecanismos estándar para desplegar aplicaciones para los usuarios.

Kits de herramientas de interfaz de usuario que permiten crear interfaces gráficas de usuario (GUIs) sofisticadas.

Bibliotecas de integración que permiten que los programas accedan a bases de datos y manipulen objetos remotos.



Diagrama de bloques



La Máquina Virtual Java (JVM)

Java se hizo independiente del sistema operativo, añadiendo un paso intermedio al proceso de compilación:

Diagrama de bloques



Los programas Java no se ejecutan en nuestra máquina real (computadora), sino que Java simula una “máquina virtual” con su propio hardware y sistema operativo.

Entonces, en Java el proceso es…



Diagrama de bloques


Diagrama de bloques


Esto permite que Java pueda ejecutarse en una máquina con sistema operativo Unix, Windows, Linux o cualquier otro, porque en realidad no va a ejecutarse en ninguno de los sistemas operativos, sino en su propia máquina virtual, que se instala cuando se instala Java. La desventaja de este esquema es que siempre que se quiera correr una aplicación Java se debe tener instalado Java con su máquina virtual.



Programas en Java

Diagrama de bloques

Representación de las etapas de edición (el programador crea archivos .java), compilación (el compilador genera archivos .class o bytecode) y ejecución (los usuarios ejecutan el programa en sus computadoras).

Todo programa en Java está organizado en clases, que se codifican en archivos de texto con extensión .java. Cada archivo de código fuente .java puede contener una o varias clases, aunque lo normal es que haya un archivo por clase.

Cuando se compila un .java se genera uno o varios archivos .class de código binario (bytecodes) que son independientes de la arquitectura. Esta independencia supone que los bytecodes no pueden ser ejecutados directamente por ningún sistema operativo.

Durante la fase de ejecución es cuando los archivos .class se someten a un proceso de interpretación, consistente en traducir los bytecodes a código ejecutable por el sistema operativo. Esta operación es realizada por la JVM.



Herramientas de desarrollo (JDK)

El Java Development Kit (JDK) proporciona el conjunto de herramientas básico para el desarrollo de aplicaciones con Java estándar. Se puede obtener de manera gratuita en Internet, descargándolo desde el sitio de Oracle.

En este sitio podemos encontrar varios recursos relacionados con Java, así como otras versiones y herramientas útiles.



Como se mencionó al principio, en esta UAPA se utilizará la versión 8 de Java SE (Standard Edition).

Para obtener la descarga correcta, se debe seleccionar el sistema operativo en donde se instalará y aceptar la licencia.

Podrás encontrar instrucciones de instalación en distintos sistemas operativos en el sitio.





Programando en Java


Aunque aún carecemos del conocimiento del lenguaje, podemos iniciar con un sencillo programa en Java que imprima un saludo. Este programa nos va a servir para conocer el procedimiento general que se debe seguir para crear, compilar y ejecutar programas Java.

Codificación

Utilizando cualquier editor de texto plano (bloc de notas, notepad++, gedit, vi, etc.) procedemos a capturar el siguiente código (teniendo en cuenta que Java es case sensitive, es decir, sensible a mayúsculas y minúsculas):

Diagrama de bloques



Después procedemos a guardar este programa en un archivo de texto llamado HolaMundo.java (el nombre del archivo debe ser el mismo que el de la clase).

Compilación

La compilación de un archivo de código fuente .java se realiza a través del comando javac del JDK. Si se ha instalado y configurado correctamente el JDK, entonces javac podrá ser invocado desde el directorio en el que se encuentre el archivo HolaMundo.java creado.

Tras ejecutar este comando, se generará un archivo HolaMundo.class.

Diagrama de bloques



En caso de que existieran errores sintácticos en el código fuente, el compilador nos habría informado de ello y el archivo .class no se generaría.

Por ejemplo, si en el código fuente escribimos system en vez de System, al intentar compilar obtendríamos:

Diagrama de bloques



Ejecución

Para ejecutar el programa (una vez compilado correctamente), se utiliza el comando Java seguido del nombre de la clase que contiene el método main( ). En nuestro caso será HolaMundo, ya que es la única clase existente.

Diagrama de bloques



La llamada al comando java insta a la máquina virtual a buscar en la clase indicada un método llamado main( ) y procede a su ejecución. En caso de que java no encuentre la clase, ya sea porque el JDK esté mal configurado o porque el nombre de la clase sea incorrecto, se producirá un error como el siguiente.

Diagrama de bloques



Si el problema no es con la configuración ni el nombre de la clase, sino que el formato del método main( ) no es correcto, el programa compilará correctamente, pero se producirá un error al ejecutar el programa con java.

Diagrama de bloques



Este procedimiento para compilar y ejecutar la clase HolaMundo es el mismo que habrá de seguirse para cualquier programa en Java.

Entorno de desarrollo integrado (IDE)


Para desarrollar un producto de software sólo es necesario un editor de texto plano para capturar el código fuente y el compilador o el intérprete (según sea el caso), para transformar el lenguaje de alto nivel a lenguaje máquina; sin embargo, también se puede hacer uso de una aplicación que contenga todas las herramientas en una interfaz. A este tipo de aplicaciones se le conoce como entorno de desarrollo integrado.

Entorno de desarrollo integrado IDE (Integrated Development Enviroment)

Es una aplicación que facilita el desarrollo de aplicaciones de algún lenguaje de programación.

De manera general es un interfaz gráfica de usuario diseñada para ayudar a los desarrolladores a construir aplicaciones de software proporcionando todas las herramientas necesarias para la codificación, compilación, depuración y ejecución.

Los IDE de Java utilizan internamente las herramientas básicas de JDK en la realización de estas operaciones , sin embargo; el programador no tendrá que hacer uso de la consola para ejecutar estos comando, dado que el entorno le ofrecerá una alternativa de utilización basada en menús y barras de herramientas.



Diagrama de bloques

La escritura de código también resulta una tarea sencilla con un IDE, ya que estos suelen contar con un editor de código que resalta las palabras reservadas del lenguaje para distinguirlas del resto del código.

Algunos incluso permiten autoescritura de instrucciones, utilizando la técnica IntelliSense, que consiste en mostrar la lista completa de métodos de un objeto según se escribe la referencia al mismo.



Diagrama de bloques



En el mercado existen diversos tipos de IDE, cada uno con características propias; empero, una constante es que permiten manejar las etapas para generar un programa, dependiendo del tipo de lenguaje utilizado. La mecánica de utilización de estos programas es muy similar; todos ellos se basan en el concepto de proyecto como conjunto de clases que forman una aplicación.

Algunos de los IDE más populares para Java son los siguientes:



Queda a juicio del programador elegir si utiliza un IDE o no y, en caso de hacerlo, también decidir cuál de acuerdo a sus necesidades y gustos.

Estructura general de un programa Java


Una de las principales características de Java es que es un lenguaje totalmente orientado a objetos. Como tal, todo programa Java debe estar escrito en una o varias clases, dentro de las cuales se podrá hacer uso del amplio conjunto de paquetes y clases prediseñadas.

Un programa en Java consta de una clase principal (que contiene el método main) y algunas clases de usuario (las específicas de la aplicación que se está desarrollando), que son utilizadas por el programa o clase principal. La clase principal debe ser declarada con el modificador de acceso public y la palabra reservada class, seguida del nombre de la clase iniciando con mayúscula.

Un archivo fuente (*.java) puede contener más de una clase, pero sólo una puede ser public. El nombre del archivo fuente debe coincidir con el de la clase public (con la extensión *.java).

Ejemplo:

Diagrama de bloques



El nombre del archivo tiene que ser exactamente el mismo que el de la clase; en este caso debe ser MiClase.java. Es importante que coincidan mayúsculas y minúsculas, ya que MiClase.java y miclase.java serían clases diferentes para Java.

Normalmente una aplicación está constituida por varios archivos *.class. Cada clase realiza funciones particulares, permitiendo construir las aplicaciones con gran modularidad e independencia entre clases. La aplicación se ejecuta por medio del nombre de la clase que contiene el método main( ) (sin la extensión *.class).

Ejemplo:

Diagrama de bloques



El método main

En la clase principal debe existir una función o método estático llamado main, cuyo formato debe ser…

public static void main(String[ ] args



Método



El método main es el punto de arranque de un programa Java, cuando se invoca al comando java desde la línea de comandos. La JVM busca en la clase indicada un método estático llamado main con el formato indicado.

Dentro del código de main pueden crearse objetos de otras clases e invocar sus métodos; en general, se puede incluir cualquier tipo de lógica que respete la sintaxis y estructura de Java.





Sintaxis básica


Una de las primeras cosas que hay que tener en cuenta es que Java es un lenguaje sensitivo a mayúsculas/minúsculas. El compilador Java hace distinción entre mayúsculas y minúsculas. Esta distinción no sólo se aplica a palabras reservadas del lenguaje, sino también a nombres de variables y métodos.

La sintaxis de Java es muy parecida a la de C y C++; por ejemplo, las sentencias finalizan con ; , los bloques de instrucciones se delimitan con llaves { y }, etc.

A continuación, se explican los puntos más relevantes de la sintaxis de Java.

Los comentarios son muy útiles para poder entender el código utilizado, facilitando de ese modo futuras revisiones y correcciones; además, permite que cualquier persona distinta al programador original pueda comprender el código escrito de una forma más rápida.

En Java existen tres tipos de comentarios:

Se recomienda acostumbrarse a comentar el código desarrollado. De esta forma se simplifica también la tarea de estudio y revisión posteriores.

• Comentarios de una sola línea.
      // Esta es una línea comentada.
• Comentarios de bloques.
      /* Aquí empieza el bloque comentado
      y aquí acaba
*/
• Comentarios de documentación (JavaDoc).
      /** Los comentarios de documentación se realizan de este modo */

En Java los identificadores comienzan por una letra del alfabeto inglés, un subrayado _ o el símbolo de dólar $. Los siguientes caracteres del identificador pueden ser letras o dígitos. No se debe nunca iniciar con un dígito. No hay un límite en lo concerniente al número de caracteres que pueden tener los identificadores.

Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten mucha libertad al programador, pero es habitual seguir ciertas normas que facilitan la lectura y el mantenimiento de los programas.

En Java es habitual utilizar nombres con minúsculas, con las excepciones que se indican en los puntos siguientes:

normas

Sin embargo, estas no son las únicas normas para la nomenclatura en Java; también existen las convenciones de código, las cuales son de gran importancia para los programadores, ya que mejoran la lectura del programa, permitiendo entender el código nuevo mucho más rápido y con mayor profundidad.

Para que funcionen las convenciones, todos los programadores deben seguir la convención; por esta razón, es muy importante generar el hábito de aplicar convenciones y estándares de programación, ya que de esta manera no sólo se enfoca en las funcionalidades, sino que también se aporta a la calidad de los desarrollos.

Las convenciones de código, o Java Code Conventions, pueden ser consultadas en el siguiente link.

Las siguientes son palabras reservadas utilizadas por Java y no pueden ser usadas como identificadores.

Diagrama de bloques



También existen las literales reservadas null, true y false, las cuales tampoco pueden ser usadas como identificadores.

ícono

Actividad 1. Probando el entorno de programación de Java

Hasta el momento has estudiado cómo programar en Java; sin embargo, para crear programas en Java es necesario que tengas correctamente instalado el JDK (Java Development Kit), y para ejecutar debes tener instalada la máquina virtual de Java (JVM).

El comando javac permite compilar un programa escrito en lenguaje Java (archivo .java). El comando Java permite ejecutar un programa creado a partir del compilador de Java (archivo .class).

ícono

Actividad 2. Ejecución de un programa en lenguaje Java

El código fuente de un programa en Java se puede realizar utilizando cualquier editor de texto. Una vez creado el programa se puede compilar utilizando el comando javac. El compilador genera un bytecode con extensión .class, el cual se puede ejecutar utilizando el comando Java.

ícono

Autoevaluación. Entorno de desarrollo y ejecución de programa en Java


Fuentes de información

Dean, J. y Dean, R. (2009). Introducción a la programación con Java. Ciudad de México: McGraw-Hill.

Martín, A. (2008). Programador certificado Java 2 (2.ª ed.). Ciudad de México: Alfaomega.

Sierra, K. & Bates, B. (2008). SCJP Sun Certified Programmer for Java 6 Study Guide. New Delhi: McGraw-Hill.


Cómo citar


Solano, J. (2020). Entorno y lenguaje de programación. Unidades de Apoyo para el Aprendizaje. CUAED/Facultad de Ingeniería-UNAM. Consultado el (fecha) de (vínculo)