sábado, 30 de abril de 2016

22 (Práctica) POO Java by Cus: Arrays estáticos, Length, Fill, CopyOf, F...


Demostración T= 0 a 1:30
Análisis del código T= 1:44
Creación de un arreglo T=2:18
Array.Fill T= 2:47
Estructura de un For each T= 2:55
Uso del CopiOF T= 4:17
Ending T= 645


viernes, 15 de abril de 2016

20 (Clase) POO Java by Cus: Arrays estáticos Enmascaramiento o conve...



Arrays estáticos (Arreglo):

Un arreglo es un conjunto de datos o una estructura de datos homogéneos que se encuentran ubicados en forma consecutiva en la memoria RAM (sirve para almacenar datos en forma temporal).


VENTAJAS
INCONVENIENTES
- Acceso y operación con elementos más eficiente.
- Permiten almacenar tanto objetos como tipos primitivos directamente
- Rigidez. No se pueden redimensionar (aunque sí copiar a otros arrays estáticos de mayor tamaño).
Fuente: (enlace)

Definición

Un arreglo puede definirse como un grupo o una colección finita, homogénea y ordenada de elementos. Los arreglos pueden ser de los siguientes tipos:
  • De una dimensión.
  • De dos dimensiones.
  • De tres o más dimensiones.

Tipos de arreglos

  • Arreglos unidimensionales.
  • Arreglos multidimensionales.
  • Arreglo con múltiple subíndices.

Arreglos unidimensionales

Es un tipo de datos estructurado que está formado de una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. Están formados por un conjunto de elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre, y se diferencian por la posición que tiene cada elemento dentro del arreglo de datos. Al declarar un arreglo, se debe inicializar sus elementos antes de utilizarlos. Para declarar un arreglo tiene que indicar su tipo, un nombre único y la cantidad de elementos que va a contener.

Arreglos multidimensionales

Es un tipo de dato estructurado, que está compuesto por dimensiones. Para hacer referencia a cada componente del arreglo es necesario utilizar n índices, uno para cada dimensión. El término dimensión representa el número de índices utilizados para referirse a un elemento particular en el arreglo. Los arreglos de más de una dimensión se llaman arreglos multidimensionales.

Arreglos con múltiple subíndices

Es la representación de tablas de valores, consistiendo de información arreglada en renglones y columnas. Para identificar un elemento particular de la tabla, se debe especificar dos subíndices; el primero identifica el renglón del elemento y el segundo identifica la columna del elemento. A los arreglos que requieren dos subíndices para identificar un elemento en particular se conocen como arreglo de doble subíndice. Note que los arreglos de múltiples subíndices pueden tener más de dos subíndices.

Operaciones con arreglos

Las operaciones en arreglos pueden clasificarse de la siguiente forma:
  • Lectura: este proceso consiste en leer un dato de un arreglo y asignar un valor a cada uno de sus componentes
  • Escritura: Consiste en asignarle un valor a cada elemento del arreglo.
  • Asignación: No es posible asignar directamente un valor a todo el arreglo
  • Actualización: Dentro de esta operación se encuentran las operaciones de eliminar, insertar y modificar datos. Para realizar este tipo de operaciones se debe tomar en cuenta si el arreglo está o no ordenado.
  • Ordenación.
  • Búsqueda.
  • Insertar.
  • Borrar.
  • Modificar.
“La mayoría de las operaciones anteriores cobra sentido con los arreglos dinámicos”

La sintaxis a emplear con arrays:

private TipoPrimitivoUObjeto [ ] [ ] nombreDelArray;   //Declaración: reserva espacio de memoria
nombreDelArray = new TipoPrimitivoUObjeto [numero1] [numero2]; //Creación del array


private int [ ] miArrayDeNumeros = { 2, -3, 4, 7, -10 }; //Sintaxis declarar y crear un array en una línea


Enmascaramiento o conversión

Tipado:

https://es.wikipedia.org/wiki/Tipado_fuerte
Un lenguaje de programación es fuertemente tipado si no se permiten violaciones de los tipos de datos, es decir, dado el valor de una variable de un tipo concreto, no se puede usar como si fuera de otro tipo distinto a menos que se haga una conversión. No hay una única definición de este término. Un lenguaje que se dice que no está tipado se refiere a que no está fuertemente tipado.
“Java se puede considerar como un lenguaje de Tipado intermedio o suave, debido a que las operaciones con número Reales (float, double) se puede realizará directamente con número enteros (integer, long) sin presentar problemas de compilación, sin embargo no se puede asegurar que no exista perdida de informacion en cada operacion”


