17
Programación Orientada a Programación Orientada a Objetos Objetos Clase 2 Clase 2 Ing. Andrés M García O

Clase 2 poo java

Embed Size (px)

Citation preview

Page 1: Clase 2 poo java

Programación Orientada Programación Orientada a Objetosa Objetos

Clase 2Clase 2

Ing. Andrés M García O

Page 2: Clase 2 poo java

Definición de ClasesDefinición de ClasesPara definir una Clase es necesario diseñarlaidentificando cuales son sus propiedades, métodosy eventos. Para esto se requiere tener en cuentalos siguientes aspectos:

Sirve para contener datos? Aparece en la pantalla? Tiene diversas funciones lógicas o de procesamiento de datos?

Ing. Andrés M García O

Page 3: Clase 2 poo java

Definición de ClasesDefinición de Clases ¿Qué elementos de información almacenará, rastreará y manipulará la

aplicación?. ¿Qué conjuntos de acciones deberán realizarse?. ¿qué información necesitará saber la clase para realizar dicha acción?. ¿qué cambiará en la clase deben ser conocidos por las demás partes de la

aplicación?. Existen funciones y/o propiedades o internos que no le interesan a

ninguna otra clase? ¿Es una clase que puede ser una subclase?

Ing. Andrés M García O

Page 4: Clase 2 poo java

Definición de encapsulamientoDefinición de encapsulamientoEs la habilidad de un objeto para ser contenido dentro de otro objeto, también permite controlar el nivel de acceso a las propiedades y métodos de los objetos

El encapsulamiento es uno de los principios fundamentales de la POO, ya que permite proteger variables y funciones que sólo deberían ser empleadas por el objeto que las contiene y no por los otros objetos que interactúan  Por ejemplo supongamos que estamos manejando un carro, y debo hacer un cambio del engranaje, para aumentar la velocidad, en este caso el carro posee internamente una caja de cambios y esta a su vez posee otros componentes y funciones a las cuales el conductor no necesita acceder directamente.

Ing. Andrés M García O

Page 5: Clase 2 poo java

Definición de ClasesDefinición de Clasesimport org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;

public class Mi_ventana{ static String Titulo="My First window"; // Definición de la propiedad del titulo de la ventana

public static void main(String[] args) { // Definición de la función MAIN

Display display = new Display();Shell shell = new Shell(display);shell.setText(Titulo);shell.open();while (!shell.isDisposed()) {if (!display.readAndDispatch()) display.sleep();}display.dispose();

}

}

Ing. Andrés M García O

Page 6: Clase 2 poo java

Definición de atributos de una Definición de atributos de una ClaseClaseAtributo Clase Definición

dynamic Permite añadir propiedades a instancias en tiempo de ejecución.

final No debe ser heredada por otra clase.

internal (valorpredeterminado)

Visible para referencias dentro del paquete actual.

public Visible para referencias en todas partes.

Ing. Andrés M García O

Page 7: Clase 2 poo java

Ejemplo Definición de atributos de Ejemplo Definición de atributos de una Clase Internaluna Clase Internal

Ing. Andrés M García O

PublicClase

B

InternalClase A

Directorio de Clases 1

PublicClase

C

Directorio de Clases 2

Public Clase B

Var A:Clase AMetodo Cambiar _A()

Public Clase C

Var B:Clase BVar A:Clase AMetodo Cambiar _B()

No se puedePorque esInternal

Page 8: Clase 2 poo java

Definición de atributos de una Definición de atributos de una Propiedad de la ClasePropiedad de la Clase

Atributo Propiedad Definición

internal (valorpredeterminado)

Visible para referencias dentro del mismo paquete.

private Visible para referencias dentro de la misma clase.

protected Visible para referencias en la misma clase y en clases derivadas.

public Especifica que una propiedad pertenece a la clase en lugar de alas instancias de la clase.

static Especifica que una propiedad pertenece a la clase en lugar de las instancias de la clase.

UserDefinedNamespace Nombre de espacio de nombres personalizado definido por el usuario.

Ing. Andrés M García O

Page 9: Clase 2 poo java

Ejemplo Definición de atributos de Ejemplo Definición de atributos de una Propiedaduna Propiedad

Ing. Andrés M García O

PublicClase B

InternalClase A

Directorio de Clases 1

PublicClase C

Directorio de Clases 2

Public Clase B{Private xProtected yPublic zVar A:Clase AMetodo Cambiar _x(int)}

Public Clase C extends B{ This.x=5This.Y=3This.z=0This.cambiar_x(5)}

No se puedePorque esPrivate.“This” se refiereA una propiedadheredada

Page 10: Clase 2 poo java

