Вы находитесь на странице: 1из 8

ESCUELA POLITECNICA DEL EJERCITO

LATACUNGA

TECNOLOGIA DE SOFTWARE PARA ELECTRONICA

polimorfismo electronica B
2013

Polimorfismo
(Polimorfismo significa muchas formas) Es una caracterstica de la programacin orientada a objetos que permite que un nombre pueda utilizarse en dos o mas formas, para dos o mas propsitos relacionados entre si. Esto significa que el lenguaje C++ puede admitir una sobrecarga de funciones u operadores de una misma funcin. El polimorfismo es un concepto de la programacin orientada a objetos que nos permite programar en forma general, en lugar de hacerlo en forma especfica. En general nos sirve para programar objetos con caractersticas comunes y que todos estos compartan la misma superclase en una jerarqua de clases, como si todas fueran objetos de la superclase. Esto nos simplifica la programacin.

EN RESUMEN Polimorfismo es la posibilidad de que un mtodo tenga el mismo nombre y produzca el mismo efecto bsico pero est implementado de forma distinta en las subclases. CARACTERISTICAS Potencia y flexibiliza la POO Consiste en que toda referencia a un objeto de una clase especfica puede tomar la forma de una referencia a un objeto de una clase heredada a la suya Significa que la misma operacin puede comportarse diferente en clases distintas Esta muy ligado a la herencia Distintas instancias del mismo tipo interpretan el mismo mensaje en diferentes formas El polimorfismo requiere enlace dinmico * Enlace dinmico: la llamada se resuelve en tiempo de ejecucin * Enlace esttico: la llamada se resuelve en tiempo de compilacin.

ESTRUCTURA GENERAL Class Superclase { Public tipo m1 (par1,par2,,parn) {} } Class Subclase extends Superclase { . Public tipo m1 (par1,par2,,parn){} } Si el mtodo de la subclase necesita invocar al mtodo de la superclase se utiliza la palabra reservada super Public tipo m1(par1,par2,,parn){ super.m1(); }

CLASIFICACIN Existen bsicamente tres formas de polimorfismo: SOBRECARGA .- Significa el uso de un mismo identificador u operador en distintos contextos y con distintos significados. SOBREESCRITURA.- se aplica a los mtodos y est directamente relacionada a la herencia; se refiere a la redefinicin de los mtodos de la clase base en las subclases. ENLACE DINAMICO.- Esto permite invocar operaciones en objetos obviando el tipo actual de stos hasta el momento de ejecutar el cdigo, es decir nos permite definir elementos como un tipo e instanciarlos como un tipo heredado. Para poner en prctica se har un ejemplo bastante sencillo. Se har una librera de clases que represente figuras tridimensionales y bidimensionales, y su respectiva jerarqua de clases. Las clases deben ser capaces de tener funcionamiento bastante bsico, como obtener reas, volmenes y permetros de la figura correspondiente.

La superclase de dicha jerarqua podra ser muy parecida a sta: public abstract class figura { protected String nombre; protected int color; protected int grosorBorde; public String getNombre(){ return this.nombre; } public void setNombre(String n){ this.nombre=n; } public int getColor(){ return this.color; } public void setColor(int c){ this.color=c; } public int getGrosorBorde(){ return this.grosorBorde; } public void setGrosorBorde(int g){ this.grosorBorde=g; } public abstract void dibujar(); } Las siguientes clases en el nivel de la jerarqua podran quedar muy parecidas a stas: public abstract class figura2D extends figura { public abstract int calcularArea(); public abstract int calcularPerimetro(); } public abstract class figura3D extends figura { public abstract int calcularVolumen(); } Se le pide que forme las clases de la parte inferior de la jerarqua y que representaran los objetos a instanciarse. Adems, debe de realizar una implementacin de esta librera, en donde el usuario pueda crear nuevas figuras y que stas se almacenen en un arreglo de figuras.

Ejemplo:

