Clases y Objetos en Java
Transcript of Clases y Objetos en Java
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 1
2
Un programa Java
Java: lenguaje totalmenteorientado a objetosOperadoresExpresiones
Mtodos
Clases
Objetos
AtributosDeclaraciones
3
Hasta ahora hemos creado objetos apartir de clases existentes, pero como eslgico, se pueden crear nuevas clases einstanciar objetos de las clases definidaspor nosotros mismos.Una clase de forma genrica secompone de: la declaracin de la clasey del cuerpo de la clase.
Acerca de Clases
4
El cuerpo de la clase se divide en: La seccin de declaracin de los
atributos o variables miembro.(opcionalmente tambin lainicializacin).
La seccin de declaracin eimplementacin de los mtodos ofunciones miembro.
Acerca de Clases
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 2
5
De este modo, la plantilla de una clasequedara de la siguiente manera:declaracinDeLaClase{
declaracinDeLosAtributosdeclaracinDeLosMtodos
}
Acerca de Clases
6
El cuerpo de la clase es la ampliaseccin encerrada entre las dos llaves.Una clase puede o no contener atributosy/o mtodos, pero al menos tiene quecontener uno de los dos componentes.
Acerca de Clases
7
Implica indicar el nombre de la clasejunto con otras caractersticas quepuede presentar la clase.La sintaxis de declaracin de la clase es:
class {..........
}
Declaracin de la clase
8
Se compone, al menos, de la palabraclave class y del nombre de la clase.El nombre de la clase tiene que ser unidentificador vlido en Java.Aunque esta mnima declaracinsuele ser suficiente en algunos casos,es posible indicar, al declarar unaclase, alguna otra informacinadicional.
Declaracin de la clase
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 3
9
La sintaxis completa es:[] class [extends ][implements [,, ... ]]{........................
}
Declaracin de la clase
10
En Java, para que una clase herede deotra, se usa la palabra reservada extendsantes del nombre de la superclase de lacual deriva, la sintaxis es:class extends {
..........................
}
Superclase de la clase
11
En Java, todas las clases heredan directao indirectamente de la clase Object queest en la raz de la jerarqua de clases.Si no se especifica que una clase heredade otra, Java asume que heredadirectamente de la clase Object.Solo se puede heredar de una clase, Javano implementa herencia mltiple.
Superclase de la clase
12
Si la clase implementara algn interfaz,este o estos, se especifican en ladeclaracin de la clase.En pocas palabras, un interfaz es unconjunto de constantes y mtodos sinimplementar, que la clase que lo utiliza,tiene que implementar (codificar si seprefiere).
Interfases de la clase
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 4
13
La sintaxis para declarar una clase queutiliza interfaces es la siguiente:class implements [,, ... ]{
..........................
}
Interfases de la clase
14
Por convencin, la clusula implementsse especifica despus de la clusulaextends, si la hubiere.Como se puede observar se puedenimplementar uno o ms interfaces.
Interfases de la clase
15
Existen varios modificadores que sonaplicables a la clase en caso de tener queespecificar alguno, este se sita alprincipio de la declaracin, segn lasintaxis: class {........................
}
Modificadores de la clase
16
Los modificadores nos dan informacinadicional de la forma en la que la claseva a ser tratada.Los modificadores posibles que sepueden anteponer a la clase son lossiguientes: public, abstract, final
Modificadores de la clase
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 5
17
Indica que la clase es accesible de formapblica, es decir, a la clase se puedeacceder y ser instanciada desdecualquier otra clase.Si no indicamos este modificador laclase slo podr ser accesible paraclases dentro del mismo paquete.
Modificador de clase public
18
Indica que la clase es abstracta y por lo tantono es instanciable, es decir, no vamos a podercrear objetos de esta clase.Las clases abstractas las utilizaremos pararepresentar una clase que se encuentra en laraz de una jerarqua de clases y recogealgunas caractersticas que son comunes atodas las clases hijas, pero que difieren en suimplementacin.
Modificador de clase abstract
19
Si aplicamos este modificador indicaremosque la clase no puede ser subclasificable, esdecir, ninguna clase podrn heredar de ella,por tanto nunca podr ser clase padre.Se usa por seguridad (asegura que ningunaclase hereda de ella para modificarcomportamientos), y por diseo de nuestrajerarqua de clases, (limita en que momentose debe detener el mecanismo de herencia)
Modificador de clase final
20
Los nicos elementos necesarios paradeclarar una clase son la palabra del lenguajeclass y el nombre de la clase.Si no hay los elementos opcionales, losvalores por defecto que el compilador asumeson : no-final, no-public, no-abstract,subclase de Object y no implementa interfazalguno.El cuerpo de la clase se compone de atributosy mtodos.
Algo ms acerca de Clases
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 6
21
public class Robot{
}
Ejemplo bsico de clase
22
El primer elemento que podemos definirdentro del cuerpo de una clase, son losatributos de la clase.La sintaxis general para declaracin de losatributos de la clase es:
Cuerpo de la clase: atributos
23
Los atributos permiten guardar lainformacin de un objeto.Estos datos se almacena en campos oatributos que se declaran como variables enel mbito de la clase.
Cuerpo de la clase: atributos
24
public class Robot{
String nombre;String estado;int velocidad;double temperatura;
}
Ejemplo bsico de clase
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 7
25
Se tienen dos grupos:modificadores de acceso, estos sonexcluyentes entre s e indican la forma deacceso a los atributos de una clase desdeotras clases.modificadores de contenido, que no sonexcluyentes y se refiere al tiempo de vida delatributo.
Modificadores de atributos
26
public: todas las clases tienen acceso a esteatributo. Se suelen declarar como pblicoslos atributos cuyo acceso a los mismos noproduscan resultados no deseables.Los atributos deben ser accedidos solo desdedentro de la clase y para manejarlos debehaber un conjunto de mtodos, denominadosmtodos de acceso.
Atributos: Modificadores de acceso
27
private: todo lo contrario a public, slo esaccesible desde dentro de la clase en la queest declarado. Es el nivel de acceso msrestrictivo de todos.package: es el modificador de acceso pordefecto, accesible desde las clases que seencuentran en el paquete en el que est laclase en la que se declara el atributo, no esnecesaria una palabra reservada.
Atributos: Modificadores de acceso
28
protected: los atributos con estemodificador son accesibles desde las claseshijas de la clase en la que se encuentrandeclarados los atributos, y tambin esaccesible desde las clases que se encuentrendentro del mismo paquete.
Atributos: Modificadores de acceso
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 8
29
Atributos: Resumen deModificadores de acceso
ModificadorLa
propiaclase
Clasehija Paquete
Resto delMundo
private Xprotected X X Xpublic X X X Xpackage X X
30
static: un atributo con el modificador decontenido static mantiene su contenido paratodas las instancias de la clase que se hagan,as como para las clases hijas que de ella sehereden.Se les denomina atributos de clase ovariables de la clase, como contraposicin alos atributos de instancia.
Atributos: Modificadores de contenido
31
final: este modificador indica que el atributoes una constante, es decir, no puede sermodificado. Por convenio las constantes seescriben en maysculas.La sintaxis de declaracin de un atributo contodos los modificadores ser:[public | protected | private] [static] [final]
Atributos: Modificadores de contenido
32
Tipo: Indica el tipo del atributo es decir, laclase o tipo primitivos a los que pertenece.Nombre variable: Aqu indicamos elnombre con el que vamos a identificar alatributo, y puede ser cualquier identificadorvlido en Java.
Atributos: Tipo y Nombre
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 9
33
Los mtodos proporcionan la operatividad yel comportamiento de la clase.De forma similar a la implementacin de unaclase, la implementacin de un mtodo sedivide en dos partes: la declaracin delmtodo y el cuerpo del mtodo.
Cuerpo de la claseImplementacin de mtodos
34
Los mtodos sirven para definir elcomportamiento del objeto en susinteracciones con otros objetos.Para utilizar un mtodo de la clase se utilizala notacin objeto.metodo( ) pasando entrelos parntesis los argumentos que necesita elmtodo al que se llama.
Cuerpo de la claseImplementacin de mtodos
35
La sintaxis es:declaracinDelMtodo{
declaracin de variablescuerpoDelMtodo
}
Cuerpo de la claseImplementacin de mtodos
36
Un mtodo puede recibir parmetros en sullamada, por lo que la sintaxis de un mtodoquedaran as:declaracinDelMtodo( [listaParmetros] )
{declaracin de variablesimplementacin
}
Cuerpo de la claseImplementacin de mtodos
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 10
37
Igual que la declaracin de la clase o de susatributos brindan informacin al compiladorsobre los componentes, la declaracin de unmtodo proporciona la informacin similar,la cual es utilizada por el compilador parahacer las comprobaciones necesarias sobreel uso correcto del resto del cdigo.
Declaracin de mtodos
38
La sintaxis de la declaracin de un mtodo esla siguiente: ([])[throws ]{
}
Declaracin de mtodos
39
La sintaxis mnima necesaria para realizar ladeclaracin de un mtodo es: ([]){
}
Declaracin de mtodos
40
Puesto que Java soporta sobrecarga demtodos, varios mtodos dentro de la mismaclase pueden tener el mismo nombre.Si un mtodo tiene el mismo nombre que laclase, es considerado el constructor de laclase.
Declaracin de mtodos: nombres
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 11
41
public class Robot{
//AtributosString nombre;String estado;int velocidad;double temperatura;
Ejemplo bsico de clase
42
void medirTemperatura(){
if (temperatura>50){
estado="Temperatura alta, Saliendo";velocidad=100;
}
Ejemplo bsico de clase
43
else{estado="Temperatura normal, explorando...";velocidad=20;
}}
Ejemplo bsico de clase
44
void mostrarAtributos( ) {JOptionPane.showMessageDialog(null,
"Nombre: " + nombre + "\n" +"Estado: " + estado + "\n" +"Velocidad: " + velocidad + "\n" +"Temperatura: " + temperatura);
}}
Ejemplo bsico de clase
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 12
45
Esta seccin forma parte del cuerpo delmtodo.Se declaran tras la seccin de declaracin delmtodoEstas son locales al mtodo y tanto suvisibilidad como su longevidad estninscritas dentro del cuerpo del mtodo.
Declaracin de variables
46
Tambin se denominan objetos locales.Las variables locales son creadas cada vezque el mtodo es invocado y destruidas alterminar ste y son slo conocidas por elmtodo, sin embargo los atributos existenmientras exista el objeto y son conocidas (almenos) por todos los mtodos de la clase.
Declaracin de variables
47
Es simplemente escribir el cdigo necesariopara que el mtodo realice la funcin para laque ha sido creado.Hay tres palabras clave del lenguaje quemerecen una mencin especial a la hora deimplementar un mtodo, estas palabras son:this, super y return.
Implementacin de mtodos
48
this: con esta palabra, podemos referirnos alos miembros de la clase.Representa una referencia a la clase actual.Se usa this para omitir la ambigedad que seproduzca entre los nombres de los atributosde la clase y el nombre de los parmetros delmtodo.
Implementacin de mtodos
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 13
49
super: si un mtodo de una clase hija redefine(sobrescribe) un mtodo de su clase padre, sepuede referir al mtodo redefinidoanteponiendo super.Se usa para acceder a los atributos de la clasepadre, cuando estos se redefinen poratributos de la clase hija.
Implementacin de mtodos
50
return: la palabra clave return permitedevolver un valor desde un mtodo.Este valor puede ser cualquier tipo de datovlido de Java.Si un mtodo es declarado de tipo void, nocontiene la sentencia return.
Implementacin de mtodos
51
Los objetos son las piezas fundamentales decualquier lenguaje de programacin que seaorientado a objetos.Los objetos interactan entre s a travs delmecanismo de mensajes, es decir, invocandomtodos.Tienen un ciclo de vida que distingue tresfases o etapas: 1. Creacin, 2. Utilizacin y 3.Destruccin.
Acerca de Objetos
52
El proceso de crear un objeto a partir de unaclase se divide en tres pasos: declaracin,instanciacin e inicializacin.Una vez creado el objeto realizar la funcinque se le haya encomendado.Cuando el objeto termina su trabajo para elcual fue creado es destruido por el garbagecollector (recolector de basura) liberandorecursos que son reutilizados por otrosobjetos.
Creacin de Objetos
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 14
53
Declaracin: La sintaxis para declarar unobjeto en Java es la siguiente: ;Donde: es el nombre de clase, es decir, el tipo dedato que se va a crear. es el nombre de la variable con elque nos referiremos al objeto.
Creacin de Objetos
54
Robot robocop;Robot periquito;
Ejemplo: creacin de objeto
55
Para instanciar una clase, en Java se utiliza eloperador new.El operador new invoca al constructor de laclase y le pasa los parmetros deinicializacin si los hubiere.El operador new crea el objeto y elconstructor lo inicializa.La sintaxis del operador new es la siguiente:
[ =] new ( [,, ..., ] )
Instanciacin de Objetos: new
56
robocop = new Robot( );periquito = new Robot( );
Equivalentemente:
Robot robocop = new Robot( );Robot periquito = new Robot( );
Ejemplo de Instanciacin (new)
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 15
57
Al crear un objeto, se suele querer darle unvalor, esto es lo que se llama inicializacindel objeto, este proceso lo realiza elconstructor de la clase.Un constructor es un mtodo con el mismonombre que la clase y que puede o no recibiruna serie de parmetros que se utilizan parainicializar el objeto.
Inicializar Objetos: Constructor
58
Gracias a la sobrecarga de mtodos esposible, y muy til, disponer de variosconstructores.Existe un constructor especial, llamadoconstructor por defecto, que es aquel que norecibe ningn argumento o parmetro.
Inicializar Objetos: Constructor
59
Una vez creado el objeto debemos ver losmecanismos que existen para poderutilizarlo.El operador de envo de mensaje en Java, esel punto (.), es decir, es el operador paralanzar o invocar un mtodo de un objeto.
Utilizacin de Objetos
60
La sintaxis genrica de envo de mensaje lasiguiente:objeto.mensajePara acceder a los atributos de un objeto (ovariables miembro) es:objeto.atributoPara los mtodos (o funciones miembro) es:objeto.mtodo( [parmetros] )
Utilizacin de Objetos
-
7/7/2015
Por: Ing. Msc. Alberto Medina Villacorta 16
61
robocop.estado="Explorando...";robocop.nombre=Arturito;robocop.velocidad=20;robocop.temperatura=20;robocop.mostrarAtributos( );for (int i=1;i