Anda di halaman 1dari 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 ve el uso de una clase


abstracta
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

Anda mungkin juga menyukai