Definición métodos de una ClaseDefinición métodos de una ClaseTipo de método Definición

Constructor Comparten el nombre con la clase en la que se definen. Todo el código que se incluya en un método constructor se ejecutará siempre que una instancia de la clase se cree con la palabraclave new.

Estático Estos métodos, que se asocian a una clase en lugar de a una instancia de clase, son útiles para encapsular la funcionalidad que afecta a algo más que el estado de una instancia individual.

De instancia Estos métodos, que se asocian a instancias de una clase en lugar de a la clase como un todo

Descriptores de acceso (captador y definidor)

Las funciones descriptoras de acceso get y set, también denominadas captadores y definidores, permiten implementar los principios de programación relacionados con la ocultación de información y encapsulación

Vinculado es simplemente un método que se extrae de su instancia. Los métodos que se pasan como argumentos a una función o se devuelven como valores desde una función son ejemplos de métodos vinculados.

Ing. Andrés M García O

Page 11: Clase 2 poo java

Ejemplo Definición de Método Ejemplo Definición de Método constructorconstructor

Ing. Andrés M García O

Class Mi_clase{ public String estado;

public function Mi_clase() { estado = "inicializado"; }

}

// Código que invoca la clase Ejemplo

Mi_clase Mi_Objeto = new Ejemplo(); System.out.println(Mi_Objeto.estado); // output: inicializado

// El método constructor lleva el // mismo nombre de la Clase

Page 12: Clase 2 poo java

Ejemplo Definición de MétodoEjemplo Definición de Método de descriptores de acceso ( de descriptores de acceso (Captador o definidor)Captador o definidor)

Ing. Andrés M García O

class GetSet { private static String Propiedad_privada; public function GetSet(){Propiedad_privada=“Mi propiedad privada”;}

public function get_Propiedad ():String // Método Captador { return Propiedad_privada; }

public function set_Propiedad(setValue:String):void // Método definidor {Propiedad_privada = setValue; } }

GetSet myGetSet = new GetSet();System.out.println(myGetSet.get_Propiedad ); // output:myGetSet.publicAccess (“Cambio de propiedad privada por un metodo Set“); System.out.println(myGetSet.get_Propiedad ); // output:

Page 13: Clase 2 poo java

Definición de EventosDefinición de Eventos Un evento es toda actividad que se sabe que va a suceder pero no se puede

predecir cuando. Por lo general se refiere a la interacción del usuario, pero existen mas eventos causados por diversos factores

Para llevar a cabo la gestión de eventos, se deben identificar tres elementos importantes:◦ El origen del evento: ¿en qué objeto va a repercutir el evento? Por

ejemplo, ¿en qué botón se hará clic o qué objeto Loader está cargando la imagen?

◦ El evento: ¿qué va a suceder, a qué se va a responder? Es importante identificar esto porque muchos objetos activan varios eventos.

◦ La respuesta: ¿qué pasos hay que llevar a cabo cuando ocurra el evento?

Ing. Andrés M García O

Page 14: Clase 2 poo java

Definición HerenciaDefinición Herencia La herencia es una forma de reutilizar el código que por medio de clases

nuevas basadas en clases existentes.

Las clases existentes se llaman clases base o superclases, y las clases nuevas subclases.

La herencia es que permite reutilizar código de una clase base manteniendo intacto el código existente.

Ing. Andrés M García O

Page 15: Clase 2 poo java

Ejemplo Definición HerenciaEjemplo Definición Herencia

Ing. Andrés M García O

public class Animal{ }

public class Mammal extends Animal{

}

public class Reptile extends Animal{

}

public class Dog extends Mammal{

}

Ref : http://www.tutorialspoint.com/java/java_overriding.htm

Page 16: Clase 2 poo java

Definición Sobre cargaDefinición Sobre carga La herencia permite aplicar el concepto de sobre carga en el código de una

clase heredada. La sobre carga es la capacidad de utilizar un solo nombre de método para un

método que se comporta de distinta manera cuando se aplica a distintos tipos de datos.

Ing. Andrés M García O

Page 17: Clase 2 poo java

Ejemplo Definición PolimorfismoEjemplo Definición Polimorfismo

Ing. Andrés M García O

class Animal { public void move(){ System.out.println("Animals can move"); } }

class Dog extends Animal{ public void move() // (Funcion sobre cargada) { System.out.println("Dogs can walk and run"); } }

public class TestDog { public static void main(String args[]) { Animal a = new Animal(); // Animal reference and object Dog b = new Dog(); // Animal reference but Dog object a.move();// runs the method in Animal class b.move();//Runs the method in Dog class } }

Ref : http://www.tutorialspoint.com/java/java_overriding.htm