En Java es posible transformar el tipo de una variable u objeto en otro diferente al original con el que fue declarado. Este proceso se denomina "conversión", "moldeado" o "tipado" (también lo llaman casting) y es algo que se debe manejar con cuidado, pues un mal uso de la conversión de tipos frecuentemente da lugar a errores.
Una forma de realizar conversiones consiste en colocar el tipo destino entre paréntesis, a la izquierda del valor que queremos convertir de la forma siguiente: Tipo VariableNueva = (NuevoTipo) VariableAntigua;


Por ejemplo:

int miNumero = (int) ObjetoInteger;   char c = (char)System.in.read();
“Basicamente se le da un formato a la variable antes de ser guardado en la variable nueva”

Las conversiones permitidas son las siguientes:

TIPO ORIGEN
TIPO DESTINO
byte
double, float, long, int, char, short
short
double, float, long, int
char
double, float, long, int
int
double, float, long
long
double, float
float
Double


“También es aplicable a objetos, no está limitado a variables primitivas”

Length

La sintaxis nombreDelArray.length devuelve un entero (int) con el número de elementos que forman el array.

valueOf

El método valueOf es un método sobrecargado aplicable a numerosas clases de Java y que permite realizar conversiones de tipos. Ejemplos de uso.
EXPRESIÓN
INTERPRETACIÓN aprenderaprogramar.com
miInteger = miInteger.valueOf (i)
Con i entero primitivo que se transforma en Integer
miInteger = miInteger.valueOf (miString)
El valor del String se transforma en Integer
miString = miString.valueOf (miBooleano)
El booleano se transforma en String “true” o “false”
miString = miString.valueOf (miChar)
El carácter (char) se transforma en String
miString = miString.valueOf (miDouble)
El double se transforma en String. Igualmente aplicable a float, int, long.


“El principal uso del valueof es llevar valores numérico a Texto, por ejemplo 225 --> “225” donde las comilla significan que es una cadena de caracteres”

Static

static: los atributos miembros de una clase pueden ser atributos de clase o atributos de instancia; se dice que son atributos de clase si se usa la palabra clave static: en ese caso la variable es única para todas las instancias (objetos) de la clase (ocupa un único lugar en memoria). A veces a las variables de clase se les llama variables estáticas. Si no se usa static, el sistema crea un lugar nuevo para esa variable con cada instancia (la variable es diferente para cada objeto). En el caso de una constante no tiene sentido crear un nuevo lugar de memoria por cada objeto de una clase que se cree. Por ello es adecuado el uso de la palabra clave static. Cuando usamos “static final” se dice que creamos una constante de clase, un atributo común a todos los objetos de esa clase.

Final

final: en este contexto indica que una variable es de tipo constante: no admitirá cambios después de su declaración y asignación de valor. final determina que un atributo no puede ser sobreescrito o redefinido. O sea: no funcionará como una variable “tradicional”, sino como una constante. Toda constante declarada con final ha de ser inicializada en el mismo momento de declararla. final también se usa como palabra clave en otro contexto: una clase final (final) es aquella que no puede tener clases que la hereden.

ToString

... El método toString(). El propósito de este método es asociar a todo objeto un texto representativo. Llamar a toString() sobre un objeto Integer producirá un resultado ... devuelve el entero asociado, solo que en forma de String. ¿Qué ocurre cuando se invoca el método sobre un objeto definido por el programador? ...  System.out.println (“Obtenemos “ + profesor1.toString() );. En este caso, el resultado que obtenido es:
“Obtenemos Profesor@1de9ac4”.
El método efectivamente ha devuelto un String, ¿pero qué ha devuelto? El resultado obtenido consta del nombre de la clase seguido de una cadena “extraña” que representa la dirección de memoria en que se encuentra el objeto...
file:*/docs/api/java/lang/Object.html#toString--
public String toString()
Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.
The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns:
a string representation of the object.

Equals

file:*/docs/api/java/lang/Object.html#equals-java.lang.Object-
(de la super clase universal Object)
public boolean equals(Object obj)
Indicates whether some other object is "equal to" this one.
The equals method implements an equivalence relation on non-null object references:
  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should returntrue.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.
The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).
Note that it is generally necessary to override the hashCode method whenever this method is overridden, so as to maintain the general contract for the hashCodemethod, which states that equal objects must have equal hash codes.
Parameters:
obj - the reference object with which to compare.
Returns:
true if this object is the same as the obj argument; false otherwise.
See Also:
hashCode(), HashMap


