Conceptos POO PV

22
PROGRAMACION VISUAL Integrantes: David Alfonso Clara Mateos 12230387 Israel Rescalvo Anastacio 12230433 Carrera: Ing. Electrónica Grupo: 1 4° Semestre Docente: Jiménez rasgado Guillermina

Transcript of Conceptos POO PV

Page 1: Conceptos POO PV

PROGRAMACION VISUAL

Integrantes:David Alfonso Clara Mateos 12230387

Israel Rescalvo Anastacio 12230433

Carrera: Ing. Electrónica

Grupo: 1 4° Semestre

Docente: Jiménez rasgado Guillermina

Page 2: Conceptos POO PV

ObjetoSe puede decir que un objeto es todo aquello que pueda seridentificable dentro de una especificación de requerimientoso problema y tenga las siguiente características: Tenga estados definibles (abierto, cerrado). Posea comportamientos asociados (puede correr, saltar,

volar, etc). Éstos son denominados métodos. Son capaces de interactuar/comunicarse con otros

objetos por medio de sus métodos

Page 3: Conceptos POO PV

Ejemplo:Tenemos un automóvil, cuyos atributos son :Carrocería color verde, espacio para 4 pasajeros, cuatro puertas, ciertacapacidad de carga, 5 velocidades, transmisión automática, velocidadmáxima 200km por hora.Sus encapsulados serian el chasis, las llantas el motorSus funciones son; aceleración, arranque, frenada, alarma,turbocompresor, etc.

Page 4: Conceptos POO PV

ClasesUna clase es un marco que permite crear objetos semejantes;es decir con las mismas características.Una clase representa un grupo de objetos que comparten unamisma estructura y un mismo comportamiento; es decir, unaclase representa un grupo de objetos con los mismos atributosy los mismos métodos.

Page 5: Conceptos POO PV

Ejemplo:Clase: • FelinosAtributos:• Garras retractiles• 4 patas• Cabeza redonda• Sigilosos• Comen carneFuncionalidades:• Correr• Dormir• Saltar• Comer

Page 6: Conceptos POO PV

Abstracción

Podemos definir la abstracción como una operación intelectualque separa las cualidades de un objeto para considerarlasaisladamente o para analizar al objeto en su pura esencia onoción.

Básicamente es la capacidad de separar los elementos (al menosmentalmente) para poder verlos de forma singular. Comocuando describimos el cuerpo humano y decimos cabeza,brazo(s), pierna(s), etc.

En los lenguajes de programación orientada a objetos, elconcepto de Clase es la representación y el mecanismo por elcual se gestionan las abstracciones.

Page 7: Conceptos POO PV

Ejemplo:Gracias a la abstracción, el objeto Tren puede manipular objetos Persona sintener en cuenta sus propiedades ni métodos ya que sólo le interesa, porejemplo, calcular la cantidad de personas que están viajando en él en esemomento, sin tener en cuenta ninguna otra información relacionada con dichaspersonas, tales como la altura, el nombre, el color de ojos, etcétera.

Page 8: Conceptos POO PV

CohesiónCohesión es “Es la medida de cuanto una entidad(componente o clase) se encuentra especializada enpropósito único dentro de un sistema”.

Ejemplo:

Page 9: Conceptos POO PV

Encapsulación

La encapsulación es un mecanismo que consiste en organizar datos y métodos de una estructura, conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un objeto.

Page 10: Conceptos POO PV

Ejemplo:

• System.out.println("Velocidad: " + vehiculo.velocidad);//Mostrar velocidad

• vehiculo.velocidad = 10;//Asignar velocidad

• Pero supongamos que nosotros no queremos que se pueda acceder de esta manera (por ejemplo, en el contexto que tengamos una clase Cliente, perteneciente a un banco, nosotros no queremos que se pueda cambiar el valor del saldo del cliente desde afuera de la clase), por lo tanto, tendríamos que hacer una encapsulación de nuestra variable (en este caso, la variable velocidad), para esto, en la declaración de nuestra variable, debemos anteponer la palabra reservada private antes del tipo de nuestra variable, con esto, le estamos diciendo que nuestra variable solo puede ser vista desde dentro de nuestra clase (es decir, solo podremos acceder a ella desde las funciones internas de nuestra clase). Aquí un ejemplo de como convertir nuestra variblevelocidad en privada:

private int velocidad;

Page 11: Conceptos POO PV

HerenciaEs una propiedad que permite que los objetos sean creados apartir de otros ya existentes, obteniendo características(métodos y atributos) similares a los ya existentes. Es larelación entre una clase general y otra clase mas especifica.Es un mecanismo que nos permite crear clases derivadas apartir de clase base, Nos permite compartir automáticamentemétodos y datos entre clases subclases y objetos.

Page 12: Conceptos POO PV

Ejemplo:El gato y el Perro tendríanla herencia (métodos yatributos) del Mamífero.

Mamífero

Gato Perro

Page 13: Conceptos POO PV

Clases abstractas