abstract class Interfaz { abstract void metodo1(); abstract void metodo2(); } class Implementacion1 extends Interfaz { void metodo1() { System.out.println("metodo 1, en implementacion 1"); } void metodo2() { System.out.println("metodo 2, en implementacion 1"); } } class Implementacion2 extends Interfaz { void metodo1() { System.out.println("metodo 1, en implementacion 2"); } void metodo2() { System.out.println("metodo 2, en implementacion 2"); } } class EjemploPolimorfismo { public static void main(String [ ] args) { Interfaz imp = new Implementacion1(); imp.metodo1(); imp.metodo2(); imp = new Impelementacion2(); imp.metodo1(); imp.metodo2(); } }

class Mamifero { public void mover() { System.out.println("Ahora es un mamifero el que se mueve"); } } class Perro extends Mamifero { public void mover() { System.out.println("Ahora es un perro el que se mueve"); } } class Perro extends Mamifero { public void mover() { System.out.println("Ahora es un gato el que se mueve"); } } public class Polimorfismo { public static void muevete(Mamifero m) { m.mover(); } public static void main(String[] args) { Gato bisho = new Gato(); Perro feo = new Perro(); muevete(bisho); muevete(feo); } }

class programa{ public void metodo(){ System.out.println ("\nProgramacion II"); } } class operador extend programa{ } class compilar extend programa{ public void metodo(){ System.out.println ("\nElectronica"); } } public class Ej_pol { public static void main(String[] args) { compilar obj=new compilar(); obj.metodo(); operador obj2=new operador(); obj2.metodo(); } }

Public class Animal(){ public void habla(){ System.out.println("No se que soy"); } } Public class Perro() extends Animal{ public void() habla(){ System.out.println("Guau"); } } Public class Gato() extends Animal{ public void() habla(){ System.out.println("Miau"); } } Public class Zoo(){ public static void main(String[] args) { Animal animal = new Gato(); animal. Habla(); animal=new Perro(); animal. Habla(); } }

Amplificador Operacional con una fuente

Cuando se utilizan amplificadores operacionales, se indica que stos deben de funcionar con dos tipos de tensin: una positiva y otra negativa. Esto podra no ser un problema si se tiene ms de una fuente, pero en equipos porttiles es normal que slo se utilice una fuente de tensin (como unabatera o pila) Para lograrlo se elimina la fuente de tensin negativay se implementa una divisin de tensin. Ver que con esta divisin de tensin se elev el nivel de tensin que antes era 0 voltios y ahora tiene un valor igual a la mitad del valor de la fuente de alimentacin utilizada. La divisin de tensin se implementa con dos resistencias: la entrada no inversora. Ver las lneas rojas en el grfico. R3 y R4 y se aplica a

La tensin sobre R4 establece la tensin de polarizacin aplicada a laentrada no inversora y produce un desplazamiento en el nivel de tensin en CC a la salida delamplificador. Ver el diagrama inferior. La tensin de salida ser, de esta manera, similar a la salida original con dos fuentes de tensin, pero desplazada en nivel en una cantidad igual a la tensin de polarizacin (5voltios si se supone que R3 = R4).

La tensin de polarizacin de obtiene con la siguiente frmula: Vpolarizacin = R4/(R3 + R4) x Vfuente alimentacin La ganancia se obtiene con las frmulas: Av = -Vo/Vin = -R2/R1

Capacitor de bloqueo
Si se agrega un divisor de tensin, que se explico antes, se estara entregando a la fuente de la seal de entrada un nivel de corriente continua. Para evitar sto se incluye en el paso de la seal de entrada un condensador de bloqueo (C) que dejar pasar la seales alternas y detendr la corriente continua. (a esto se le llama desacoplar la fuente de seal de la entrada) Nota: Tomar en cuenta que tanto la entrada inversora, como la no inversora estn al mismo nivel de tensin y que si se pone un nivel de tensin en CD en la entrada no inversora, tambin aparecer en la entrada inversora.

Вам также может понравиться