“Su versión original o nativa normalmente se utiliza solo para comparar objetos de tipo String o de tipo Date, si se desea saber si dos objetos creado por el programador son iguales, el método equals de esos objetos debe ser sobre escrito para que realice una comparación de manera correcta tomando en cuenta los parametros que para el programador definen la igualdad entre los objetos”.

InstanceOf

El operador instanceof permite comprobar si un objeto es de una clase concreta.

Fill

Description:

The java.util.Arrays.fill(int[] a, int val) method assigns the specified int value to each element of the specified array of ints.

Declaration

Following is the declaration for java.util.Arrays.fill() method
public static void fill(int[] a, int val)

Parameters

  • a -- This is the array to be filled.
  • val -- This is the value to be stored in all elements of the array.

Return Value

This method does not return any value.

CopyOF

Description

The java.util.Arrays.copyOf(int[] original,int newLength) method copies the specified array, truncating or padding with zeros (if necessary) so the copy has the specified length. For all indices that are valid in both the original array and the copy, the two arrays will contain identical values. For any indices that are valid in the copy but not the original, the copy will contain 0.Such indices will exist if and only if the specified length is greater than that of the original array.

Declaration

Following is the declaration for java.util.Arrays.copyOf() method
public static int[] copyOf(int[] original,int newLength)

Parameters

  • original -- This is the array to be copied.
  • newLength -- This is the length of the copy to be returned.

Return Value

This method returns a copy of the original array, truncated or padded with zeros to obtain the specified length.
Exception
  • NegativeArraySizeException -- If newLength is negative.
  • NullPointerException -- If original is null.

For Each

EL FOR EXTENDIDO O BUCLES FOR EACH EN JAVA
... Esta forma de uso del for, que ya existía en otros lenguajes, facilita el recorrido de objetos existentes en una colección sin necesidad de definir el número de elementos a recorrer. La sintaxis que se emplea es:
for ( TipoARecorrer nombreVariableTemporal : nombreDeLaColección ) {
                                           Instrucciones
   }



En ningún momento se usa la palabra clave each... La interpretación de la sintaxis del for extendido es: “Para cada elemento del tipo TipoARecorrer que se encuentre dentro de la colección nombreDeLaColección ejecuta las instrucciones que se indican”. La variable local-temporal del ciclo almacena en cada paso el objeto que se visita y sólo existe durante la ejecución del ciclo y desaparece después. Debe ser del mismo tipo que los elementos a recorrer.

jueves, 17 de marzo de 2016

01 (Clase) POO Java by Cus: Paradigmas, Java y Elementos de un programa




---------------------------------------------- Clase ---------------------------------------------

Paradigmas de programación.

Un paradigma de programación es una propuesta tecnológica adoptada por una comunidad de programadores y desarrolladores cuyo núcleo central es incuestionable en cuanto que únicamente trata de resolver uno o varios problemas claramente delimitados; la resolución de estos problemas debe suponer consecuentemente un avance significativo en al menos un parámetro que afecte a la ingeniería de software.
Un paradigma de programación representa un enfoque particular o filosofía para diseñar soluciones. Los paradigmas difieren unos de otros, en los conceptos y la forma de abstraer los elementos involucrados en un problema, así como en los pasos que integran su solución del problema, en otras palabras, el cómputo.

Programación estructurada.

La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación.

Programación modular.

La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.
Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver.

Programación orientada a objetos.

La programación orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos en sus interacciones, para diseñar aplicaciones y programas informáticos.
Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.

Programación orientada a Aspectos.

La Programación Orientada a Aspectos o POA (en inglés: aspect-oriented programming) es un paradigma de programación relativamente reciente cuya intención es permitir una adecuada modularización de las aplicaciones y posibilitar una mejor separación de responsabilidades (Obligación o correspondencia de hacer algo).
Gracias a la POA se pueden encapsular los diferentes conceptos que componen una aplicación en entidades bien definidas, eliminando las dependencias entre cada uno de los módulos. De esta forma se consigue razonar mejor sobre los conceptos, se elimina la dispersión del código y las implementaciones resultan más comprensibles, adaptables y reusables. Varias tecnologías con nombres diferentes se encaminan a la consecución de los mismos objetivos y así, el término POAes usado para referirse a varias tecnologías relacionadas como los métodos adaptativos, los filtros de composición, la programación orientada a sujetos o la separación multidimensional de competencias.