Tipo de Clases nos permiten crear “método generales”, que recrean un comportamiento común, pero sin especificar cómo lo hacen. A nivel de código tienen por particularidad que algunos de sus métodos no tienen “cuerpo de declaración”, ¿qué quiere decir esto? no tienen las llaves { } ni código dentro de ellos y deben estar precedidos por la palabra clave abstract. Si una clases contiene uno o más métodos abstractos está clase debe ser abstracta. Estas clases como son generalidades no pueden ser instanciadas por ningún objeto (se dice que su nivel de abstracción es demasiado alto), entonces su único fin es ser heredado/extendido por otras clases.

Page 14: Conceptos POO PV

- Las clases que hereden de la clase Abstracta deben implementar todos los métodos

abstractos.- Se debe tener presente que las clases abstractas sí pueden heredar de otras clases.- La firma o parámetros de los métodos así como el tipo de dato deben respetarse, de lo contrario se está hablando de otro método totalmente diferente.

1234567891011

public abstract class Figura {

// Atributos:public int numeroLados;public int area;public int volumen;

// Métodos:abstract public void calcularArea();abstract public void calcularVolumen();

}

EjemploEn este poco original ejemplo se puede apreciar que toda figura tiene un método para calcular su Área y Volumen.

Page 15: Conceptos POO PV

InterfacesLas interfaces, tal como las clases abstractas. no se pueden instanciar.Sus métodos deben ser re-escritos por la clase que implemente.Permiten separar claramente la funcionalidad de laimplementación„ Operaciones con sus parámetros y valores de retorno„ Los clientes interactúan independientemente de laimplementación„ Pero pueden elegir implementaciones alternativas

Page 16: Conceptos POO PV

Ejemplo:

Obtiene la fecha delsistema medianteDateTime.Now•Obliga a implementar losmétodos que contiene enlas clases derivadas de ella.•Se deben implementartodos sus métodos, de locontrario nos indica un error

Page 17: Conceptos POO PV

Polimorfismo

• Es la capacidad que tienen los objetos de una clase de responder almismo mensaje o evento en función de los parámetros utilizadosdurante su invocación.

Page 18: Conceptos POO PV

Hay dos tipos:

Dinámico: es el que el código no incluye ningún tipo de especificación sobre el tipo dedatos.

Estático: es el que los tipos a los que se aplica el polimorfismo deben ser explicitados ydeclarados uno por uno antes de ser utilizados.

• Ejemplotodos los animales comen algo, pero algunos comen carne, otros hierbitas, otros se comen entre si, etc.

class animal {metodo comer()}

class carnivoro => es un animal {redefine metodo comer() { come carne }}

class herbivoro => es un animal {redefine metodo comer() { come hierba }}

class omnivoro => es un animal {redefine metodo comer() { como de todo }}

animal leon, tortugaleon = new carnivorotortuga = new herbivoroleon.comertoruga.comer

Page 19: Conceptos POO PV

Acoplamiento

El acoplamiento es el grado en el cual una clase conoce a las demás. Sisolo la clase A conoce a la clase B, es que B se ha expuesto a través desu interface, entonces la clase A y la clase B, se las denominaligeramente acopladas... eso es algo bueno. Si, por otra parte A sebasa en partes de B que no es parte de la interfaz de B, entonces elacoplamiento es mas fuerte... y eso no es bueno. En otras palabras si Aconoce mas que lo que debería de B en la manera en que fueimplementado, entonces A y B están fuertemente acoplados.

Page 20: Conceptos POO PV

123456789101112131415161718192021

class DoTaxes {float rate;float doColorado() {

SalesTaxRates str = new SalesTaxRates();rate = str.salesRate; // ouch// esto deberia haber sido llamado// mediante un metodo:// rate = str.getSalesRate("CO");// hacer algo con rate

}}

class SalesTaxRates {public float salesRate; // deberia ser privatepublic float adjustedSalesRate; // deberia ser privatepublic float getSalesRate(String region) {

salesRate = new DoTaxes().doColorado(); // ouch otra vez!// hacer calculos por aquireturn adjustedSalesRate;

}}

Ejemplo:De un acoplamiento ajustado, que ha sido ejecutado mediante una pobre

encapsulación:

Page 21: Conceptos POO PV

Asociación de objetos

• Asociación

Es la relación entre dos clases. Permite que en una instancia que un objeto permita a otro llevar a cabo una acción en su nombre.

con asociación vemos como están relacionados los objetos. La asociación es una relación de pertenencia. Ej: un empleado pertenece a una empresa. Las relaciones pueden ser:

• una a una

• una a muchas

• muchas a muchas

Page 22: Conceptos POO PV

public class Customer { private int id; private String firstName; private String lastName;

private CreditCard creditCard;

public Customer() { //Lo que sea que el construtor haga

} public void setCreditCard(CreditCard creditCard) { this.creditCard = creditCard; } }• En la asociación:•

Customer es independiente de CreditCard, puesto que el cliente puede existir sin necesidad de tener asignada una tarjeta de crédito. Démosle tiempo para que la tramite, ¡Pero no lo dejemos ir!

• Se puede asignar o retirar la tarjeta de crédito, sin que la existencia del Cliente se vea afectada (No debería verse afectada, esto significa que Customer no debe tronar si no hay un CreditCard presente).