lunes, 30 de marzo de 2009

Introducción a la Programación Orientada a Objetos en Java


Introduccion a Java

Java utiliza convenciones casi idénticas para declaración de variables, paso de parámetros, y demás, pero sólo considera las partes de C++ que no estaban ya en C.

Las principales características que Java son:
Punteros: En Java, no existen punteros, evitando el acceso directo a la memoria volátil.
Variables globales:En Java lo único global es el nombre de las clases.
goto: Java no tiene ninguna sentencia goto. Sin embargo Java tiene las sentencias break y continue que cubren los casos importantes de goto.
Asignación de memoria: Se utiliza el operador new para asignar un espacio de memoria a un objeto en el montículo de memoria. Con new no se obtiene una dirección de memoria sino un descriptor al objeto del montículo. La memoria real asignada a ese objeto se puede mover a la vez que el programa se ejecuta, pero sin tener que preocuparse de ello. Cuando no tenga ninguna referencia de ningún objeto, la memoria ocupada estará disponible para que la reutilice el resto del sistema sin tener que llamar a free o delete. A esto se le llama recogida de basura. El recolector de basura se ejecuta siempre que el sistema esté libre, o cuando una asignación solicitada no encuentre asignación suficiente.
Conversión de tipos insegura: En Java se puede hacer una comprobación en tiempo de ejecución de la compatibilidad de tipos y emitir una excepción cuando falla.
Operadores
Operadores aritméticos binarios de Java
Operador .......... Uso ............ Descripción
+ op1 + op2...... Suma ............op1 y op2
- op1 - op2 ........Resta .......... op2 de op1
* op1 * op2 .......Multiplica .......op1 por op2
/ op1 / op2 ........Divide ..........op1 por op2
% op1 % op2 .....Calcula .......el resto de dividir op1 entre op2

Versiones unarias de los operadores "+" y "-"
Operador .... Uso ................... Descripción
+ ............. +op ..... ....Convierte op a entero si es un byte, short o char
- .............. -op ...........Niega aritméticamente op

Operaciones con "++" y "--"
Operador ..... Uso...................... Descripción
++ op++ ...Incrementa op en 1; se evalúa al valor anterior al incremento
++ ++op ... Incrementa op en 1; se evalúa al valor posterior al incremento
-- op-- .... Decrementa op en 1; se evalúa al valor anterior al incremento
-- --op .... Decrementa op en 1; se evalúa al valor posterior al incremento

Operadores de comparación
Operador ........... Uso ............. Devuelve verdadero si
> ..................op1 > op2....... op1 es mayor que op2
>=............... op1 >= op2..... op1 es mayor o igual que op2
<................. op1 < op2 .....op1 es menor que op2
<= ..............op1 <= op2 .....op1 es menor o igual que op2
==............. op1 == op2 ........op1 y op2 son iguales
!= ...............op1 != op2 ........... op1 y op2 son distintos


Operadores condicionales
Operador ........ Uso .......... Devuelve verdadero si...
&&op1&&op2...op1 y op2...son ambos verdaderos, condicionalmente evalúa op2
&op1&op2.......op1 y op2...son ambos verdaderos, siempre evalúa op1 y op2
op1op2........op1oop2...son verdaderos, condicionalmente evalúa op2
op1op2.........op1oop2.....son verdaderos, siempre evalúa op1 y op2
! !op................. op .............. es falso


Operadores de desplazamiento de bits
Operador .....Uso ............. Operación
>> ..........op1 >> op2 .....Desplaza los bits de op1 a la derecha op2 veces
<< .........op1 << op2 .....Desplaza los bits de op1 a la izquierda op2 veces
>>>......op1>>> op2 ..Desplaza los bits de op1 a la derecha op2 veces(sinSigno)


Operadores de lógica de bits
Operador ....Uso .........Operación
& ...........op1 & op2 .......AND
............op1 op2 .........OR
^ ...........
op1 ^ op2 ......OR
~........... ~op2..... Complemento

Operadores de atajo de asignación
Operador ....Uso .................Equivalente a
+= ........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
&= .........op1 &= op2...... op1 = op1 & op2

Precedencia de operadores
Tipo de operadores ............Operadores de este tipo
Operadores posfijos .......[ ] . (parametros) expr++ expr--
Operadores unarios........ ++expr --expr +expr -expr ~ !
Creación o conversión new ..........(tipo) expr
Multiplicación............................... * / %
Suma........................................ + -
Desplazamiento .........................<<
Comparación ..............................< <= = instanceof
Igualdad .................................. ==
!= .....................................AND a nivel de bit
&........................................... OR a nivel de bit
^ ......................................XOR a nivel de bit
..........................................AND lógico
&&....................................... OR lógico

Condicional ....................................? :
Asignación ...............= += -= *= /= %= &= ^= = <<= = =

Estructuras de control


Sentencia Clave
Toma de decisión if-else, switch-case
Bucle for, while, do-while
Misceláneo break, continue, label:, return, goto



Clases y Objetos
Clases:

La clase es una unidad fundamental en Java. Los datos que contenga, se denominan atributos, y las funciones y rutinas que defina, se conocen como sus métodos. Un objeto no es más que la instancia de una clase, una clase llevada a la existencia, así como una variable entera es una instancia, un ejemplo vivo de un tipo int. Una clase define cómo es un objeto.
Un ejemplo inicial de clase puede ser el siguiente :
class Punto {
public long x;
public long y;
}
Una clase se define con la palabra reservada class, seguida del nombre de la clase. Luego, entre llaves, se va definiendo su estructura.
Objeto:
Entidad que contiene unos datos particulares (DATOS MIEMBRO) y unas operaciones concretas sobre ellos (FUNCIONES MIEMBRO). A un objeto de una clase también se le denomina instancia de una clase.
Elementos a resaltar:
Un objeto contiene información: DATOS MIEMBRO (también llamados atributos). En C los struct también podían contener información de diferente tipo (miembros de la estructura).
Un objeto además (y ahí radica la gran diferencia con los tipos de datos estructurados de C), posee operaciones que manipulan los valores de los datos miembro: FUNCIONES MIEMBRO (métodos).


Sintaxis de Java
Comentarios
// comentario de una línea/* comentario multilínea *//**comentario de documentación */
/* Este es un comentario de
varias líneas */
// comentario unilínea
/** Esto es documentación
*/
Declaración de variables
tipo nombre1 [,nombre2,...];
int a, b;
Declaración de clase
[ámbito] class nombre [extends clase] { // variables globales // métodos}
public class dato {
. . .
}
Clase con herencia
class valor extends dato {
. . .
}
Métodos
[ámbito] tipo nombre( parámetros ) {. . .}
public void metodo(int i){
. . .
}

No hay comentarios:

Publicar un comentario