Clase 2 poo java

5,883 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
5,883
On SlideShare
0
From Embeds
0
Number of Embeds
2,003
Actions
Shares
0
Downloads
73
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clase 2 poo java

  1. 1. Programación Orientada a Objetos Clase 2 Ing. Andrés M García O
  2. 2. Definición de Clases <ul><li>Para definir una Clase es necesario diseñarla </li></ul><ul><li>identificando cuales son sus propiedades, métodos </li></ul><ul><li>y eventos. Para esto se requiere tener en cuenta </li></ul><ul><li>los siguientes aspectos: </li></ul><ul><li>Sirve para contener datos? </li></ul><ul><li>Aparece en la pantalla? </li></ul><ul><li>Tiene diversas funciones lógicas o de </li></ul><ul><li>procesamiento de datos? </li></ul>Ing. Andrés M García O
  3. 3. Definición de Clases <ul><li>¿Qué elementos de información almacenará, rastreará y manipulará la aplicación?. </li></ul><ul><li>¿Qué conjuntos de acciones deberán realizarse?. </li></ul><ul><li>¿qué información necesitará saber la clase para </li></ul><ul><li>realizar dicha acción?. </li></ul><ul><li>¿qué cambiará en la clase deben ser conocidos por las demás partes de la aplicación?. </li></ul><ul><li>Existen funciones y/o propiedades o internos que no le interesan a ninguna otra clase? </li></ul><ul><li>¿Es una clase que puede ser una subclase? </li></ul>Ing. Andrés M García O
  4. 4. Definición de encapsulamiento <ul><li>Es la habilidad de un objeto para ser contenido dentro de otro objeto, también </li></ul><ul><li>permite controlar el nivel de acceso a las propiedades y métodos de los objetos </li></ul><ul><li>El encapsulamiento es uno de los principios fundamentales de la POO, ya que </li></ul><ul><li>permite proteger variables y funciones que sólo deberían ser empleadas por el </li></ul><ul><li>objeto que las contiene y no por los otros objetos que interactúan </li></ul><ul><li>  </li></ul><ul><li>Por ejemplo supongamos que estamos manejando un carro, y debo hacer un </li></ul><ul><li>cambio del engranaje, para aumentar la velocidad, en este caso el carro posee </li></ul><ul><li>internamente una caja de cambios y esta a su vez posee otros componentes y </li></ul><ul><li>funciones a las cuales el conductor no necesita acceder directamente. </li></ul>Ing. Andrés M García O
  5. 5. Definición de Clases <ul><li>import org.eclipse.swt.widgets.Display; </li></ul><ul><li>import org.eclipse.swt.widgets.Shell; </li></ul><ul><li>public class Mi_ventana{ </li></ul><ul><li>static String Titulo=&quot;My First window&quot;; // Definición de la propiedad del titulo de la ventana </li></ul><ul><li>public static void main(String[] args) { // Definición de la función MAIN </li></ul><ul><li>Display display = new Display(); </li></ul><ul><li>Shell shell = new Shell(display); </li></ul><ul><li>shell.setText(Titulo); </li></ul><ul><li>shell.open(); </li></ul><ul><li>while (!shell.isDisposed()) { </li></ul><ul><li>if (!display.readAndDispatch()) display.sleep(); </li></ul><ul><li>} </li></ul><ul><li>display.dispose(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>Ing. Andrés M García O
  6. 6. Definición de atributos de una Clase Ing. Andrés M García O Atributo Clase Definición dynamic Permite añadir propiedades a instancias en tiempo de ejecución. final No debe ser heredada por otra clase. internal (valor predeterminado) Visible para referencias dentro del paquete actual. public Visible para referencias en todas partes.
  7. 7. Ejemplo Definición de atributos de una Clase Internal Ing. Andrés M García O Public Clase B Internal Clase A Directorio de Clases 1 Public Clase C Directorio de Clases 2 Public Clase B Var A:Clase A Metodo Cambiar _A() Public Clase C Var B:Clase B Var A:Clase A Metodo Cambiar _B() No se puede Porque es Internal
  8. 8. Definición de atributos de una Propiedad de la Clase Ing. Andrés M García O Atributo Propiedad Definición internal (valor predeterminado) 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 a las 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.
  9. 9. Ejemplo Definición de atributos de una Propiedad Ing. Andrés M García O Public Clase B Internal Clase A Directorio de Clases 1 Public Clase C Directorio de Clases 2 Public Clase B {Private x Protected y Public z Var A:Clase A Metodo Cambiar _x(int) } Public Clase C extends B { This.x=5 This.Y=3 This.z=0 This.cambiar_x(5) } No se puede Porque es Private. “ This” se refiere A una propiedad heredada
  10. 10. Definición métodos de una Clase Ing. Andrés M García O Tipo 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 palabra clave 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.
  11. 11. Ejemplo Definición de Método constructor Ing. Andrés M García O Class Mi_clase { public String estado; public function Mi_clase() { estado = &quot;inicializado&quot;; } } // 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
  12. 12. Ejemplo Definición de Método de descriptores de acceso ( 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:
  13. 13. Definición de Eventos <ul><li>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 </li></ul><ul><li>Para llevar a cabo la gestión de eventos, se deben identificar tres elementos importantes: </li></ul><ul><ul><li>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? </li></ul></ul><ul><ul><li>El evento: ¿qué va a suceder, a qué se va a responder? Es importante identificar esto porque muchos objetos activan varios eventos. </li></ul></ul><ul><ul><li>La respuesta: ¿qué pasos hay que llevar a cabo cuando ocurra el evento? </li></ul></ul>Ing. Andrés M García O
  14. 14. Definición Herencia <ul><li>La herencia es una forma de reutilizar el código que por medio de clases nuevas basadas en clases existentes. </li></ul><ul><li>Las clases existentes se llaman clases base o superclases, y las clases nuevas subclases. </li></ul><ul><li>La herencia es que permite reutilizar código de una clase base manteniendo intacto el código existente. </li></ul>Ing. Andrés M García O
  15. 15. Ejemplo 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
  16. 16. Definición Sobre carga <ul><li>La herencia permite aplicar el concepto de sobre carga en el código de una clase heredada. </li></ul><ul><li>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. </li></ul>Ing. Andrés M García O
  17. 17. Ejemplo Definición Polimorfismo Ing. Andrés M García O class Animal { public void move(){ System.out.println(&quot;Animals can move&quot;); } } class Dog extends Animal { public void move() //  (Funcion sobre cargada) { System.out.println(&quot;Dogs can walk and run&quot;); } } 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

×