Sie sind auf Seite 1von 9

Programación orientada a objeto (JAVA)

Java es un lenguaje de programación orientado a objetos que se popularizó a


partir del lanzamiento de su primera versión comercial de amplia difusión, la JDK 1.0
en 1996. Actualmente es uno de los lenguajes más usados para la programación en
todo el mundo.
Los antecedentes de Java habría que buscarlos en los lenguajes de programación
C y C++. El lenguaje C fue desarrollado en la década de los 70 y constituye un
lenguaje muy robusto usado como núcleo del sistema operativo Unix. C no admite
la orientación a objetos y está considerado un lenguaje “poco amigable” desde el
punto de vista de que su sintaxis, elementos de programación que emplea (manejo
directo de memoria) y otras cuestiones hacen que sea un lenguaje difícil de
aprender. C++ fue una evolución de C desarrollada en los años 80. Introdujo el
diseño orientado a objetos, pero manteniendo la compatibilidad con C. Esto suponía
que C++ permitiera tanto el uso de la programación estructurada “tradicional” como
la programación orientada a objetos. Además C++ mantuvo ciertas características
de C como el manejo directo de la memoria, el uso de variables globales, sentencia
goto, etc. que hicieron que la evolución fuera “parcial”.

Como paso final en esta evolución tenemos Java, un lenguaje que evoluciona a
partir de C y C++, pero que elimina diversos aspectos de estos lenguajes y se
constituye en un lenguaje definitivamente orientado a objetos. El romper con
distintos aspectos de C++ cuyo manejo inadecuado por parte de muchos
programadores daba lugar a problemas en las aplicaciones ha sido un factor
decisivo para convertir a Java en un lenguaje popular y de amplio uso.

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.

En la programación orientada a objeto en java existe lo que son los objeto y la clase
El objeto son la parte del ejecutable de la programación orientada a objeto, se
manejan a través de las variables y que pertenecen a una clase.

La clase son la plantilla a partir del cual se crea los objetos los cuales están
formados por.

Nombre

Atributos

Métodos

En general, interesa que los atributos no se pueden tocar directamente desde fuera
de la clase y se denominan privados

Los métodos son la forma de comunicarse con la clase para pedirle que haga cosas
(servicios) son denominados públicos o privados, Los métodos get y set “hacen
trampa”.

Dentro de la programación orientada objeto en java existen errores las cuales son

 La clase no es igual a tipo

 Los atributos no son iguales al estado

 Los métodos no son iguales al comportamiento

 Los objetos no imitan a la realidad

 Los objetos no son funciones más datos pero el objeto si es igual a la cosa.

Declaraciones en Java

Hay que declarar la visibilidad de la clase, sus atributos y sus métodos, en cada
fichero existe una clase publica con el mismo nombre del fichero de 0 a n clases
privadas
Para el uso de objeto primero es necesario declarar una variable perteneciente a la
clase en este caso Circulo mi_circulo.
Después hay que crear el objeto: mi_circulo = newCirculo
Ahora ya se puede llamar a los métodos del objeto: mi_circulo.paint();
Constructor es el método especial que indica lo que se hace cuando se crea objeto,
tiene el mismo nombre que la clase la cual pueden existir varios constructores con
distintos parámetros si no declaramos ninguno se usa el constructor por defecto, si
declaramos algunos es obligatorio declarar también al constructor por defecto

Un objeto especial: this


Esta palabra sirve para que un objeto sea referencia a si mismo
Uso:
Un objeto se pasa a si mismo como parámetro al llamar a un método de otro objeto
Especificar que un objeto utiliza sus métodos o atributos el cual no es obligatorio,
pero a veces es necesario
Metodo de this.
De manera general, la declaración de un método en java es de la forma
Modo_acceso modificadores tipo_retorno nombre_metodo (argumentos)
{
Cuerpo del método
}
Donde
Modo_acceso: public, private, protected (no es obligatorio especificarlo pero
esconveniente)
Modificadores: static,abstarct, final, native, synchronized (no es obligatorio usarlo)
El tipo retorno si es obligatorio. si no se devuelve nada se usa la palabra
reservada void
Si no hay argumentos no se coloca nada en los paréntesis
Pasos de parámetros.
En java los parámetros siempre pasan por copias, los argumentos de los tipos
básicos no quedan modificados fuera del método aunque se modifiquen dentro, en
el caso de pasar objeto como parámetro, lo que se copia es una referencia al objeto,
si modificamos el objeto dentro del método también se modifica fuera.
Ejemplo:
En el programa BlueJ invoque el método moverHorizontal. Aparecerá una caja de
diálogo que le solicita que ingrese algunos datos. Ingrese el número 50 y haga clic
en Ok. Verá que el círculo se mueve 50 píxeles hacia la derecha. El método
moverHorizontal que acaba de nombrar, está escrito de modo tal que requiere
información adicional para ejecutarse. En este caso, la información requerida es la
distancia (cuánto debe moverse el círculo) y esto hace que el método
moverHorizontal sea más flexible que los métodos moverDerecha o
moverIzquierda. Los últimos métodos mueven siempre al círculo una distancia
determinada mientras que moverHorizontal permite especificar cuánto se quiere
mover.

