Lenguajes de Programación Orientados a Objetos
Java
Lenguaje de programación Java
Es un lenguaje de programación de propósito general, orientado a objetos y basado en clases 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, lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser re-compilado para correr en otra.
Java se basa en otros lenguajes:
-Sentencias comunes de C y C++ (sintaxis parecida a dichos lenguajes)
-Concurrencia parecida a la de Mesa (un lenguaje de investigación de Xerox)
-Interrupciones parecidas a las de Modula-3
-Tratamiento de enlace dinámico de código nuevo parecido al de Lisp
-Definiciones de interfaces parecidas a las de Objective C
-Gestión de almacenamiento automático parecida a la de Lisp
Características
Sun describe al lenguaje Java de la siguiente manera:
-Simple
-Orientado a Objetos
-Interpretado
-Robusto
-Seguro
-Arquitectura Neutral
-Multi-hilo
-Recolector de basura (Garbage Collector)
-Portable
-Alto Rendimiento: sobre todo con la aparición de hardware especializado y mejor software
-Dnámico
A continuación se describa algunas de las características más importantes de Java:
Orientado a objetos
Se refiere a un método de programación y al diseño del lenguaje. Aunque hay muchas interpretaciones para la POO, una primera idea es diseñar el software de forma que los distintos tipos de datos que usen estén unidos a sus operaciones. Así, los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos
El objetivo es hacer que grandes proyectos sean fáciles de gestionar y manejar, mejorando como consecuencia su calidad y reduciendo el número de proyectos fallidos.
Potabilidad
Los programas escritos en el lenguaje Java pueden ejecutarse igualmente en cualquier tipo de hardware. Este es el significado de ser capaz de escribir un programa una vez y que pueda ejecutarse en cualquier dispositivo
Recolector de Basura
En Java el problema fugas de memoria se evita en gran medida gracias a la recolección de basura (o automatic garbage collector). El programador determina cuándo se crean los objetos y el entorno en tiempo de ejecución de Java (Java runtime) es el responsable de gestionar el ciclo de vida de los objetos. El programa, u otros objetos pueden tener localizado un objeto mediante una referencia a éste. Cuando no quedan referencias a un objeto, el recolector de basura de Java borra el objeto, liberando así la memoria que ocupaba previniendo posibles fugas (ejemplo: un objeto creado y únicamente usado dentro de un método sólo tiene entidad dentro de éste; al salir del método el objeto es eliminado).
Seguro
El código Java pasa muchos tests antes de ejecutarse en una máquina. El código se pasa a través de un verificador de bytecodes que comprueba el formato de los fragmentos de código y aplica un probador de teoremas para detectar fragmentos de código ilegal -código que falsea punteros, viola derechos de acceso sobre objetos o intenta cambiar el tipo o clase de un objeto
Elementos Básicos de Java
Identificadores
Un identificador es el nombre de variables, métodos, clases e interfaces. Un identificador es una secuencia ilimitada de caracteres alfabéticos o dígitos (unicode) que comienzan con un carácter alfabético. Los nombres pueden incluir el carácter subrayado (_) y el dólar ($).
-Los identificadores que comienzan con una letra mayúscula se reservan solo para nombres de clase o interfaces.
-Los identificadores que están todos en mayúsculas representan constantes.
-Los nombres de las variables y métodos comienzan con letras minúsculas.
Tipos de Datos
Estos definen los métodos de almacenamiento disponibles para representar información, junto con la manera en que dicha información ha de ser interpretada
Palabras Reservadas
Son identificadores predefinidos que tienen un significado para el compilador y por tanto no pueden usarse como identificadores creados por el usuario en los programas.
Las palabras reservadas se pueden clasificar en las siguientes categorías:
Tipos de datos: Boolean, float, double, int, char
Sentencias condicionales: if, else, switch
Sentencias iterativas: for, do, while, continue
Tratamiento de las excepciones: try, catch, finally, throw
Estructura de datos: class, interface, implements, extends
Modificadores y control de acceso: public, private, protected, transient
Otras: super, null, this.
Operadores
Los operadores permiten a las expresiones combinarse en expresiones más complejas.
Java proporciona una colección grande de operadores que se pueden utilizar para manipular datos, incluyendo operadores aritméticos, asignación, lógicos y de moldeado.
Sentencias
Una sentencia es una orden que se le da al programa para realizar una tarea específica, esta puede ser: mostrar un mensaje en la pantalla, declarar una variable, inicializarla, llamar a una función, etc.
Las sentencias acaban con”;”. Este carácter separa una sentencia de la siguiente.
Ventajas
Multi-plataforma: No es necesario volver a escribir el código para otra plataforma
Lenguaje Orientado a Objetos: Reusabilidad del código; para más información de las ventajas de la POO revise el siguiente enlace:
http://gonblog22.blogspot.com/2010/07/ventajas-de-la-programacion-orientada.html
Robusto: Maneja la memoria por nosotros, no hay que preocuparse por los apuntadores
Desventajas
La Velocidad: Los programas hechos en java no tienden a ser muy rápidos
Costo: Algunas herramientas tienen un costo adicional
Soporte Técnico: Hay diferentes tipos de soporte para la misma herramienta por lo que elegir la mejor opción se dificulta
Software para programar en Java
Eclipse
Proyectos
En el entorno de desarrollo Eclipse todo archivo se almacena dentro de un proyecto.
Esto quiere decir que todo documento, carpeta, archivo de código fuente (.java) y código compilado (.class) tiene que estar contenido dentro de un proyecto. Así pues, el primer paso antes de usar Eclipse para programar en Java es comprender la estructura de proyectos de Eclipse.
Es necesario crear un nuevo proyecto no sólo para desarrollar un nuevo programa de Java, sino para editar también archivos ya existentes.
Para crear un nuevo proyecto, seleccione en la línea de menús principal"File>New>Project...".
También es posible seleccionar "New > Project..." haciendo clic derecho en cualquier parte una vista de Eclipse (como por ejemplo, el Package Explorer o el Resource Navegador).
A continuación le damos un nombre a la clase y le damos clic en finish.
Ahora que ya tenemos un proyecto podemos crear clases dentro de él y así crear nuestro programa, a continuación detallamos como crear clases
Clases
Las clases de Java son los archivos ".java" que contienen el código fuente y que serán posteriormente compilados en archivos ".class". Estos archivos Java tienen que ser almacenados dentro de la carpeta fuente recientemente creada (por ejemplo, "src").
Pulse "New > Class" para abrir la ventana de creación de clases.
La carpeta fuente especificada debería ser la carpeta recientemente definida (src).
Si no se especifica ningún paquete para contener las clases Java, se guardarán dentro de un
Paquete por defecto. El último campo obligatorio que debería ser rellenado antes de proceder a la creación de la clase Java es el propio nombre de la clase.
Las convenciones de Java sugieren que el nombre de una clase debería comenzar con mayúscula. En este ejemplo se ha usado el nombre "EjemploDeClase".
Ahora que ya tenemos creada nuestra clase podemos empezar a escribir el código dentro de ellas además se detallan los tipos de documentación existentes en Java.
Ejemplo:
Class EjemploDeClase{
Public static void main (String args [])
{
//comentario en una línea
/*Comentario
en2 líneas o en varias */
/** Comentario para documentación */
System.out.println ("Saludos Bienvenidos"+" adiós");
}
}
Sintaxis de Sentencias y Métodos en Java
El método main
Cada aplicación Java (no los applets) debe tener un método main que es donde comienza la ejecución de la misma. Es decir que, para ejecutar un programa el intérprete de Java comienza llamando al método main().
Este método se llama antes de la creación de un objeto y ha de declararse como static para que se pueda llamar sin tener que referirse a una instancia particular de la clase. Como además es llamado por código fuera de su clase también tiene que ser declarado como public, que es la forma de permitir que un miembro de una clase pueda ser utilizado por código que está fuera de la misma. La palabra reservada void indica que main no devuelve nada.
public static void main(String[] args)
{
}
String [] args es la declaración de un array de String, mediante el cual la clase podría tomar un número variable de parámetros en la línea de órdenes; aunque no se use es necesario incluir este parámetro cuando se define el método main()
Sentencias de declaración
Tipo nombre Variable;
Ejemplos
int longitud;
doublé e;
Sentencias de asignación
Una sentencia se asignación asigna el valor de la expresión en el lado derecho a la variable del lado izquierdo.
nombre = expresión Legal;
Ejemplos
Longitud = 5 + 7;
i += 5;
Método print ( )
Print ( ) imprime el argumento parado a la salida estándar (normalmente la consola). Sin un carácter fin de línea.
Método println ( )
Println ( ) es similar al método print ( ) excepto un carácter fin de línea o secuencia se añade al final.
Nota: Para utilizar los métodos print y println debemos anteponer lo siguiente "System.out". , además para concatenar impresiones en una sola sentencia utilizamos el simbolo "+".
Entrada de Datos
Al igual que en C++, en java también se pueden importar librerías (paquetes) con las instrucción
Import. La clase Scanner que se encuentra dentro del paquete útil, es la clase que nos permite introducir datos por teclado, además debemos crear un Scanner con la sintaxis que se describe a continuación:
Entrada de Cadenas next()
Import java.util.Scanner;
Class Ejemplo2
{
public static void main(String args[])
{
Scanner en=new Scanner(System.in); // creación del nuevo Scanner
System.out.println ("introduzca su nombre:");
String nombre=en.next(); //next permite introducir sólo una palabra por teclado
System.out.print("Hola "+nombre);
}
}
Entrada de números enteros nextInt ()
Import java.util.Scanner;
Class Ejemplo3
{
Public static void main (String args [])
{
Scanner en=new Scanner (System.in);
int a=en.nextInt();
int b=en.nextInt();
int c=a+b;
System.out.print(c);
}
}
Entrada de números flotantes nextFloat()
import java.util.Scanner;
class Ejemplo4
{
public static void main(String args[])
{
Scanner en=new Scanner (System.in);
float a=en.nextFloat();
float b=en.nextFloat ();
float c=a/b;
System.out.print(c);
}
}
Nota: También puede usar para datos doublés nextDouble()
Sentencias de Selección
Sentencia if
Las sentencias de selección proporcionan control sobre dos alternativas basadas en el valor lógico de una expresión.
if (expresión Lógica)
{
//bloque de sentencias
}
else
{
//bloque de sentencias
}
Sentencia switch
La sentencia switch es la bifurcación múltiple
Switch (opcion)
{
case 1:
instrucciones;
break;
case 2:
instrucciones;
break;
case 3:
instrucciones;
break;
default;
instrucción;
break;
}
Sentencias de Repetición
Sentencia while
La sentencia while se utiliza para crear repeticiones de sentencias en el flujo del programa.
while (expresión Lógica)
{
bloque Sentencias
}
Sentencia do-while
La sentencia do-while se utiliza para repetir la ejecución de sentencias y se ejecuta al menos una vez.
do
{
Bloque Sentencias //el bloque Sentencias se ejecuta al menos una vez
} While (expresión Lógica);
Sentencia for
La sentencia for se usa para repetir un número fijo de veces la ejecución de una serie de sentencias
For ([iniciación]; [condiciónDeTest]; [actualización])
Sentencias
Arreglos
Un array es un grupo de variables de tipos similares que se conocen con un nombre Común.
Tipo [ ] nombreArray=new tipo variable [longituddelArray];
Ejemplo:
Int [] a=new int [100]; //arreglo de una dimensión (vector)
Int [][] a=new int [100] [100]; //arreglo de dos dimensiones (matrices)
Impresión con un número específico de Decimales
Primero importamos la clase: java.text.DecimalFormat
Ahora definimos el nombre y la cantidad de decimales a utilizar siguiendo la sintaxis:
DecimalFormat nombre asignado=new DecimalFormat ("formatodelnumerodecimal");
Ejemplo:
DecimalFormat decimales=new DecimalFormat ("0.00");
Para la impresión seguimos la siguiente sintaxis:
System.out.println (nombreasignado.format(variable));
Ejemplo:
System.out.println(decimales.format(sum));
Para obtener más detalles sobre la sintaxis de Java visite los siguientes enlaces:
http://www.mhe.es/universidad/informatica/8448132904/archivos/general_apendice3.pdf
http://sisuatf.galeon.com/pro2/introduccion.pdf
Si deseas ejemplos de código en Java ve a la pestaña Código en Java que está en la parte superior de este blog
Web grafía:
http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)
http://www.mhe.es/universidad/informatica/8448132904/archivos/general_apendice3.pdf
https://docs.google.com/presentation/d/18rcrq1sDWlkwJgCDAbvJwhd_uLpBWXbewKwan_QOvH4/edit#slide=id.g172f2171b_354
http://personales.upv.es/rmartin/cursoJava/Java/Introduccion/PrincipalesCaracteristicas.htm
http://gonblog22.blogspot.com/2010/07/ventajas-de-la-programacion-orientada.html
http://ocw.uc3m.es/ingenieria-telematica/software-de-comunicaciones-1/jme/eclipseME.pdf/at_download/file