Sie sind auf Seite 1von 9

Java Orientado a Objetos II

JAVA ORIENTADO A OBJETOS II


HERENCIA Analizando algunos temas:
Concepto de objeto: Atributos y Mtodos
Un objeto es cualquier cosa real o abstracta de la cual nos interesa su comportamiento y que tiene una identidad nica que la distingue de las dems. Un objeto se compone de: Atributos (datos o variables) Mtodos (operaciones o funciones) Solo se puede acceder a los atributos de un objeto a travs de sus mtodos. Imaginemos que nuestro objeto es un reloj y que su plantilla es la siguiente:

Este diagrama representa la estructura de un objeto. La parte interna del objeto no es accesible y contiene los atributos. La parte externa o interfaz del objeto es accesible y contiene los mtodos.

Profesor: Jorge Luis Carmona Espinoza

Pgina 1

Java Orientado a Objetos II


Si otro objeto quiere acceder a estos atributos, no lo puede hacer directamente, sino a travs de los mtodos del objeto reloj Es decir: Si quiere saber la hora, llamara al mtodo dame la hora y recibir como resultado el tipo string con la hora: 5:45. Si quiere introducir una nueva hora, llamara al mtodo Introduzco nueva hora y le pasara como argumento el tipo string con la hora 6:40 a introducir para que el reloj funcione. Generalmente, a estos mtodos que obtienen o introducen se les llama mtodos reloj

getters
a y

setters.

De esta forma, los mtodos del objetolos nombres

pasaran

codificarse

bajo

getHora, getFecha,

getMarca

setHora, setFecha.

El prototipo del mtodo gethora ser: String geHora () String (antes del mtodo), indica que la llamada al mtodo devuelve un tipo String, como es una cadena de caracteres con la hora. Sin embargo, no hace falta pasarle ningn argumento al mtodo, por lo que dejamos los parntesis () vacios. El prototipo del mtodo setHora ser: void setHora( String hora) Void (antes del mtodo), indica que la llamada al mtodo no devuelve ningn tipo. Sin embargo, es necesario pasarle un argumento tipo String, como es la cadena de caracteres de la hora para que, por ejemplo, el cdigo del mtodo implemente esa hora y entonces.

Concepto de clase:
Las clases son una especie de plantilla para los objetos, es decir, si se piensa en una clase como un molde de galletas, los objetos que se crean a partir de esa clase son las galletas. Definimos formalmente clase como la repr4esentacion (atributos) y comportamientos (mtodos) de un objeto. de la estructura

La creacin de un objeto a partir de una clase se denomina. instanciacin. Cualquier objeto que se instancie de una clase creara una copia de la definicin de atributos de la clase y dispondr de los mtodos definidos en ella. Para crear objetos, se invoca al constructor de la clase, que es un mtodo que se llama igual que la clase.
Profesor: Jorge Luis Carmona Espinoza Pgina 2

Java Orientado a Objetos II Tipos de clase:


Clase abstracta: ningn objeto pertenece directamente a dicha clase. Clase concreta: clase. existen objetos que pertenecen directamente a dicha

En lo que respecta a los mtodos sabemos que son un conjunto de instrucciones que definen el comportamiento del objeto. Reciben (pasar) unos argumentos y devuelven un resultado. Veamos la clase-reloj que crea objetos-reloj, todos de la misma marca Casio. Estos objetos-reloj implementan los atributos Hora, Fecha y Marca; y los mtodos getHora, getFecha, getMarca, setHora y setFecha. Sin embargo, algunos de estos atributos y mtodos son de clase y otros son de

instancia:
Atributos de instancia: .Hora .Fecha Mtodos de instancia: .getHora .getFecha Atributos de clase: .Marca Metodos de clase: .getmarca Se puede sencilla: distinguir las diferencias entre unos y otros de manera