Buenas prácticas de programación

  • Escribe tus programas lo más simple y directo posible. Keep it simple.
  • Si trabajas con un compilador, ajusta sus opciones para que arroje la mayor cantidad de errores y advertencias posibles al compilar, de ese modo, tu aplicación tendrá menores chances de obtener errores aleatorios. En base a lo anterior, revisa cada mensaje para tomar las medidas pertinentes.
  • Todo programa debe ser previamente comentado, explicando el propósito, funcionamiento completo y el resultado esperado.
  • Dentro de las funciones definidas, establece un espaciado o indentación, que resalte la estructura funcional de la aplicación y facilite la lectura al programador al que le corresponda analizar el código.
  • Por lo general, se usa un nivel de indentación por cada bloque de código (sentencias condicionales y bucles son consideradas como bloques de código embebido dentro de otro, por lo que se recomienda la indentación), ésta indentación corresponde a una sangría que comúnmente tiene el valor de una tabulación (tecla Tab) o bien tres o cuatro espacios.
  • Es importante que el tamaño de las sangrías sean regulares (consistentes) y no varíen a lo largo del código, es decir, si el primer bloque ocupa como indentación una tabulación, el resto de bloques deben ser indentados con una tabulación adicional por cada nivel, con eso se facilita la lectura en cualquier editor de código.
  • Se recomienda declarar variables en líneas separadas, ya que se facilita la descripción de cada variable mediante comentarios.
  • Poner un espacio después de cada coma(,) facilita la legibilidad del código.
  • No uses variables cuyo nombre no posea algún significado descriptivo, una variable con nombres significativos permite al lector entender el contexto del código y permite disminuir la cantidad de documentación asociada, puesto que con un código legible y nombres significativos, el código se ve auto documentado. Por ejemplo, una variable llamada cantidad_recursos, tiene más significado que una variable llamada c.
  • Se consistente al momento de utilizar un estándar para nombres largos, puedes usar el estándar usado en C ("nombre_largo"), o bien el utilizado en Java, llamado CamelCase("nombre","VariableNombreLargo","Clase","ClaseNombreLargo").
  • Evita el código commented-out, que corresponde al código comentado para que no se ejecute/no compile, ya que la lectura del código se vuelve engorrosa.
  • Comenta cuando sea justo y necesario, usa los comentarios dentro de las funciones para describir las variables (sólo cuando su utilidad sea potencialmente dudosa) y cuando existan bloques de código difíciles de entender a primera vista; el exceso de comentarios vuelve ilegible el código.
  • Se recomienda como buena costumbre, añadir al inicio de cada función, un bloque de comentarios que expliquen el comportamiento general de la función, de modo que se pueda entender a grosso modo que es lo que hace, o se espera que haga, así se facilita la búsqueda de errores, y se evita el análisis innecesario en una gran cantidad de casos.
  • Es altamente recomendada la definición de variables locales al inicio de la implementación de cada función, como un bloque de código bien separado del bloque que contenga las instrucciones ejecutables, ésta separación puede consistir en una linea en blanco, o bien un comentario que denote la utilidad de cada bloque.
  • En caso de usar operadores binarios (por ejemplo +, -, &&, ||, entre otros) se recomienda poner espacio a los extremos de cada operador, de modo que se resalte su presencia y se facilite la lectura del código.
  • Se recomienda en algunas operaciones complejas, hacer uso de paréntesis redundantes o innecesarios que sirven para poder agrupar expresiones dentro de tales operaciones.
  • Evita la incorporación de más de una instrucción por línea. Ésto reduce notoriamente la legibilidad del código, ya que el programador habitualmente está acostumbrado a leer una instrucción por línea.
  • Si el código soporta la separación de sentencias en varias lineas, procura realizar una separación coherente, en el que cada punto de ruptura tenga sentido.
  • Si una instrucción abarca más de una linea, recuerda realizar la indentación necesaria.
  • Cuando escribas operaciones que hagan uso de muchos operadores, procura revisar que las operaciones se estén realizando en el orden que tu esperas que se realicen, muchas veces el lenguaje tiene otra forma de asimilar la precedencia, por lo que el resultado real varía con respecto al esperado, en general, se recomienda forzar la precedencia de operaciones haciendo uso de paréntesis.
  • Si el lenguaje soporta llaves({}) para la separación de bloques, es altamente recomendado usarlas, ello facilita el proceso de distinción de bloques de código en forma rápida, permitiendo identificar y reparar errores en el código con menos dificultad.
  • Si deseas evitar omitir una llave, abre y cierra el bloque de código que deseas crear, y luego introduce código dentro del bloque, con eso te aseguras la victoria.
  • Nunca olvides inicializar los contadores y sumadores.