Constructores.
Método especial que indica lo que se hace cuando se crea un objeto Tiene el mismo
nombre que la clase Pueden existir varios constructores con distintos parámetros Si
no declaramos ninguno se usa el constructor por defecto Si declaramos alguno es
obligatorio declarar también el constructor por defecto, Los constructores de una
clase tienen un rol especial que cumplir: su responsabilidad es poner cada objeto
de esa clase en un estado adecuado para que pueda ser usado una vez que haya
sido creado. Esta operación se denomina inicialización. El constructor inicializa el
objeto en un estado razonable.
Ejemplo:
Uno de los rasgos distintivos de los constructores es que tienen el mismo nombre
que la clase en la que son definidos, en este caso MaquinaDeBoletos.
Los campos del objeto se inicializan en el constructor. A algunos campos, tales
como saldo y total, se les puede poner un valor inicial que tenga sentido asignando
un valor constante, en este caso, cero. Con otros campos, tal como ocurre con el
precio del boleto, no resulta tan simple elegir este valor inicial ya que no conocemos
el precio de los boletos de una máquina en particular hasta que la máquina esté
construida: recuerde que deseamos crear varios objetos máquina para vender
boletos de diferentes precios, por lo que no será correcto para todos los casos
ningún precio inicial.

En este caso se muestra un objeto máquina de boletos después de que se haya


ejecutado su constructor. Los valores han sido asignados a los campos. A partir de
este diagrama podemos decir que la máquina fue creada al pasar el número 500
como el valor del precio del boleto.
Herencia
Es la clase que se encuentra relacionada entre si formando una jerarquía de
clasificación. La herencia es el medio para compartir en forma automática los
métodos y los datos entre las clases y la subclase de los objetos. Los objetos de
heredan de las propiedades y el comportamiento de todas las clases a las que
pertenecen.
Existe la herencia simple y multiple, si un objeto pertenece a más de una clase, se
llama herencia multiple y no esta soportada por algunos lenguajes como java, en
tanto que la herencia simple, es cuando un objeto pertenece a una sola clase.

Ejemplo:
Cuando creamos un objeto, el constructor de dicho objeto tiene el cuidado de
inicializar todos los campos con algún estado razonable. Tenemos que ver más de
cerca cómo se hace esto en las clases que se heredan a partir de otras clases.
Cuando creamos un objeto CD, pasamos varios parámetros al constructor de CD:
el título, el nombre del intérprete, el número de temas y el tiempo de duración.
Algunos de estos parámetros contienen valores para los campos definidos en la
clase Elemento y otros valores para los campos definidos en la clase CD. Todos
estos campos deben ser correctamente inicializados y el Cóodigo muestra los
segmentos de código que se usan para llevar a cabo esta inicialización en Java.
Se pueden hacer varias observaciones con respecto a estas clases. En primer
lugar, la clase Elemento tiene un constructor aun cuando no tenemos intención de
crear, de manera directa, una instancia de la clase Elemento.2 Este constructor
recibe los parámetros necesarios para inicializar los campos de Elemento y
contiene el código para llevar a cabo esta inicialización. En segundo lugar, el
constructor CD recibe los parámetros necesarios para inicializar tanto los campos
de Elemento como los de CD. La clase Elemento contiene la siguiente línea de
código:
super(elTitulo, tiempo);
La palabra clave super es, en realidad, una llamada al constructor de la
superclase. El efecto de esta llamada es que se ejecuta el constructor de
Elemento, formando parte de la ejecución del constructor del CD. Cuando
creamos un CD, se invoca al constructor de CD, quien en su primera sentencia lo
convierte en una llamada al constructor de Elemento. El constructor de Elemento
inicializa sus campos y luego retorna al constructor de CD que inicializa los
restantes campos definidos en la clase CD. Para que esta operación funcione, los
parámetros necesarios para la inicialización de los campos del elemento se pasan
al constructor de la superclase como parámetros en la llamada a super.

Poliformismo.
Esta característica facilita la implementación de varias formas de un mismo método,
con lo cual se pueden acceder a varios métodos distintos, que tienen el mismo
nombre existen dos tipos principales de poliformismo.
Por reemplazo: dos o mas clases diferentes con el mismo nombre del método, pero
haciéndole de forma diferente
Por sobrecarga: es el mismo nombre del método ocupado varias veces,
ejecutándolo de diferente forma y diferenciándose solamente por el argumento o
parámetro.
El poliformismo permite separar el que del como y permite distinguir entre tipos de
objetos que son aparecidos, esta diferencia se muestra través del comportamiento
de los métodos que heredan de la clase padre.

Valor de salida de un método


Se indica con la palabra clave return seguida de lo que se quiere devolver
Public int cuadrado (int x)
{
Return (x*x);
}
Si se devuelve un void no es necesario utilizar return
Es conveniente tener un solo return por función
Hay que asegurarse de que, si se devuelve un valor, siempre se puede hacer el
return (si no da un error de compilación)
Si lo que devolvemos es un objeto: se actua igual que en el caso de devolver un
valor del tipo simple
Algunos métodos especiales.
ToString:
Por defecto, java convierte cualquier cosa en un String
Con objetos, si no le decimos como hacerlos, el String contiene la dirección del
objeto
La implementación de toString indica como hacer la conversión
Public String toString ()
{
Return (“(“+c_x+”,”+c_y+”)”+”,”+r);
}
Equals:
No se debe usar == para comparar objetos, pues el resultado indica si los dos
valores que se comparan son el mismo objeto, no si dos objetos son iguales
Public boolean equals (Circulo c)
{
Return (this.c_x==c.c_x&& this.c_y==c.c_y &&
This .c_r==c.c_r);
}
Clone:
Si a una variable le asignamos otra que contiene un objeto, ambas variables tienen
una referencia al mismo objeto
Para que se asigne una copia del objeto hay que hacerlo a través del método clone
public Circulo clone()
{
return new Circulo(this.c_x, this.c_y, this.c_r);
}

Das könnte Ihnen auch gefallen