Programacion Orientada A Objetos

  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Programacion Orientada A Objetos as PDF for free.

More details

  • Words: 1,239
  • Pages: 14
PROGRAMACION ORIENTADA A OBJETOS QUE ES UN OBJETO? La programación orientada a obejetos propone representar todo lo que conocemos en términos de entidades (objetos) que interactúan y se relacionan entre sí. Este tipo de programación permite representar de madera facil problemas muy complejos permitiendo hacer el desarrollo del software mas facil actualmente es el mas utlizado en las empresas Por que se le llama orientada a objetos - se parece al mundo real - permite representar modelos complejos los objetos representan una entida del mundo real por ejemplo: casas,carros,televisiones,transacciones bancarias,animales etc según las definiciones los objetos se distinguen de tres formas : -lo que el objeto sabe .el objeto es implementado por una serie de atributos (a la hora de hacer el modelado los atributos serian las variables que contiene el objeto) ademas las conexiones con otros objetos --lo que el objeto puede hacer: En este caso se refiere a la forma en que reacciona el objeto a las meticiones de otros objetos se refiere a las acciones que este puede hacer(en el modelado de un objeto etas acciones serian los metodos de el objeto). Ejmplo de objeto:: perro Tamaño Ladrar () Comer () Morder ()

Este es un ejemplo de modelado de un objeto

QUE ES UNA CLASE? Las clase son una descripción de un grupo de objetos que tienen propiedades en comun ,comportamientos similares y las mismas formas de relacionarce con otros objetos.practicamente un onjeto es una instancia de una clase.. Un ejemplo de una clase seria la clase persona que tienen propidades en comun comportamientos similares y las mismas formas de relacionarse con los demas: public class Persona { private String nombre; private int edad; Persona(String n ,int e){ nombre= n; edad= e; } public String toString(){ //redefinicion del metodo return "nombre:"+ nombre; } public boolean equals(Persona p){//override(reescri) de objeto

if(edad ==p.edad)return true; return false; } public static void main(String[] args) { Persona uno = new Persona("juan",20); System.out.println(uno.toString()); Persona dos = new Persona("pedro",20); if(uno.equals(dos)); System.out.println(uno + " y " + dos + " tiene la misma edad "); } } Este es un ejemplo de una clase maneja un grupo de objetos que son similares entre si que serian persona uno y persona dos ambos manejan los atributos y metodos de una misma clase..

QUE SON LOS MODIFICADORES DE ACCESO? Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o métodos) de una clase;por ejemplo:: -publico.- cualquier clase puede ver los miembros publicos de otra clase