Informacion complementaria:

Las empresas suelen mantener un manual de estilo que sirve de guía para que todos los programadores que trabajen en un proyecto sigan unas normas comunes.

Programa informático:

Un programa informático o programa de computadora es una secuencia de instrucciones, escritas para realizar una tarea específica en una computadora.1 Este dispositivo requiere programas para funcionar, por lo general, ejecutando las instrucciones del programa en un procesador central.2 El programa tiene un formato ejecutable que la computadora puede utilizar directamente para ejecutar las instrucciones. El mismo programa en su formato de código fuente legible para humanos, del cual se derivan los programas ejecutables (por ejemplo, compilados), le permite a un programador estudiar y desarrollar sus algoritmos. Una colección de programas de computadora y datos relacionados se conoce como software.

Elementos de un programa:

Variables:

En programación, una variable está formada por un espacio en el sistema de almacenaje (memoria principal de un ordenador) y un nombre simbólico (unidentificador) que está asociado a dicho espacio. Ese espacio contiene una cantidad o información conocida o desconocida, es decir un valor. El nombre de la variable es la forma usual de referirse al valor almacenado: esta separación entre nombre y contenido permite que el nombre sea usado independientemente de la información exacta que representa. El identificador, en el código fuente de la computadora puede estar ligado a un valor durante el tiempo de ejecución y el valor de la variable puede por lo tanto cambiar durante el curso de la ejecución del programa.
Nota: Todas las variables deben ser, Declaradas, Inicializadas y Utilizadas.

Operadores:

Un operador realiza una función, toma uno o más argumentos y devuelve un resultado. Es de esperar que podamos realizar operaciones aritméticas con números y lógicas con los booleanos. Estas operaciones se representan mediante operadores.
Los operadores, al igual que los métodos, se pueden sobrecargar, es decir se puede redefinir su funcionalidad dependiendo de los tipos de datos de los operandos que reciba. Así, podemos indicar que el operador (+) realice una suma aritmética si los operandos que recibe son dos enteros y una concatenación si recibe una cadena y otro objeto.

Los operadores son muy similares a los de C++, ya lo advertimos en su momento.

Operadores Aritméticos: Los habituales

  • Suma + .
  • Resta - .
  • Multiplicación * .
  • División / .
  • Resto de la División % .

Operadores de Asignación:

El principal es '=' pero hay más operadores de asignación con distintas funciones que explicamos brevemente ahora.
  • '+=' : op1 += op2 à op1 = op1 + op2
  • '-=' : op1 -= op2 à op1 = op1 - op2
  • '*=' : op1 *= op2 à op1 = op1 * op2
  • '/=' : op1 /= op2 à op1 = op1 / op2
  • '%=' : op1 %= op2 à op1 = op1 % op2

Operadores Unarios:

El mas (+) y el menos (-). Para cambiar el signo del operando.

Operador Instanceof:

Nos permite saber si un objeto pertenece a una clase o no.
  • NombreObjeto instanceof NombreClase

Operadores Incrementales:

Son los operadores que nos permiten incrementar las variables en una unidad. Se pueden usar delante y detrás de la variable dependiendo de lo que queramos, es decir, si queremos que incremente o viceversa antes de utilizar o lo contrario.
  • '++'
  • '--'

Operadores Relacionales:

Permiten comparar variables según relación de igualdad/desigualdad o relacción mayor/menor. Devuelven siempre un valor boolean.
  • '>': Mayor que
  • '<': Menor que
  • '==': Iguales
  • '!=': Distintos
  • '>=': Mayor o igual que
  • '<=': Menor o igual que

Operadores Lógicos:

Nos permiten construir expresiones lógicas.
  • '&&' : devuelve true si ambos operandos son true.
  • '||' : devuelve true si alguno de los operandos son true.
  • '!' : Niega el operando que se le pasa.
  • '&' : devuelve true si ambos operandos son true, evaluándolos ambos.
  • '|' : devuelve true uno de los operandos es true, evaluándolos ambos.

Operador de concatenación con cadena de caracteres '+':

  • Por Ejemplo: System.out.println("El total es"+ result +"unidades");

Operadores que actúan a nivel de bits:

Son mucho menos utilizados por eso los explicamos más por encima.
  • '>>': desplazamiento a la derecha de los bits del operando
  • '<<': desplazamiento a la izquierda de los bits de operando
  • '&': operador and a nivel de bit.
  • '|': operador or a nivel de bit