Si le preguntamos a dos objetos (relojA y relojB) con getHora o getFecha, nos pueden contestar un valor diferente para cada objeto. Estos atributos y mtodos sern denominados atributos de instancia y mtodos de instancia. Si le preguntamos a dos objetos (relojA y relojB) con getMarca, ambos contestaran el mismo valor=Casio, ya que la clase-reloj se lo ha asignado forzosamente. Estos atributos y mtodos sern denominados atributos de clase y mtodos de clase. En este caso, por ejemplo, si existiera el mtodo setMarca y modificramos el atributo Marca de cualquier objeto a travs de l , este atributo se modificara para todos los objetos, pues estamos tratando con mtodos de clase.

Profesor: Jorge Luis Carmona Espinoza

Pgina 3

Java Orientado a Objetos II


CONSECUENCIAS: Cualquier objeto creado a partir de una clase contendr la definicin de los atributos de clase y dispondr del mtodo de clase. Por tanto, cuando se modifica un atributo de clase a travs de un objeto, se modifica ese atributo en todos los objetos creados a partir de esa clase. Especificaciones sobre los mtodos: Un objeto de clase no puede acceder a un mtodo de instancia, porque no sabemos si el objeto al que intenta acceder ha sido ya creado. Sin embargo, el resto de accesos son posibles: - mtodo de clase mtodo de clase - mtodo de instancia mtodo de instancia - mtodo de instancia mtodo de clase Asimismo, un mtodo de instancia de un objeto A no puede acceder directamente a los atributos (variables) de un objeto B, Pero puede hacer referencia a un mtodo de instancia del objeto B, y que sea este el que acceda a los atributos del objeto B. Modificadores de acceso. Alcance de los modificadores de acceso prefijos a atributos y mtodos: -public: accesible desde cualquier lugar de la aplicacin (por el resto de clases). -private: slo accesible desde la clase a la que pertenece. -protected: disponible para la clase actual, clases del mismo paquete y subclases derivadas de esa clase.

Paradigmas de la POO
Abstraccin: Consiste en abstraer conceptualmente los atributos y comportamiento (mtodos) comunes a un determinado conjunto de objetos y almacenarlos en una clase. Encapsulamiento: El encapsulamiento es el principio por el cual se ocultan los detalles de implementacin al usuario. Cada clase tiene dos partes: -EL Interfaz es la (mtodos pblicos). parte pblica con la que interacta el usuario

Profesor: Jorge Luis Carmona Espinoza

Pgina 4

Java Orientado a Objetos II


-La Implementacin es el cdigo que realiza todas las operaciones de la clase (mtodos privados)

A continuacin UN EJEMPLO CON 3 CLASES DE CMO TRABAJA LA PROGRAMACIN ORIENTADA A OBJETOS: (Reloj):

La siguiente aplicacin sirve para mostrar, de conceptos de clases, constructores, objetos, herencia. La aplicacin en si se divide en 3 clases:

forma prctica, los atributos, mtodos,

-La clase Reloj: que define los atributos y mtodos de los objetos-Reloj -La clase Digitalreloj. Heredada de la clase Reloj. Hereda los mismos atributos y mtodos que la clase Reloj y, a su vez, define nuevos atributos y mtodos a implementar. -La clase app: que contiene el mtodo Main para la ejecucin de aplicacin (clase principal). En esta clase se crean 2 objetos-Reloj objetos-Digitalreloj invocando a los mtodos Constructores de respectivas clases. Tambin accede a los objetos creados a travs de mtodos getters y setters. la Y 2 sus sus

Profesor: Jorge Luis Carmona Espinoza

Pgina 5

Java Orientado a Objetos II

