Está en la página 1de 16

7/7/2015

Un programa Java

Declaraciones
Atributos

Expresiones

Operadores

Mtodos

Objetos
Clases

Java: lenguaje totalmente


orientado a objetos

Acerca de Clases

Acerca de Clases

Hasta ahora hemos creado objetos a


partir de clases existentes, pero como es
lgico, se pueden crear nuevas clases e
instanciar objetos de las clases definidas
por nosotros mismos.
Una clase de forma genrica se
compone de: la declaracin de la clase
y del cuerpo de la clase.

El cuerpo de la clase se divide en:

Por: Ing. Msc. Alberto Medina Villacorta

La seccin de declaracin de los

atributos o variables miembro.


(opcionalmente tambin la
inicializacin).
La seccin de declaracin e
implementacin de los mtodos o
funciones miembro.
4

7/7/2015

Acerca de Clases

Acerca de Clases

De este modo, la plantilla de una clase


quedara de la siguiente manera:
declaracinDeLaClase
{
declaracinDeLosAtributos
declaracinDeLosMtodos
}

El cuerpo de la clase es la amplia


seccin encerrada entre las dos llaves.
Una clase puede o no contener atributos
y/o mtodos, pero al menos tiene que
contener uno de los dos componentes.
5

Declaracin de la clase

Declaracin de la clase

Implica indicar el nombre de la clase


junto con otras caractersticas que
puede presentar la clase.
La sintaxis de declaracin de la clase es:
class <NombreClase>
{
..........
}

Por: Ing. Msc. Alberto Medina Villacorta

Se compone, al menos, de la palabra


clave class y del nombre de la clase.
El nombre de la clase tiene que ser un
identificador vlido en Java.
Aunque esta mnima declaracin
suele ser suficiente en algunos casos,
es posible indicar, al declarar una
clase, alguna otra informacin
adicional.

7/7/2015

Declaracin de la clase

Superclase de la clase

La sintaxis completa es:

En Java, para que una clase herede de


otra, se usa la palabra reservada extends
antes del nombre de la superclase de la
cual deriva, la sintaxis es:

[<Modificador(es)>] class <NombreClase>


[extends <NombreSuperClase>]
[implements <NombreInterface1> [,
<NombreInterface2>, ... ]]
{
........................
}

class <NombreClase> extends <SuperClase>


{
..........................
}

10

Superclase de la clase

Interfases de la clase

En Java, todas las clases heredan directa


o indirectamente de la clase Object que
est en la raz de la jerarqua de clases.
Si no se especifica que una clase hereda
de otra, Java asume que hereda
directamente de la clase Object.
Solo se puede heredar de una clase, Java
no implementa herencia mltiple.

Si la clase implementara algn interfaz,


este o estos, se especifican en la
declaracin de la clase.
En pocas palabras, un interfaz es un
conjunto de constantes y mtodos sin
implementar, que la clase que lo utiliza,
tiene que implementar (codificar si se
prefiere).

11

Por: Ing. Msc. Alberto Medina Villacorta

12

7/7/2015

Interfases de la clase

Interfases de la clase

La sintaxis para declarar una clase que


utiliza interfaces es la siguiente:

Por convencin, la clusula implements


se especifica despus de la clusula
extends, si la hubiere.
Como se puede observar se pueden
implementar uno o ms interfaces.

class <NombreClase> implements

<NombreInterface1> [,<NombreInterface2>, ... ]

{
..........................
}
13

14

Modificadores de la clase

Modificadores de la clase

Existen varios modificadores que son


aplicables a la clase en caso de tener que
especificar alguno, este se sita al
principio de la declaracin, segn la
sintaxis:

Los modificadores nos dan informacin


adicional de la forma en la que la clase
va a ser tratada.
Los modificadores posibles que se
pueden anteponer a la clase son los
siguientes: public, abstract, final

<Modificador> class <NombreClase>


{
........................
15
}

Por: Ing. Msc. Alberto Medina Villacorta

16

7/7/2015

Modificador de clase public

Modificador de clase abstract

Indica que la clase es accesible de forma


pblica, es decir, a la clase se puede
acceder y ser instanciada desde
cualquier otra clase.
Si no indicamos este modificador la
clase slo podr ser accesible para
clases dentro del mismo paquete.

Indica que la clase es abstracta y por lo tanto


