Conceptos básicos del lenguaje Java
Programación orientada a objetos en la plataforma Java
Ing Nestor Orlando Calderón Hernandez
Publicado en 03-01-1997
E-mail:nestorsistemas77@gmail.com
Chat: paizo.io
Contenido de la serie:
Este contenido es la parte 1 de 2 de la serie: Introducción a la programación Java
Antes que comience
Descubra qué esperar de este tutorial y cómo sacarle el mayor provecho.
Acerca de este tutorial
El tutorial de dos partes "Introducción a la programación Java" tiene como objetivo conseguir que los desarrolladores de software que sean nuevos en la tecnología Java estén listos y en movimiento con la programación orientada a objetos (OOP) y el desarrollo de aplicaciones del mundo real usando el lenguaje y la plataforma Java.
La primera parte es una introducción paso a paso a la OOP con el uso del lenguaje Java. El tutorial comienza con una visión general de la plataforma y el lenguaje Java y le siguen las instrucciones para establecer un entorno de desarrollo.
El paiza.IO permite editar y copilar en línea. Es compatible con más de 20 lenguajes: C, C++, Java, Ruby, Python, PHP, Perl... y más. Puede utilizarlo para aprender a programar, escribir archivos por lotes, como web scraper, entre Otros.
¿Qué es paiza.IO?
paiza.IO es un editor y compilador en línea donde puedes escribir y ejecutar código instantáneamente. Ya sea que tengas una nueva idea, estés aprendiendo o enseñando programación, tú y los demás simplemente pueden escribir y ejecutar código
El motor paiza.IO es el ejecutor de código basado en contenedor más ligero, compatible con todos los compiladores o lenguajes de script más populares (más de 20). El motor paiza.IO proporciona tiempos de ejecución estables, una latencia extremadamente baja sin sondeos (polling) y una infraestructura escalable. .col-md-4.
Te proporcionamos el API de paiza.IO para tu aplicación. Puedes probar el API, pero su acceso es limitado y no garantizamos el servicio. Para uso profesional, por favor, ponte en contacto con info@paiza.io indicando la finalidad y el acceso estimado, para que puedas acceder de forma estable al servicio de paiza.IO.
Web / servidor de BD, editor,
PaizaCloud Cloud IDE - Entorno de desarrollo web basado en navegador para Ruby on Rails, Node.js, Django, MySQL, WordPress, Java (Tomcat), PHP (LAMP), Laravel, Jupyter Notebook
Objetivos
Cuando haya terminado la Parte 1, estará familiarizado con la sintaxis del lenguaje Java básico y podrá escribir programas Java simples. Debería continuar con "Introducción a la programación Java, parte 2: construcciones para aplicaciones del mundo real" para desarrollarse sobre esta base.
Requisitos previos
Este tutorial es para desarrolladores de software que todavía no tienen experiencia con el código Java o la plataforma Java. El tutorial incluye una visión general de los conceptos de OOP.
Requisitos del sistema
Para completar los ejercicios de este tutorial, visite la pagina y establezca un entorno de desarrollo
CONOZCAMOS MAS SOBRE JAVA
La tecnología Java se usa para desarrollar aplicaciones para un amplio alcance de entornos, desde dispositivos del consumidor hasta sistemas empresariales heterogéneos. En esta sección, obtenga una vista de alto nivel de la plataforma Java y sus componentes. Vea Recursos para aprender más acerca de los componentes de la plataforma Java discutidos en esta sección.
Java es un lenguaje desarrollado por Sun con la intención de competir con Microsoft en el mercado de la red. Sin embargo, su historia se remonta a la creación de una filial de Sun (FirstPerson) enfocada al desarrollo de aplicaciones para electrodomésticos, microondas, lavaplatos, televisiones... Esta filial desapareció tras un par de éxitos de laboratorio y ningún desarrollo comercial.
Sin embargo, para el desarrollo en el laboratorio, uno de los trabajadores de FirstPerson, James Gosling, desarrolló un lenguaje derivado de C++ que intentaba eliminar las deficiencias del mismo. Llamó a ese lenguaje Oak. Cuando Sun abandonó el proyecto de FirstPerson, se encontró con este lenguaje y, tras varias modificaciones (entre ellas la del nombre), decidió lanzarlo al mercado en verano de 1995
El éxito de Java reside en varias de sus características. Java es un lenguaje sencillo, o todo lo sencillo que puede ser un lenguaje orientado a objetos, eliminando la mayor parte de los problemas de C++, que aportó su granito (o tonelada) de arena a los problemas de C. Es un lenguaje independiente de plataforma, por lo que un programa hecho en Java se ejecutará igual en un PC con Windows que en una estación de trabajo basada en Unix. También hay que destacar su seguridad, desarrollar programas que accedan ilegalmente a la memoria o realizar caballos de troya es una tarea propia de titanes.
Cabe mencionar también su capacidad multihilo, su robustez o lo integrado que tiene el protocolo TCP/IP, lo que lo hace un lenguaje ideal para Internet. Pero es su sencillez, portabilidad y seguridad lo que le han hecho un lenguaje de tanta importancia
Portabilidad
La portabilidad se consigue haciendo de Java un lenguaje medio interpretado medio compilado. ¿Cómo se come esto? Pues se coge el código fuente, se compila a un lenguaje intermedio cercano al lenguaje máquina pero independiente del ordenador y el sistema operativo en que se ejecuta (llamado en el mundo Java bytecodes) y, finalmente, se interpreta ese lenguaje intermedio por medio de un programa denominado máquina virtual de Java.
Este esquema lo han seguido otros lenguajes, como por ejemplo Visual Basic. Sin embargo, nunca se había empleado como punto de partida a un lenguaje multiplataforma ni se había hecho de manera tan eficiente. Cuando Java apareció en el mercado se hablaba de que era entre 10 y 30 veces más lento que C++. Ahora, con los compiladores JIT (Just in Time) se habla de tiempos entre 2 y 5 veces más lentos. Con la potencia de las máquinas actuales, esa lentitud es un precio que se puede pagar sin problemas contemplando las ventajas de un lenguaje portable.
Orientación a objetos
Dado que Java es un lenguaje orientado a objetos, es imprescindible entender qué es esto y en qué afecta a nuestros programas. Desde el principio, la carrera por crear lenguajes de programación ha sido una carrera para intentar realizar abstracciones sobre la máquina. Al principio no eran grandes abstracciones y el concepto de lenguajes imperativos es prueba de ello. Exigen pensar en términos del ordenador y no en términos del problema a solucionar. Esto provoca que los programas sean difíciles de crear y mantener, al no tener una relación obvia con el problema que representan No abstraen lo suficiente.
Muchos paradigmas de programación intentaron resolver este problema alterando la visión del mundo y adaptándola al lenguaje. Estas aproximaciones modelaban el mundo como un conjunto de objetos o de listas. Funcionaban bien para algunos problemas pero no para otros. Los lenguajes orientados a objetos, más generales, permiten realizar soluciones que, leídas, describen el problema. Permiten escribir soluciones pensando en el problema y no en el ordenador que debe solucionarlo en último extremo. Se basan en cinco características:
Todo es un objeto. Cada elemento del problema debe ser modelizado como un objeto.
Un programa es un conjunto de objetos diciendose entre sí que deben hacer por medio de mensajes. Cuando necesitas que un objeto haga algo le mandas un mensajes. Más concretamente, ejecutas un método de dicho objeto.
Cada objeto tiene su propia memoria, que llena con otros objetos. Cada objeto puede contener otros objetos. De este modo se puede incrementar la complejidad del programa, pero detrás de dicha complejidad sigue habiendo simples objetos.
Todo objeto tiene un tipo. En jerga POO, cada objeto es una instancia (un caso particular) de una clase (el tipo general). Lo que distingue a una clase de otra es la respuesta a la pregunta, ¿qué mensajes puedes recibir?
Todos los objetos de un determinado tipo pueden recibir los mismos mensajes. Por ejemplo, dado que un objeto de tipo Gato es también un objeto de tipo Animal, se puede hacer código pensando en los mensajes que se mandan a un animal y aplicarlo a todos los objetos de ese tipo, sin pensar si son también gatos o no.
Eso de que la programación orientada a objetos intente establecer una relación biunívoca entre el espacio del problema y el de la solución está muy bien pero... ¿cómo hacemos que un objeto realice cosas útiles y necesarias? Por medio de su interfaz, interfaz que está definida en la clase del objeto. Por ejemplo, supongamos que tenemos la clase Interruptor cuyo interfaz define los métodos apagar() y encender(). Entonces hacemos lo siguiente:
Interfaz de un objeto
Interruptor i = new Interruptor();
i.encender();
Primero creamos una referencia llamada i de tipo Interruptor, y luego creamos un objeto, una instancia de dicho tipo, por medio de la palabra reservada new. Asignamos ese objeto a la referencia por medio del signo =. Por último, enviamos un mensaje al objeto recién creado y asignado poniendo el nombre de la referencia, un punto, y el nombre del mensaje (método).
Java es un lenguaje desarrollado por Sun con la intención de competir con Microsoft en el mercado de la red. Sin embargo, su historia se remonta a la creación de una filial de Sun (FirstPerson) enfocada al desarrollo de aplicaciones para electrodomésticos, microondas, lavaplatos, televisiones... Esta filial desapareció tras un par de éxitos de laboratorio y ningún desarrollo comercial.
Sin embargo, para el desarrollo en el laboratorio, uno de los trabajadores de FirstPerson, James Gosling, desarrolló un lenguaje derivado de C++ que intentaba eliminar las deficiencias del mismo. Llamó a ese lenguaje Oak. Cuando Sun abandonó el proyecto de FirstPerson, se encontró con este lenguaje y, tras varias modificaciones (entre ellas la del nombre), decidió lanzarlo al mercado en verano de 1995
El éxito de Java reside en varias de sus características. Java es un lenguaje sencillo, o todo lo sencillo que puede ser un lenguaje orientado a objetos, eliminando la mayor parte de los problemas de C++, que aportó su granito (o tonelada) de arena a los problemas de C. Es un lenguaje independiente de plataforma, por lo que un programa hecho en Java se ejecutará igual en un PC con Windows que en una estación de trabajo basada en Unix. También hay que destacar su seguridad, desarrollar programas que accedan ilegalmente a la memoria o realizar caballos de troya es una tarea propia de titanes.
Cabe mencionar también su capacidad multihilo, su robustez o lo integrado que tiene el protocolo TCP/IP, lo que lo hace un lenguaje ideal para Internet. Pero es su sencillez, portabilidad y seguridad lo que le han hecho un lenguaje de tanta importancia
Portabilidad
La portabilidad se consigue haciendo de Java un lenguaje medio interpretado medio compilado. ¿Cómo se come esto? Pues se coge el código fuente, se compila a un lenguaje intermedio cercano al lenguaje máquina pero independiente del ordenador y el sistema operativo en que se ejecuta (llamado en el mundo Java bytecodes) y, finalmente, se interpreta ese lenguaje intermedio por medio de un programa denominado máquina virtual de Java.
Este esquema lo han seguido otros lenguajes, como por ejemplo Visual Basic. Sin embargo, nunca se había empleado como punto de partida a un lenguaje multiplataforma ni se había hecho de manera tan eficiente. Cuando Java apareció en el mercado se hablaba de que era entre 10 y 30 veces más lento que C++. Ahora, con los compiladores JIT (Just in Time) se habla de tiempos entre 2 y 5 veces más lentos. Con la potencia de las máquinas actuales, esa lentitud es un precio que se puede pagar sin problemas contemplando las ventajas de un lenguaje portable.
Orientación a objetos
Dado que Java es un lenguaje orientado a objetos, es imprescindible entender qué es esto y en qué afecta a nuestros programas. Desde el principio, la carrera por crear lenguajes de programación ha sido una carrera para intentar realizar abstracciones sobre la máquina. Al principio no eran grandes abstracciones y el concepto de lenguajes imperativos es prueba de ello. Exigen pensar en términos del ordenador y no en términos del problema a solucionar. Esto provoca que los programas sean difíciles de crear y mantener, al no tener una relación obvia con el problema que representan No abstraen lo suficiente.
Muchos paradigmas de programación intentaron resolver este problema alterando la visión del mundo y adaptándola al lenguaje. Estas aproximaciones modelaban el mundo como un conjunto de objetos o de listas. Funcionaban bien para algunos problemas pero no para otros. Los lenguajes orientados a objetos, más generales, permiten realizar soluciones que, leídas, describen el problema. Permiten escribir soluciones pensando en el problema y no en el ordenador que debe solucionarlo en último extremo. Se basan en cinco características:
Todo es un objeto. Cada elemento del problema debe ser modelizado como un objeto.
Un programa es un conjunto de objetos diciendose entre sí que deben hacer por medio de mensajes. Cuando necesitas que un objeto haga algo le mandas un mensajes. Más concretamente, ejecutas un método de dicho objeto.
Cada objeto tiene su propia memoria, que llena con otros objetos. Cada objeto puede contener otros objetos. De este modo se puede incrementar la complejidad del programa, pero detrás de dicha complejidad sigue habiendo simples objetos.
Todo objeto tiene un tipo. En jerga POO, cada objeto es una instancia (un caso particular) de una clase (el tipo general). Lo que distingue a una clase de otra es la respuesta a la pregunta, ¿qué mensajes puedes recibir?
Todos los objetos de un determinado tipo pueden recibir los mismos mensajes. Por ejemplo, dado que un objeto de tipo Gato es también un objeto de tipo Animal, se puede hacer código pensando en los mensajes que se mandan a un animal y aplicarlo a todos los objetos de ese tipo, sin pensar si son también gatos o no.
Eso de que la programación orientada a objetos intente establecer una relación biunívoca entre el espacio del problema y el de la solución está muy bien pero... ¿cómo hacemos que un objeto realice cosas útiles y necesarias? Por medio de su interfaz, interfaz que está definida en la clase del objeto. Por ejemplo, supongamos que tenemos la clase Interruptor cuyo interfaz define los métodos apagar() y encender(). Entonces hacemos lo siguiente:
Interfaz de un objeto
Interruptor i = new Interruptor();
i.encender();
Primero creamos una referencia llamada i de tipo Interruptor, y luego creamos un objeto, una instancia de dicho tipo, por medio de la palabra reservada new. Asignamos ese objeto a la referencia por medio del signo =. Por último, enviamos un mensaje al objeto recién creado y asignado poniendo el nombre de la referencia, un punto, y el nombre del mensaje (método).
Las API de Java
La mayoría de los desarrolladores Java hacen referencia constantemente a la documentación API de Java online oficial, — también llamada el Javadoc (vea Recursos). De forma predeterminada, usted ve tres marcos en el Javadoc. El marco superior izquierdo muestra todos los paquetes en la API y debajo están las clases en cada paquete. El marco principal (a la derecha) muestra detalles del paquete o de la clase seleccionada actualmente.
Por ejemplo, si selecciona el paquete java.util en el marco superior izquierdo y luego selecciona la clase ArrayList que aparece debajo de él, en el marco derecho, verá detalles acerca del ArrayList, que incluyen una descripción de lo que hace, cómo usarlo y sus métodos.
Como cualquier lenguaje de programación, el lenguaje Java tiene su propia estructura, reglas de sintaxis y paradigma de programación. El paradigma de programación del lenguaje Java se basa en el concepto de programación orientada a objetos (OOP), que las funciones del lenguaje soportan.
El lenguaje Java es un derivado del lenguaje C, por lo que sus reglas de sintaxis se parecen mucho a C: por ejemplo, los bloques de códigos se modularizan en métodos y se delimitan con llaves ({ y }) y las variables se declaran antes de que se usen.
Estructuralmente, el lenguaje Java comienza con paquetes. Un paquete es el mecanismo de espacio de nombres del lenguaje Java. Dentro de los paquetes se encuentran las clases y dentro de las clases se encuentran métodos, variables, constantes, entre otros. En este tutorial, aprenderá acerca de las partes del lenguaje Java.
El compilador Java
Cuando usted programa para la plataforma Java, escribe el código de origen en archivos .java y luego los compila. El compilador verifica su código con las reglas de sintaxis del lenguaje, luego escribe los códigos byte en archivos .class. Los códigos byte son instrucciones estándar destinadas a ejecutarse en una Java Virtual Machine (JVM). Al agregar este nivel de abstracción, el compilador Java difiere de los otros compiladores de lenguaje, que escriben instrucciones apropiadas para el chipset de la CPU en el que el programa se ejecutará.
La JVM
Al momento de la ejecución, la JVM lee e interpreta archivos .class y ejecuta las instrucciones del programa en la plataforma de hardware nativo para la que se escribió la JVM. La JVM interpreta los códigos byte del mismo modo en que una CPU interpretaría las instrucciones del lenguaje del conjunto. La diferencia es que la JVM es un software escrito específicamente para una plataforma particular. La JVM es el corazón del principio "escrito una vez, ejecutado en cualquier lugar" del lenguaje Java. Su código se puede ejecutar en cualquier chipset para el cual una implementación apropiada de la JVM está disponible. Las JVM están disponibles para plataformas principales como Linux y Windows y se han implementado subconjuntos del lenguaje Java en las JVM para teléfonos móviles y aficionados de chips.
El recolector de basura
En lugar de forzarlo a mantenerse a la par con la asignación de memoria (o usar una biblioteca de terceros para hacer esto), la plataforma Java proporciona una gestión de memoria lista para usar. Cuando su aplicación Java crea una instancia de objeto al momento de ejecución, la JVM asigna automáticamente espacio de memoria para ese objeto desde el almacenamiento dinámico, que es una agrupación de memoria reservada para que use su programa. El recolector de basura Java se ejecuta en segundo plano y realiza un seguimiento de cuáles son los objetos que la aplicación ya no necesita y recupera la memoria que ellos ocupan. Este abordaje al manejo de la memoria se llama gestión de la memoria implícita porque no le exige que escriba cualquier código de manejo de la memoria. La recogida de basura es una de las funciones esenciales del rendimiento de la plataforma Java.
El kit de desarrollo de Java
Cuando usted descarga un kit de desarrollo de Java (JDK), obtiene, — además del compilador y otras herramientas, — una librería de clase completa de programas de utilidad preconstruidos que lo ayudan a cumplir cualquier tarea común al desarrollo de aplicaciones. El mejor modo para tener una idea del ámbito de los paquetes y bibliotecas JDK es verificar la documentación API JDK (vea Recursos).
El Java Runtime Environment
El Java Runtime Environment (JRE, también conocido como el Java Runtime) incluye las bibliotecas de códigos de la JVM y los componentes que son necesarios para programas en ejecución escritos en el lenguaje Java. Está disponible para múltiples plataformas. Puede redistribuir libremente el JRE con sus aplicaciones, de acuerdo a los términos de la licencia del JRE, para darles a los usuarios de la aplicación una plataforma en la cual ejecutar su software. El JRE se incluye en el JDK.
Configuración de su entorno de desarrollo de Java
En esta sección, tendrá instrucciones para descargar e instalar el JDK 6 y el lanzamiento actual de IDE Eclipse y para configurar su entorno de desarrollo de Eclipse.
Si usted ya ha instalado el JDK e IDE Eclipse, tal vez quiera saltar a la sección Getting started with Eclipse o a la que le sigue, Object-oriented programming concepts.
Su entorno de desarrollo
El JDK incluye un conjunto de herramientas de línea de comandos para compilar y ejecutar su código Java, que incluye una copia completa del JRE. Aunque usted ciertamente puede usar estas herramientas para desarrollar sus aplicaciones, la mayoría de los desarrolladores valoran la funcionalidad adicional, la gestión de tareas y la interfaz visual de un IDE.
Eclipse es un IDE de código abierto popular para el desarrollo Java. Maneja las tareas básicas, tales como la compilación de códigos y la configuración de un entorno de depuración, para que pueda centrase en escribir y probar códigos. Además, puede usar Eclipse para organizar archivos de códigos de origen en proyectos, compilar y probar esos proyectos y almacenar archivos de proyectos en cualquier cantidad de repositorios de origen. Necesita tener instalado un JDK para usar Eclipse para el desarrollo Java.
Crea aplicaciones en el navegador! https://paiza.cloud/en/
srand(time(NULL));
ResponderEliminar#include
ResponderEliminar#include
unsigned t0, t1;
t0=clock()
// Code to execute
t1 = clock();
double time = (double(t1-t0)/CLOCKS_PER_SEC);
cout << "Execution Time: " << time << endl;
#include
ResponderEliminar#include
int main(int argc, char *argv[])
{
clock_t start = clock();
/* Aquí el Código */
printf("Tiempo transcurrido: %f", ((double)clock() - start) / CLOCKS_PER_SEC)
return 0;
}
nclude
ResponderEliminar#include
int main(){
clcok_t tiempo_inicio, tiempo_final;
double segundos;
tiempo_inicio = clock();
/*operación a medir tiempos, operación básica del código, normalmente bucles*/
tiempo_final = clock();
segundos = (double)(tiempo_inicio - timpo_final) / CLOCKS_PER_SEC; /*según que estes midiendo el tiempo en segundos es demasiado grande*/
printf("%f",segundos);
return 0;
https://users.dcc.uchile.cl/~lmateu/CC10A/Apuntes/ordenamiento/index.html
ResponderEliminarhttp://ingeneriadesistemas2018.blogspot.com/#
ResponderEliminar