1. Algoritmo
Un algoritmo, en su definición más genérica, es un método para resolver un problema.
Aplicando el concepto al ámbito de la programación, podremos afirmar que un algoritmo es un modelo que representa la lógica de cómo se desarrolla la solución de un problema (que se resolverá luego mediante la elaboración de un programa), sin necesidad aún de codificarlo en un lenguaje de programación. Eso permite a los programadores desarrollar modelos que, luego de probarlos y depurarlos, les permitan obtener el código en un determinado lenguaje de programación de una manera más simple y eficiente.
Características
- Debe ser preciso indicando la realización de cada paso ordenadamente.
- Debe estar bien definido, si se sigue un algoritmo más de una vez, los resultados deben ser los mismos.
- Debe tener un fin; es decir, deberá ser finito.
- Debe ser independiente a la forma como se implementará en un lenguaje de programación dado.
- Debe estar documentado con comentarios que permitan su fácil interpretación.
- Debe ser lo más específico posible dentro del tenor del problema planteado.
2. Pseudocódigo
Es un lenguaje intermedio entre nuestro lenguaje y el de programación, debido a que quien lo utiliza se guía por una serie de normas, pero sin llegar a usar una estructura tan rígida como la del lenguaje de programación.
El objetivo al que apunta es que quien lo pone en práctica se centre más en la solución del algoritmo o el diseño de un software que en el programa que utiliza para crearlo. Y esto es posible porque es más fácil de manipular ya que no tiene que tener en mente el lenguaje en sí y además, es más fácil de construir que un programa.
Por ejemplo, si alguien tiene que hacer un software con un fin determinado, utiliza un pseudocódigo propio en donde confluyen frases del lenguaje coloquial y algunas sentencias de programación y una vez que se logra concretar el software, se puede pasar al escalón siguiente que es el de la transformación al lenguaje de programación formal que se vaya a utilizar.
De esta manera, al ser un lenguaje intermedio, no tiene una sintaxis determinada por lo que no todos los programadores utilizan la misma sintaxis con exactitud. Pero a la vez, como es una herramienta que está un paso previo al lenguaje formal de programación es fácil de transformar al que será ejecutado en la computadora
3. Diagrama de Flujo
Los diagramas de flujo, al igual que el pseudocódigo, permiten elaborar algoritmos, pero en este caso, de manera gráfica en base a una simbología previamente definida. Cada tipo de acción (lectura, escritura, condiciones, bucles, etc.) tiene su propia simbología y manera de representarse.
Es en sí, un diagrama que representa el flujo lógico secuencial de la lógica para resolver un problema, que, si no presenta incoherencias, puede ser fácilmente codificado en un determinado lenguaje de programación.
Los diagramas de flujo, al igual que el pseudocódigo, permiten elaborar algoritmos, pero en este caso, de manera gráfica en base a una simbología previamente definida. Cada tipo de acción (lectura, escritura, condiciones, bucles, etc.) tiene su propia simbología y manera de representarse.
Es en sí, un diagrama que representa el flujo lógico secuencial de la lógica para resolver un problema, que, si no presenta incoherencias, puede ser fácilmente codificado en un determinado lenguaje de programación.
Java Developer Kit (JDK)
El lenguaje Java tiene cinco principios básicos:1. Usar la metodología de la programación orientada a objetos.
2. Permitir ejecutar un mismo programa en múltiples sistemas operativos.
3. Incluir, por defecto, soporte para trabajo en red.
4. Estar diseñado para ejecutar código en sistemas remotos de forma segura.
5. Fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.
JDK se descarga desde:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Java Runtime Environment
El JRE (Java Runtime Environment) es un software Java que permite ejecutar todas las aplicaciones compiladas de Java, inclusive aquellas que tienen que mostrarse en Internet, en las páginas HTML.La tecnología Java Plug-in, incluida como parte del Runtime Environment de Java 2, Standard Edition (JRE), establece una conexión entre los navegadores más populares y la plataforma Java. Por su parte, Java permite que las aplicaciones se descarguen en red y se ejecuten en un espacio reservado.
También, se puede establecer restricciones de seguridad de manera sencilla en dicho espacio. Muchas aplicaciones multiplataforma necesitan de Java para funcionar adecuadamente.
Se debe considerar que, gracias a este JRE, un programador puede desarrollar su aplicación en un sistema operativo Windows, para luego ejecutarlo sobre Linux, sin ningún cambio. Esto es posible porque las aplicaciones en Java no se ejecutan sobre los sistemas operativos, sino sobre el JRE, quien conversa con el sistema operativo. Por eso, Java es transportable a cualquier plataforma.
El producto es completamente gratuito y existe para diferentes sistemas operativos, como se puede apreciar navegando al siguiente URL de Oracle.
https://www.oracle.com/technetwork/java/javase/downloads/index.html
Archivos JAR, WAR y EAR
JAR - Java ARchiveEs un formato de archivo basado en el formato de archivo ZIP y se utiliza para agregar muchos archivos. El desarrollo de aplicaciones Java utiliza archivos JAR para muchos propósitos útiles, como empaquetar todos los archivos de clase, archivos de imágenes y otros archivos requeridos, de modo que la descarga de un solo archivo tendrá todos los componentes descargados en el equipo cliente.
JAR es independiente de la plataforma formato que ha sido completamente escrito en Java (es un estándar abierto y extensible completamente). Puede ser creado mediante el uso de "jar.exe" utilidad de línea de comandos. También, puede crear archivos JAR programáticamente, usando paquete de APIs java.util.jar.
WAR - Web ARchive
Este formato de archivo se utiliza para empaquetar todos los componentes de una aplicación web. Puede contener JAR, JSP, Servlets, HTMLs, GIF, etc. El objetivo de este formato de archivo es el mismo que el del JAR, es decir, para hacer el despliegue. Esto tendrá un archivo XML denominado web.xml como el descriptor de despliegue, el que es usado por el contenedor Web para desplegar la aplicación web, correctamente.
EAR - Enterprise ARchive
Una aplicación empresarial puede estar compuesta de varias aplicaciones web y otros JAR independientes. Este formato de archivo de almacenamiento se utiliza en aquellos casos en agrupar todos los componentes de una aplicación empresarial en un único archivo. Teniendo como propósito, el despliegue decisiones, envío, y por lo tanto, el mantenimiento más fácil. Puesto que, una aplicación de empresa puede tener varias aplicaciones Web como sus componentes. También contiene un descriptor de despliegue no basado en XML, que es utilizado por el servidor de aplicaciones para desplegar la aplicación de empresa correctamente
Tipo de datos en Java
Los primeros lenguajes de programación no usaban objetos, solo variables. Una variable podríamos decir que es un espacio de la memoria del ordenador a la que asignamos un contenido que puede ser un valor numérico (solo números, con su valor de cálculo) o de tipo carácter o cadena de caracteres(valor alfanumérico que constará solo de texto o de texto mezclado con números).
Diagrama de flujo
Microsoft Visio es un software de dibujo vectorial que pertenece a Microsoft y viene como parte de la suite Microsoft Office.Visio comenzó a formar parte de los productos de Microsoft en el año 2000.
Las diversas herramientas que tiene, permiten realizar diagramas de oficinas,diagramas de bases de datos, diagramas de flujo de programas, UML y otros.
Categorías:
Sentencias o instrucciones repetitivas (while, do y for)
Instrucciones condicionales (if, else y switch)
Instrucciones de transferencia (break y continue)
Diagrama de instrucciones condicionales
Una instrucción condicional es aquella que en función a un resultado (true o false) de su condición, ejecutará una proposición, para luego, seguir con la ejecución secuencial de las sentencias del algoritmo. Java cuenta con las siguientes instrucciones condicionales:if
else
switch
Instrucciones if / else
Son condiciones que pueden trabajar juntas; sin embargo, la instrucción else es opcional, mientras que if es obligatoria. La proposición a ejecutar por alguna de ellas, está en función al valor devuelto por el resultado de la expresión que lleva como condición la instrucción if, que puede ser true (ejecuta la proposición de if) o false (no ejecuta la proposición de if, pero sí la de else si hubiese).
Instrucción Switch
Esta instrucción condicional tiene una sola condición, pero varios casos de respuesta en función a su resultado de coincidencia y con cada uno de sus casos, ejecutará la proposición correspondiente.
La instrucción switch se activa en el momento que alguno de los casos coincida con el valor de la expresión. Una forma de evitar que los demás casos se ejecuten, es utilizando una instrucción de transferencia (break).
Un switch funciona con los datos primitivos byte, short, char e int, con los tipos enumerados y las clases que envuelven a los tipos primitivos Character, Byte, Short e Integer.
Diagrama de instrucciones repetitivas
Una instrucción repetitiva es aquella que ejecuta varias veces un grupo de sentencias (proposición), estas están condicionadas por el valor de una expresión que mientras devuelva true, seguirá ejecutando el grupo de sentencias (proposición) y así hasta que la expresión devuelva el valor de false.Java cuenta con las siguientes instrucciones repetitivas:
while
do
for
Instrucción While
Tiene una condición de entrada, es decir, si desde el inicio la condición arroja false, entonces nunca se ejecutará el grupo de sentencias (proposición); en caso contrario, ejecuta el grupo de sentencias tantas veces hasta que la condición devuelva false.
Instrucción Do
Tiene una condición de salida, es decir, de todas maneras, ejecuta la proposición y sigue ejecutándola hasta que la condición arroje false.
Un ejemplo sencillo con do podría ser el solicitar N valores, hasta que se ingrese el valor 0 (cero) y que luego, el algoritmo imprima cuántos valores fueron solicitados por el cliente, sin considerar el último valor ingresado (cero).
Instrucción For
Es tal vez la más compleja de las instrucciones repetitivas, por presentar 3 argumentos: inicialización, control y actualización. La proposición se ejecuta tantas veces como el control lo permita con el valor true. Por otro lado, el argumento inicialización, solo se ejecuta una sola vez al inicio de la interacción, mientras que la actualización tantas veces como la proposición.
Diagrama de Instrucciones de transferencia
Las instrucciones de transferencia en Java son dos: break y continue.Ambas instrucciones diseñadas para ejecutarse dentro de una instrucción repetitiva y comprendida a la vez por una instrucción condicional.
En el caso de la instrucción break, cuando se ejecuta quiebra la instrucción repetitiva, es decir la finaliza y continúa con lo que sigue del programa.
En el caso de la instrucción continue, cuando se ejecuta, sigue dentro de la instrucción repetitiva, pero todas aquellas sentencias que estén después de continue no se ejecutarán, es decir vuelve a ejecutar la repetitiva desde su primera sentencia.
En los diagramas mostrados en la PPT, se muestra que break escapa de la repetitiva, mientras que continue sigue dentro de la repetitiva.
Instrucciones de transferencia
Una instrucción de transferencia es aquella que permite saltar varias líneas de sentencias hacia arriba o hacia abajo del algoritmo de programación.Para poder ser usada debe estar dentro de una instrucción condicional, que a su vez esté dentro de una instrucción repetitiva; excepto la instrucción break que puede usarse dentro de una instrucción switch, para saltar varios casos de comparación hasta el final de la instrucción (ver formato de switch, salto es break).
Java cuenta con 2 instrucciones de transferencia:
break
continue
Instrucción Break
Esta instrucción permite, literalmente, romper la interacción de una instrucción repetitiva. La imagen siguiente muestra una instrucción repetitiva que tiene varias sentencias y entre ellas, hay una condicional (if) que si su condición es true, entonces se ejecuta break; por lo tanto, en ese momento la ejecución salta al final del bloque de la repetitiva haciendo que esta termine.
Instrucción Continue
Esta instrucción a diferencia de break, hace que la instrucción repetitiva siga con su interacción, pero todas las sentencias que estuviesen después de la instrucción continue no se ejecutarían.
Cuando se ejecuta continue, las sentencias de 3 a N son ignoradas, no se ejecutan, como si no estuviesen allí. Un ejemplo sencillo con continue podría ser imprimir los múltiplos de 7, de 2 dígitos ([10, 99]).
Excepciones
Para controlar el flujo de un programa en Java, como se ha visto hasta ahora, puede hacerse mediante las ya conocidas sentencias estructuradas (if, while, break). Pero Java va mucho más allá, mediante una técnica de programación denominada excepciones.Mediante las excepciones se podrán evitar posibles errores o peligros en el código, así como, avisar a otros objetos de una condición anormal de ejecución, a fin de tomar las medidas necesarias.
Existen tres principales tipos de excepciones:
Checked exception: es un tipo de excepción predecible y que estaremos obligados a tratar. Por ejemplo, cuando se realiza una conexión a la base de datos, es necesario tratar la posible excepción que se produciría si la BD no estuviese disponible (SqlExceptions)). Este tipo de excepciones son las que se trabajará con mayor frecuencia.
Error: se produce cuando hay fallos graves en la máquina virtual Java, prácticamente ajeno al propio código fuente y que normalmente no son tratadas. Por ejemplo, si intentamos leer un fichero, pero hay un problema de hardware en el disco duro (IOError).
Runtime exception: viene producida por errores en la programación, por ejemplo, si intentamos acceder a un objeto que es nulo (NullPointerException) o si tratamos de acceder a un array en una posición mayor que su número de elementos (ArrayIndexOutofBoundsException). Este tipo de excepción también es llamada Unchecked exception.
Clases
Al hablar en términos de la programación orientada a objetos, se podría decir que el objeto celular es una instancia de una clase conocida como "ClaseCelular". Los celulares tienen características (color, peso, ancho, alto, grosor y otros) y comportamientos (enviaMensajes, recibeMensajes, seleccionDeTono, seleccionDeFondo, llamada y otros).Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de que los celulares comparten esas características comunes y construyen modelos o plantillas comunes, para que a partir de esas, se puedan crear muchos equipos celulares del mismo modelo. A ese modelo o plantilla, se le llama CLASE y a los equipos que fabrican a partir de ella, OBJETOS.
Definición teórica:
La clase es una plantilla o prototipo que define los atributos y métodos de un objeto. También se puede decir que es una plantilla genérica para un conjunto de objetos de similares características.
Para crear una clase Java, se debe definir su ámbito, utilizar la palabra reservada class y luego, dar un nombre que empieza con mayúscula.
public class Convierte {
atributos…
métodos…
}
Objetos
La tecnología orientada a objetos ya no se aplica solamente a los lenguajes de programación, sino también, en el análisis y diseño. Lo interesante de la Programación orientada a objetos (POO) es que proporciona conceptos y herramientas con los cuales se modela y representa el mundo real, tan fielmente como sea posible.Analizando un poco más a un objeto del mundo real, como por ejemplo, una computadora. No se necesita ser experto en hardware para saber que una computadora está compuesta internamente por varios componentes: la tarjeta madre, el chip del procesador, un disco duro, una tarjeta de video y otras partes más. El trabajo en conjunto de todos estos componentes hace operar a una computadora.
Internamente, cada uno de estos componentes puede ser sumamente complicado y puede ser fabricado por diversas compañías con diversos métodos de diseño. Cada componente es una unidad autónoma y todo lo que se requiere saber de adentro es cómo interactúan entre sí los componentes (si el procesador y las memorias son compatibles con la tarjeta madre o identificar dónde se coloca la tarjeta de video).
La programación orientada a objetos trabaja de esta manera. Todo el programa está construido en base a diferentes componentes (objetos), cada uno tiene un rol específico en el programa y todos los componentes pueden comunicarse entre ellos de formas predefinidas.
Todo objeto del mundo real tiene 2 componentes: características y comportamiento.
Por ejemplo, los automóviles tienen características (marca, modelo, color, velocidad máxima, entre otros) y comportamiento (frenar, acelerar, retroceder, seguridad (cinturón), cambiar llantas, entre otros).
Los objetos de software, al igual que los objetos del mundo real, también tienen características y comportamientos. Un objeto de software mantiene sus características en una o más "variables" e implementa su comportamiento con "métodos". Un método es una función o subrutina asociada a un objeto.
Atributos, métodos y constantes
Una clase en Java puede contener atributos, métodos y constantes. Los atributos, generalmente, son variables u otros objetos privados. Los métodos son fragmentos de código que realizan un procesamiento y finalmente, las constantes son variables u otros objetos que toman un dato que nunca cambiará en la clase Java que se está construyendo.
Constructores
En Java, los constructores poseen el mismo nombre de la clase a la cual pertenece y no puede regresar ningún valor. Por ejemplo, si se añadiera a la clase MiembrosDeClase, dos constructores, tendrían que ser llamados también MiembrosDeClase. Cuando en una clase no se escribe propiamente un constructor, Java asume uno por defecto.
Constructor por defecto
Es un constructor sin parámetros que, será invocado cada vez que se construya un objeto, sin especificar ningún argumento, en cuyo caso el objeto será iniciado con los valores predeterminados por el sistema (los atributos numéricos a ceros, los alfanuméricos a nulos y las referencias a objetos a null).
Principios básicos de la POO
EncapsulamientoEl encapsulamiento es inherente en la clase como una característica para ocultar los atributos. La utilidad del encapsulamiento permite manejar la complejidad, ya que tendrá a las clases como cajas negras donde solo se conoce el comportamiento, pero no los detalles internos. Esto es conveniente porque lo que interesa es conocer qué hace la clase, pero no será necesario saber cómo lo hace.
Herencia
Java permite el empleo de la herencia, característica muy potente que define una clase, tomando como base a otra ya existente. Esto es una de las bases de la reutilización de código, en lugar de copiar y pegar.
En Java, la herencia se especifica agregando la cláusula extends después del nombre de la clase. En la cláusula extends, se indica el nombre de la clase base, de la cual se quiere heredar. Por ejemplo, si se desea crear una clase Baldor extendida de la clase Convierte, este haría uso de extends.
Java no permite la herencia múltiple, sin embargo permite a las clases implementar múltiples interfaces.
Al heredar una clase base, se heredan tanto los atributos como los métodos públicos y protegidos, mientras que los constructores son utilizados, pero no heredados.
Polimorfismo
El polimorfismo es un concepto de la programación orientada a objetos que permite programar en forma general, en lugar de hacerlo en forma específica.
En líneas generales, sirve para programar objetos con características comunes y que todos estos, compartan la misma superclase en una jerarquía de clases, como si todas fueran objetos de la superclase. Esto simplifica la programación.
Interfaces y diferencias con clases
En Java, una interface se utiliza para planificar las operaciones que la aplicación realizará. Por ejemplo, se podrán definir las operaciones que se desean hacer con respecto a la figura geométrica cuadrado.
En la interface Cuadrado se está planificando que el cálculo del área y del perímetro. Cuando se define la interface, se hace una abstracción, es decir, se planifica sin entrar en detalles del cómo se hará, sino de lo que se desea hacer.
Constantes y enumeraciones
ConstantesUna constante es una variable del sistema que mantiene un valor inmutable a lo largo de toda la vida del programa. Las constantes en Java se definen mediante la palabra reservada final.
En los programas que generemos usualmente intervendrán constantes: valores matemáticos como el número Pi, o valores propios de programa que nunca cambian.
Enumeraciones
Las enumeraciones son tipos de datos que pueden contener una lista de posibles valores o constantes. Esta es una definición bastante simplista, ya que tal y como podremos ver, se trata de una utilidad muy flexible y poderosa.
Se puede definir una enumeración de forma independiente como si se tratase de cualquier otra clase, salvo que sustituiremos la palabra reservada class por la palabra enum. Para definir un nuevo enumerado se utiliza la siguiente construcción:
La clase Class
Las instancias de la clase Class representan a las clases e interfaces que se ejecutan en una aplicación Java.
Por ejemplo, una enumeración es un tipo de clase y una anotación es una especie de interfaz. Cada arreglo también pertenece a una clase que se refleja como un objeto de clase Class y que es compartida por todos los arrays con el mismo tipo de elemento y número de dimensiones.
Los tipos primitivos de Java (boolean, byte, char, short, int, long, float, y dobles), y la palabra clave void también están representados como objetos de la clase.
No hay comentarios:
Publicar un comentario