Clases y Objetos en Java

download Clases y Objetos en Java

of 16

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