Clase Reloj:
class Reloj { // Definimos las variables o atributos String Hora; String Fecha; String Marca; // Constructor -Construye el objeto reloj e identifica sus atributos //con los parmetros recibidos. Reloj(String a,String v,String i) { Hora=a; Fecha=v; Marca=i; } // Mtodos String getHora() { return Hora; //Devuelve autor } String getFecha() { return Fecha; } String getMarca() { return Marca; } String getinfoComun()//Devuelve toda la informacin de golpe { return ("\tHora:"+Hora+"\n\tFecha :"+Fecha+"\n\tMarca :"+Marca); } int setHora(String h) { // Se implementa el parmetro hora en la funcin que se quiera System.out.println("\n\n[*]Implementando la hora"+h+"en el reloj...\n"); // Un ejemplo de esta implementacin: // Se configura el cdigo del reloj en la marca sony para que necesite // como parmetro de entrada la hora. Este mtodo de la // Aplicacin Java, realizara una llamada externa al ejecutable // del reloj y le pasara como parmetro de entrada, esta hora. // Si se ha implementado con xito, el mtodo devuelve 0. return(0); }}

Profesor: Jorge Luis Carmona Espinoza

Pgina 6

Java Orientado a Objetos II

Clase Digitalreloj:
class Digitalreloj extends Reloj { //Adems de disponer de los atributos heredados de la clase padre... //Definimos las nuevas variables o atributos a aadir String CodigoR; // Constructor-Construye el objeto-reloj e identifica sus atributos con los parametros recibidos. Digitalreloj(String h,String f,String m,String c) { super(h,f,m); //Estos atributos son implementados por el constructor de la clase padre CodigoR=c; } //Ademas de disponer de los metodos heredados de la clase padre... //Definimos los nuevos mtodos String getCodigoR() { return CodigoR; } String getinfodigital()//Devuelve toda la informacin de golpe { String s; s=this.getinfoComun()+"\n\tCodigo R:"+CodigoR; return s; } }

Clase app:
class app { public static void main (String[] args) { //Creamos dos objetos-reloj llamando al Constructor Reloj r1 =new Reloj("5:45:12","14-02-2010","Casio"); Reloj r2 =new Reloj("8:50:34","10-04-2010","Casio"); // Creamos dos objetos-Digitalreloj llamando al Constructor Digitalreloj d1 = new Digitalreloj("10:50","17/01/2010","Casio","Rdigit01"); Digitalreloj d2 = new Digitalreloj("10:16","19/06/2010","Casio","Rdigit02"); // Imprimimos las caractersticas de los objetos (2 formas)
Profesor: Jorge Luis Carmona Espinoza Pgina 7

Java Orientado a Objetos II


System.out.println("Profesor: Jorge Luis Carmona Espinoza-Telesup 2010"); System.out.println(" =============================================== \n"); System.out.println(" Ejemplo explicativo de cmo trabaja la POO \n"); System.out.println("\nInformacin de r1\n"); System.out.println("Hora: "+r1.getHora()); System.out.println("\tFecha:"+r1.getFecha()); System.out.println("\tMarca:"+r1.getMarca()); System.out.println("\nInformacin de r2\n"); System.out.println(r2.getinfoComun()); System.out.println("\nInformacin de d1\n"); System.out.println("\tHora: "+d1.getHora()); System.out.println("\tFecha:"+d1.getFecha()); System.out.println("\tMarca:"+d1.getMarca()); System.out.println("\tCodigo R:"+d1.getCodigoR()); System.out.println("\nInformacin de d2\n"); System.out.println(d2.getinfodigital()); int resultado = d2.setHora("7:45:34"); if (resultado==0) { System.out.println("[!] La Hora se implemento con exito\n"); } else { System.out.println("[!] Error durante la implementacin de la Hora\n"); } } }

Resultado:
run: Profesor: Jorge Luis Carmona Espinoza - Telesup 2010 =============================================== Ejemplo explicativo de cmo trabaja la POO Informacin de r1 Hora: 5:45:12 Fecha:14-02-2010 Marca:Casio

Profesor: Jorge Luis Carmona Espinoza

Pgina 8

Java Orientado a Objetos II


Informacin de r2 Hora:8:50:34 Fecha :10-04-2010 Marca :Casio Informacin de d1 Hora: 10:50 Fecha:17/01/2010 Marca:Casio Codigo R:R-digit01 Informacin de d2 Hora:10:16 Fecha :19/06/2010 Marca :Casio Codigo R:R-digit02 [*]Implementando la hora7:45:34en el reloj... [!] La Hora se implemento con exito GENERACIN CORRECTA (total time: 1 second)

Profesor: Jorge Luis Carmona Espinoza

Pgina 9

Das könnte Ihnen auch gefallen