no es instanciable, es decir, no vamos a poder
crear objetos de esta clase.
Las clases abstractas las utilizaremos para
representar una clase que se encuentra en la
raz de una jerarqua de clases y recoge
algunas caractersticas que son comunes a
todas las clases hijas, pero que difieren en su
implementacin.

Modificador de clase final

Algo ms acerca de Clases

Si aplicamos este modificador indicaremos


que la clase no puede ser subclasificable, es
decir, ninguna clase podrn heredar de ella,
por tanto nunca podr ser clase padre.
Se usa por seguridad (asegura que ninguna
clase hereda de ella para modificar
comportamientos), y por diseo de nuestra
jerarqua de clases, (limita en que momento
se debe detener el mecanismo de herencia)

Los nicos elementos necesarios para


declarar una clase son la palabra del lenguaje
class y el nombre de la clase.
Si no hay los elementos opcionales, los
valores por defecto que el compilador asume
son : no-final, no-public, no-abstract,
subclase de Object y no implementa interfaz
alguno.
El cuerpo de la clase se compone de atributos
y mtodos.

17

19

Por: Ing. Msc. Alberto Medina Villacorta

18

20

7/7/2015

Ejemplo bsico de clase

Cuerpo de la clase: atributos

public class Robot


{

El primer elemento que podemos definir


dentro del cuerpo de una clase, son los
atributos de la clase.
La sintaxis general para declaracin de los
atributos de la clase es:

<Modificador (es)> <tipo> <nombreVariable>

21

22

Cuerpo de la clase: atributos

Ejemplo bsico de clase

Los atributos permiten guardar la


informacin de un objeto.
Estos datos se almacena en campos o
atributos que se declaran como variables en
el mbito de la clase.

public class Robot


{
String nombre;
String estado;
int velocidad;
double temperatura;
}

23

Por: Ing. Msc. Alberto Medina Villacorta

24

7/7/2015

Modificadores de atributos

Atributos: Modificadores de acceso

Se tienen dos grupos:


modificadores de acceso, estos son
excluyentes entre s e indican la forma de
acceso a los atributos de una clase desde
otras clases.
modificadores de contenido, que no son
excluyentes y se refiere al tiempo de vida del
atributo.

public: todas las clases tienen acceso a este


atributo. Se suelen declarar como pblicos
los atributos cuyo acceso a los mismos no
produscan resultados no deseables.
Los atributos deben ser accedidos solo desde
dentro de la clase y para manejarlos debe
haber un conjunto de mtodos, denominados
mtodos de acceso.

Atributos: Modificadores de acceso

Atributos: Modificadores de acceso

private: todo lo contrario a public, slo es


accesible desde dentro de la clase en la que
est declarado. Es el nivel de acceso ms
restrictivo de todos.
package: es el modificador de acceso por
defecto, accesible desde las clases que se
encuentran en el paquete en el que est la
clase en la que se declara el atributo, no es
necesaria una palabra reservada.

protected: los atributos con este


modificador son accesibles desde las clases
hijas de la clase en la que se encuentran
declarados los atributos, y tambin es
accesible desde las clases que se encuentren
dentro del mismo paquete.

25

Por: Ing. Msc. Alberto Medina Villacorta

27

26

28

7/7/2015

Atributos: Resumen de
Modificadores de acceso
Modificador

La
propia
clase

Clase
hija

Paquete

private

protected

public

package

Atributos: Modificadores de contenido


Resto del
Mundo

29

static: un atributo con el modificador de


contenido static mantiene su contenido para
todas las instancias de la clase que se hagan,
as como para las clases hijas que de ella se
hereden.
Se les denomina atributos de clase o
variables de la clase, como contraposicin a
los atributos de instancia.

30

Atributos: Modificadores de contenido

Atributos: Tipo y Nombre

final: este modificador indica que el atributo


es una constante, es decir, no puede ser
modificado. Por convenio las constantes se
escriben en maysculas.
La sintaxis de declaracin de un atributo con
todos los modificadores ser:
[public | protected | private] [static] [final]
<tipo> <nombreVariable>

Tipo: Indica el tipo del atributo es decir, la


clase o tipo primitivos a los que pertenece.
Nombre variable: Aqu indicamos el
nombre con el que vamos a identificar al
atributo, y puede ser cualquier identificador
vlido en Java.

31

Por: Ing. Msc. Alberto Medina Villacorta

32

7/7/2015

Cuerpo de la clase
Implementacin de mtodos

Cuerpo de la clase
Implementacin de mtodos

Los mtodos proporcionan la operatividad y


el comportamiento de la clase.
De forma similar a la implementacin de una
clase, la implementacin de un mtodo se
divide en dos partes: la declaracin del
mtodo y el cuerpo del mtodo.

Los mtodos sirven para definir el


comportamiento del objeto en sus
interacciones con otros objetos.
Para utilizar un mtodo de la clase se utiliza
la notacin objeto.metodo( ) pasando entre
los parntesis los argumentos que necesita el
mtodo al que se llama.

33

34

Cuerpo de la clase
Implementacin de mtodos

Cuerpo de la clase
Implementacin de mtodos

La sintaxis es:
declaracinDelMtodo
{
declaracin de variables
cuerpoDelMtodo
}

Un mtodo puede recibir parmetros en su


llamada, por lo que la sintaxis de un mtodo
quedaran as:
declaracinDelMtodo( [listaParmetros] )
{
declaracin de variables
implementacin
}
35

Por: Ing. Msc. Alberto Medina Villacorta

36

7/7/2015

Declaracin de mtodos

Declaracin de mtodos

Igual que la declaracin de la clase o de sus


atributos brindan informacin al compilador
sobre los componentes, la declaracin de un
mtodo proporciona la informacin similar,
la cual es utilizada por el compilador para
hacer las comprobaciones necesarias sobre
el uso correcto del resto del cdigo.

La sintaxis de la declaracin de un mtodo es


la siguiente:
<Modificador (es)> <tipoDeRetorno>
<nombreMtodo> ([<listaParmetros>])
[throws <listaExcepciones>]
{
}

37

38

Declaracin de mtodos

Declaracin de mtodos: nombres

La sintaxis mnima necesaria para realizar la


declaracin de un mtodo es:
<tipoDeRetorno> <nombreMtodo>
([<listaParmetros>])
{

Puesto que Java soporta sobrecarga de


mtodos, varios mtodos dentro de la misma
clase pueden tener el mismo nombre.
Si un mtodo tiene el mismo nombre que la
clase, es considerado el constructor de la
clase.

}
39

Por: Ing. Msc. Alberto Medina Villacorta

40

10

7/7/2015

Ejemplo bsico de clase

Ejemplo bsico de clase

void medirTemperatura()
{
if (temperatura>50)
{

public class Robot


{
//Atributos
String nombre;
String estado;
int velocidad;
double temperatura;

estado="Temperatura alta, Saliendo";


velocidad=100;

}
41

Ejemplo bsico de clase

Ejemplo bsico de clase

else
{
estado="Temperatura normal, explorando...";

velocidad=20;
}
}

43

Por: Ing. Msc. Alberto Medina Villacorta

42

void mostrarAtributos( ) {
JOptionPane.showMessageDialog(null,
"Nombre: " + nombre + "\n" +
"Estado: " + estado + "\n" +
"Velocidad: " + velocidad + "\n" +
"Temperatura: " + temperatura);
}
}
44

11

7/7/2015

Declaracin de variables

Declaracin de variables

Esta seccin forma parte del cuerpo del


mtodo.
Se declaran tras la seccin de declaracin del
mtodo
Estas son locales al mtodo y tanto su
visibilidad como su longevidad estn
inscritas dentro del cuerpo del mtodo.

Tambin se denominan objetos locales.


Las variables locales son creadas cada vez
que el mtodo es invocado y destruidas al
terminar ste y son slo conocidas por el
mtodo, sin embargo los atributos existen
mientras exista el objeto y son conocidas (al
menos) por todos los mtodos de la clase.

45

46

Implementacin de mtodos

Implementacin de mtodos

Es simplemente escribir el cdigo necesario


para que el mtodo realice la funcin para la
que ha sido creado.
Hay tres palabras clave del lenguaje que
merecen una mencin especial a la hora de
implementar un mtodo, estas palabras son:
this, super y return.

this: con esta palabra, podemos referirnos a


los miembros de la clase.
Representa una referencia a la clase actual.
Se usa this para omitir la ambigedad que se
produzca entre los nombres de los atributos
de la clase y el nombre de los parmetros del
mtodo.

47

Por: Ing. Msc. Alberto Medina Villacorta

48

12

7/7/2015

Implementacin de mtodos

Implementacin de mtodos

super: si un mtodo de una clase hija redefine


(sobrescribe) un mtodo de su clase padre, se
puede referir al mtodo redefinido
anteponiendo super.
Se usa para acceder a los atributos de la clase
padre, cuando estos se redefinen por
atributos de la clase hija.

return: la palabra clave return permite


devolver un valor desde un mtodo.
Este valor puede ser cualquier tipo de dato
vlido de Java.
Si un mtodo es declarado de tipo void, no
contiene la sentencia return.

49

50

Acerca de Objetos

Creacin de Objetos

Los objetos son las piezas fundamentales de


cualquier lenguaje de programacin que sea
orientado a objetos.
Los objetos interactan entre s a travs del
mecanismo de mensajes, es decir, invocando
mtodos.
Tienen un ciclo de vida que distingue tres
fases o etapas: 1. Creacin, 2. Utilizacin y 3.
Destruccin.

El proceso de crear un objeto a partir de una


clase se divide en tres pasos: declaracin,
instanciacin e inicializacin.
Una vez creado el objeto realizar la funcin
que se le haya encomendado.
Cuando el objeto termina su trabajo para el
cual fue creado es destruido por el garbage
collector (recolector de basura) liberando
recursos que son reutilizados por otros
objetos.

51

Por: Ing. Msc. Alberto Medina Villacorta

52

13

7/7/2015

Creacin de Objetos

Ejemplo: creacin de objeto

Declaracin: La sintaxis para declarar un


objeto en Java es la siguiente:
<tipo> <nombre>;

Robot robocop;
Robot periquito;

Donde:
<tipo> es el nombre de clase, es decir, el tipo de
dato que se va a crear.
<nombre> es el nombre de la variable con el
que nos referiremos al objeto.
53

54

Instanciacin de Objetos: new

Ejemplo de Instanciacin (new)

Para instanciar una clase, en Java se utiliza el


operador new.
El operador new invoca al constructor de la
clase y le pasa los parmetros de
inicializacin si los hubiere.
El operador new crea el objeto y el
constructor lo inicializa.
La sintaxis del operador new es la siguiente:

robocop = new Robot( );


periquito = new Robot( );

[<Variable> =] new <Constructor>( [<par1>,


<par2>, ..., <parN>] )

Por: Ing. Msc. Alberto Medina Villacorta

55

Equivalentemente:
Robot robocop = new Robot( );
Robot periquito = new Robot( );
56

14

7/7/2015

Inicializar Objetos: Constructor

Inicializar Objetos: Constructor

Al crear un objeto, se suele querer darle un


valor, esto es lo que se llama inicializacin
del objeto, este proceso lo realiza el
constructor de la clase.
Un constructor es un mtodo con el mismo
nombre que la clase y que puede o no recibir
una serie de parmetros que se utilizan para
inicializar el objeto.

Gracias a la sobrecarga de mtodos es


posible, y muy til, disponer de varios
constructores.
Existe un constructor especial, llamado
constructor por defecto, que es aquel que no
recibe ningn argumento o parmetro.

Utilizacin de Objetos

Utilizacin de Objetos

Una vez creado el objeto debemos ver los


mecanismos que existen para poder
utilizarlo.
El operador de envo de mensaje en Java, es
el punto (.), es decir, es el operador para
lanzar o invocar un mtodo de un objeto.

La sintaxis genrica de envo de mensaje la


siguiente:
objeto.mensaje
Para acceder a los atributos de un objeto (o
variables miembro) es:
objeto.atributo
Para los mtodos (o funciones miembro) es:
objeto.mtodo( [parmetros] )

57

59

Por: Ing. Msc. Alberto Medina Villacorta

58

60

15

7/7/2015

Destruccin de Objetos

Ejemplo: Utilizacin de Objetos


robocop.estado="Explorando...";
robocop.nombre=Arturito;
robocop.velocidad=20;
robocop.temperatura=20;
robocop.mostrarAtributos( );
for (int i=1;i<10;i++)
{
robocop.temperatura=Math.round(Math.random
( )*100);
robocop.medirTemperatura( );
robocop.mostrarAtributos( );
}
61

Asi como existe un mtodo constructor para


crear objetos existe un mtodo destructor para
liberarlos.
Del mismo modo que el constructor es llamado
por el operador new cuando el objeto es
creado, el destructor, si existe, es invocado
tambin.
El destructor es llamado cuando el objeto va a
ser eliminado de memoria por el recolector de
basura (garbage collector).
62

63

Por: Ing. Msc. Alberto Medina Villacorta

16

También podría gustarte