¿Que es JAVA?

Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados.1 2
Nota: Java es un lenguaje útil para casi todo tipo de problemas. Podemos citar como funcionalidades de Java varias:
  1. Aplicaciones “cliente”: son las que se ejecutan en un solo ordenador (por ejemplo el portátil de tu casa) sin necesidad de conectarse a otra máquina. Pueden servirte por ejemplo para realizar cálculos o gestionar datos.
  2. Aplicaciones “cliente/servidor”: son programas que necesitan conectarse a otra máquina (por ejemplo un servidor de datos) para pedirle algún servicio de forma más o menos continua, como podría ser el uso de una base de datos. Pueden servir por ejemplo para el teletrabajo: trabajar desde casa pero conectados a un ordenador de una empresa.
  3. Podemos hablar también de “aplicaciones web”, que son programas Java que se ejecutan en un servidor de páginas web. Estas aplicaciones reciben “solicitudes” desde un ordenador y envían al navegador (Internet Explorer, Firefox, Safari, etc.) que actúa como su cliente páginas de respuesta en HTML.
¿CUÁL ES EL MEJOR IDE PARA JAVA?
Hemos generado nuestro primer programa Java usando las herramientas más básicas posibles: el bloc de notas y la ventana consola de DOS. Los programadores utilizan herramientas más sofisticadas ya que facilitan el trabajo enormemente. Dentro de estas herramientas podríamos hablar de entornos de desarrollo (IDEs) o frameworks.
A veces ambos términos se confunden. Nosotros nos referiremos a IDE como a un programa que nos permite desarrollar código en un lenguaje y que incorpora habitualmente:
a) Un espacio para la escritura de código con cierta ayuda interactiva para generar código y para indicar los errores de sintaxis que se cometan por parte del programador.
b) La posibilidad de compilar y ejecutar el código escrito.
c) La posibilidad de organizar los proyectos de programación.
d) Herramientas auxiliares para programadores para detección de errores o análisis de programas (debuggers).
e) Otras opciones como utilidades para pruebas, carga de librerías, etc.
Existen diversos IDEs para Java. Vamos a citar algunos de ellos:
a) Eclipse: software libre que se puede descargar en http://www.eclipse.org. Es uno de los entornos Java más utilizados a nivel profesional. El paquete básico de Eclipse se puede expandir mediante la instalación de plugins para añadir funcionalidades a medida que se vayan necesitando.
b) NetBeans: software libre que se puede descargar en http://www.netbeans.org.  Otro de los entornos Java muy utilizados, también expandible mediante plugins. Facilita bastante el diseño gráfico asociado a aplicaciones Java.
c) BlueJ: software libre que se puede descargar en http://bluej.org. Es un entorno de desarrollo dirigido al aprendizaje de Java (entorno académico) y sin uso a nivel profesional. Es utilizado en distintas universidades para la enseñanza de Java. Destaca por ser sencillo e incluir algunas funcionalidades dirigidas a que las personas que estén aprendiendo tengan mayor facilidad para comprender aspectos clave de la programación orientada a objetos.
d) JBuilder: software comercial. Se pueden obtener versiones de prueba o versiones simplificadas gratuitas en la web http://www.embarcadero.com buscando en la sección de productos y desarrollo de aplicaciones. Permite desarrollos gráficos.
e) JCreator: software comercial. Se pueden obtener versiones de prueba o versiones simplificadas gratuitas en la web http://www.jcreator.com. Este IDE está escrito en C++ y omite herramientas para desarrollos gráficos, lo cual lo hace más rápido y eficiente que otros IDEs.
f) Otros.

---------------------------------- Fin de la Clase --------------------------------------------------

Ir a la ultima actualización de la clase: http://adf.ly/1QvjE5

REVISA AQUÍ!!!!  la descripción del vídeo para mas INFORMACIÓN y HERRAMIENTAS


Sus-Cri-Be-Te a este canal. o visitalo para ver las "listas de reproducción"

https://www.youtube.com/channel/UCJ70FExIXtnRE5cPI-P03vw


Recuerda seguirme en mis redes sociales:


twitter: @cusattic

Blogger: http://cusattic-java.blogspot.com/


comenta tus dudas, dime que te pareció y ¿que temas crees debería explicar?.


Gracias por ver el vídeo...


Espero hayas encontrado y aprendido lo que buscabas...


compártelo ya que "esto es para todos!!"