-privado.- solo la clase puede ver sus propios miembros privados. .-paquete.- un miembro de tipo paquete sólo podrá ser accedido desde las clases que estén en el mismo paquete lógico que la clase en la que está definido. -protegido.- un miembro protegido solamente puede ser accedido desde la clase en la que está declarado y desde las clases que hereden de ella (es visible solo en relaciones de herencia. Los modificadores de acceso aplican a variables y metodos FUNDAMENTOS DE LA PROGRAMACION ORIENTADA A OBJETOS 1.-Encapsulacion(ocultamiento de la información) 2.-Herencia(clasificacion de jerarquías) 3.-Polimorfismo(misma operación ejecutada en forma distinta) HERENCIA La herencia es muy importante a la hora de realizar la programación ya que permite la reutilización de codigo, esto consiste en tener una clase base que tiene los atributos generas y las subclase o clase derivadas que pueden heredar los atributos de la clase base ademas de los propios

felino

gato

leon

En este ejemplo las subclase gato y leon heredan todos los atributos de la clase felino ademas de tener los suyos propios.

public class TestMascotas { public static void main(String[] args){ Mascota x = new Mascota(); Gato conBotas = new Gato(); x.nombre = "equis"; conBotas.nombre = "soy gato con botas"; System.out.println(x); System.out.println(conBotas); }

} class Mascota{ String nombre; public String toString(){ return nombre; }

} class Gato extends Mascota{ } En esta clase se utiliza la herencia hay una clase mascota con el atributo nombre y un metodo y la clse gato que hereda de ella.

POLIMORFISMO El concepto de Polimorfismo es uno de los fundamentos para cualquier lenguaje orientado a Objetos, las mismas raíces de la palabra pueden ser una fuerte pista de su significado: Poli = Multiple, morfismo= Formas , esto implica que un mismo Objeto puede tomar diversas formas. A través del concepto de Herencias ("Inheritance") es posible ilustrar este comportamiento:

El poder manipular un Objeto como si éste fuera de un tipo genérico otorga mayor flexibilidad al momento de programar con Objetos, el término Polimorfismo también es asociado con un concepto llamado Late-Binding (Ligamiento Tardío), observe el siguiente fragmento de código: Figura a = new Circulo(); Figura b = new Triangulo(); Inicialmente se puede pensar que este código generaría un error debido a que el tipo de referencia es distinta a la instancia del objeto, sin embargo, el fragmento anterior es correcto y demuestra el concepto de Polimorfismo;

import java.util.*; class Instrumento { public void tocar() { System.out.println("Instrumento.tocar()"); }

public String tipo() { return "Instrumento"; } public void afinar() {} } class Guitarra extends Instrumento { public void tocar() { System.out.println("Guitarra.tocar()"); } public String tipo() { return "Guitarra"; } public void afinar() {} } class Piano extends Instrumento { public void tocar() { System.out.println("Piano.tocar()"); } public String tipo() { return "Piano"; } public void afinar() {} } class Saxofon extends Instrumento { public void tocar() { System.out.println("Saxofon.tocar()"); } public String tipo() { return "Saxofon"; } public void afinar() {} } // Un tipo de Guitarra class Guzla extends Guitarra { public void tocar() { System.out.println("Guzla.tocar()") ; }

public void afinar() { System.out.println("Guzla.afinar()" );

} }

// Un tipo de Guitarra class Ukelele extends Guitarra { public void tocar() { System.out.println("Ukelele.tocar()"); } public String tipo() { return "Ukelele"; } }

public class Musica { // No importa el tipo de Instrumento, // seguirá funcionando debido a Polimorfismo: static void afinar(Instrumento i) { // ... i.tocar(); } {

static void afinarTodo(Instrumento[] e) for(int i = 0; i < e.length; i++) afinar(e[i]); }

public static void main(String[] args) { Instrumento[] orquesta = new Instrumento[5]; int i = 0; // Up-casting al asignarse el Arreglo orquesta[i++] = new Guitarra(); orquesta[i++] = new Piano(); orquesta[i++] = new Saxofon(); orquesta[i++] = new Guzla(); orquesta[i++] = new Ukelele(); afinarTodo(orquesta); } }

Clases Abstractas. Al ser utilizado Herencias y/o Polimorfismo es muy común que en la Clase Base existan métodos diseñados únicamente con el propósito de ofrecer una guia para las Clases heredadas, en Java existe un vocablo que permite prohibir el uso de métodos en Clases Base, este calificativo es : abstract Al ser definido un método como abstract se restringe que éste sea llamado

directamente, cuando una Clase contiene un método de este tipo a ésta se le llama: Clase Abstracta. Al ser definida una Clase, además de ser declarados los métodos/campos como abstract también es necesario utilizar el vocablo abstract en la definición de cada Clase.

public class TestSerVivo { public static void main(String[] args){ Terricola t = new Terricola(); Acuatico a = new Acuatico(); a.respirar(); t.respirar(); } abstract class SerVivo{ abstract void respirar(); } class Terricola extends SerVivo{ void respirar(){}//obligatrorio //implementarlo } class Acuatico extends SerVivo{ void respirar(){} }

}

En este ejemplo se abstracta

ve el

uso de una clase

INTERFAZ La implementación de una interfaz es un contrato que obliga a la clase a implementar todos los métodos definidos en la interfaz

El ejemplo de la interfaz seria agrgar un objeto hidroavión que usaria los atributos de aereo y acuatico mediante la palabra implements

Related Documents