SlideShare una empresa de Scribd logo
1 de 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
Objeto
Se puede decir que un objeto es todo aquello que pueda ser
identificable dentro de una especificación de requerimientos
o 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
Ejemplo:
Tenemos un automóvil, cuyos atributos son :
Carrocería color verde, espacio para 4 pasajeros, cuatro puertas, cierta
capacidad de carga, 5 velocidades, transmisión automática, velocidad
máxima 200km por hora.
Sus encapsulados serian el chasis, las llantas el motor
Sus funciones son; aceleración, arranque, frenada, alarma,
turbocompresor, etc.
Clases
Una 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 una
misma estructura y un mismo comportamiento; es decir, una
clase representa un grupo de objetos con los mismos atributos
y los mismos métodos.
Ejemplo:
Clase:
• Felinos
Atributos:
• Garras retractiles
• 4 patas
• Cabeza redonda
• Sigilosos
• Comen carne
Funcionalidades:
• Correr
• Dormir
• Saltar
• Comer
Abstracción
Podemos definir la abstracción como una operación intelectual
que separa las cualidades de un objeto para considerarlas
aisladamente o para analizar al objeto en su pura esencia o
noción.
Básicamente es la capacidad de separar los elementos (al menos
mentalmente) para poder verlos de forma singular. Como
cuando describimos el cuerpo humano y decimos cabeza,
brazo(s), pierna(s), etc.
En los lenguajes de programación orientada a objetos, el
concepto de Clase es la representación y el mecanismo por el
cual se gestionan las abstracciones.
Ejemplo:
Gracias a la abstracción, el objeto Tren puede manipular objetos Persona sin
tener en cuenta sus propiedades ni métodos ya que sólo le interesa, por
ejemplo, calcular la cantidad de personas que están viajando en él en ese
momento, sin tener en cuenta ninguna otra información relacionada con dichas
personas, tales como la altura, el nombre, el color de ojos, etcétera.
Cohesión
Cohesión es “Es la medida de cuanto una entidad
(componente o clase) se encuentra especializada en
propósito único dentro de un sistema”.

Ejemplo:
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.
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 varible
velocidad en privada:

private int velocidad;
Herencia
Es una propiedad que permite que los objetos sean creados a
partir de otros ya existentes, obteniendo características
(métodos y atributos) similares a los ya existentes. Es la
relación entre una clase general y otra clase mas especifica.
Es un mecanismo que nos permite crear clases derivadas a
partir de clase base, Nos permite compartir automáticamente
métodos y datos entre clases subclases y objetos.
Ejemplo:
El gato y el Perro tendrían
la herencia (métodos y
atributos) del Mamífero.
Mamífero

Gato

Perro
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.
Ejemplo
En este poco original ejemplo se puede apreciar que toda figura tiene un método para calcular su Área
y Volumen.
1
2
3
4
5
6
7
8
9
1
0
1
1

public abstract class Figura {
// Atributos:
public int numeroLados;
public int area;
public int volumen;
// Métodos:
abstract public void calcularArea();
abstract public void calcularVolumen();
}

- 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.
Interfaces
Las 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 la
implementación
„ Operaciones con sus parámetros y valores de retorno
„ Los clientes interactúan independientemente de la
implementación
„ Pero pueden elegir implementaciones alternativas
Ejemplo:
Obtiene la fecha del
sistema mediante
DateTime.Now
•Obliga a implementar los
métodos que contiene en
las clases derivadas de ella.
•Se deben implementar
todos sus métodos, de lo
contrario nos indica un error
Polimorfismo
• Es la capacidad que tienen los objetos de una clase de responder al
mismo mensaje o evento en función de los parámetros utilizados
durante su invocación.
Hay dos tipos:
Dinámico: es el que el código no incluye ningún tipo de especificación sobre el tipo de
datos.
Estático: es el que los tipos a los que se aplica el polimorfismo deben ser explicitados y
declarados uno por uno antes de ser utilizados.

• Ejemplo

todos 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, tortuga
leon = new carnivoro
tortuga = new herbivoro
leon.comer
toruga.comer
Acoplamiento
El acoplamiento es el grado en el cual una clase conoce a las demás. Si
solo la clase A conoce a la clase B, es que B se ha expuesto a través de
su interface, entonces la clase A y la clase B, se las denomina
ligeramente acopladas... eso es algo bueno. Si, por otra parte A se
basa en partes de B que no es parte de la interfaz de B, entonces el
acoplamiento es mas fuerte... y eso no es bueno. En otras palabras si A
conoce mas que lo que debería de B en la manera en que fue
implementado, entonces A y B están fuertemente acoplados.
Ejemplo:
De un acoplamiento ajustado, que ha sido ejecutado mediante una pobre
encapsulación:

1class DoTaxes {
2
float rate;
3
float doColorado() {
4
SalesTaxRates str = new SalesTaxRates();
5
rate = str.salesRate; // ouch
6
// esto deberia haber sido llamado
7
// mediante un metodo:
8
// rate = str.getSalesRate("CO");
9
// hacer algo con rate
10
}
11}
12
13class SalesTaxRates {
14
public float salesRate; // deberia ser private
15
public float adjustedSalesRate; // deberia ser private
16
public float getSalesRate(String region) {
17
salesRate = new DoTaxes().doColorado(); // ouch otra vez!
18
// hacer calculos por aqui
19
return adjustedSalesRate;
20
}
21}
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
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).

Más contenido relacionado

La actualidad más candente

JavaScript: Variables and Functions
JavaScript: Variables and FunctionsJavaScript: Variables and Functions
JavaScript: Variables and Functions
Jussi Pohjolainen
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent46
 
Exceptions in Java
Exceptions in JavaExceptions in Java
Exceptions in Java
Vadym Lotar
 
Patrones de diseño Singleton
Patrones de diseño SingletonPatrones de diseño Singleton
Patrones de diseño Singleton
Carolina Rojas
 
Templates in C++
Templates in C++Templates in C++
Templates in C++
Tech_MX
 
Methods and constructors
Methods and constructorsMethods and constructors
Methods and constructors
Ravi_Kant_Sahu
 

La actualidad más candente (20)

JAVA PROGRAMMING- Exception handling - Multithreading
JAVA PROGRAMMING- Exception handling - MultithreadingJAVA PROGRAMMING- Exception handling - Multithreading
JAVA PROGRAMMING- Exception handling - Multithreading
 
Multi threading
Multi threadingMulti threading
Multi threading
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Array vs array list
Array vs array listArray vs array list
Array vs array list
 
JavaScript: Variables and Functions
JavaScript: Variables and FunctionsJavaScript: Variables and Functions
JavaScript: Variables and Functions
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
OOPs in Java
OOPs in JavaOOPs in Java
OOPs in Java
 
Polymorphism in java
Polymorphism in javaPolymorphism in java
Polymorphism in java
 
OOP java
OOP javaOOP java
OOP java
 
Exceptions in Java
Exceptions in JavaExceptions in Java
Exceptions in Java
 
Class and Objects in Java
Class and Objects in JavaClass and Objects in Java
Class and Objects in Java
 
Patrones de diseño Singleton
Patrones de diseño SingletonPatrones de diseño Singleton
Patrones de diseño Singleton
 
Templates in C++
Templates in C++Templates in C++
Templates in C++
 
Polimorfismo y Clases Abstractas
Polimorfismo y Clases AbstractasPolimorfismo y Clases Abstractas
Polimorfismo y Clases Abstractas
 
Vectors in Java
Vectors in JavaVectors in Java
Vectors in Java
 
Java oops PPT
Java oops PPTJava oops PPT
Java oops PPT
 
POO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basuraPOO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basura
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
 
Methods and constructors
Methods and constructorsMethods and constructors
Methods and constructors
 
Aggregation v s composition
Aggregation v s compositionAggregation v s composition
Aggregation v s composition
 

Similar a Conceptos POO PV

Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visual
Libertad25
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
mtemarialuisa
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
mtemarialuisa
 
Programación Orientada a Objetos parte 2
Programación Orientada a Objetos  parte 2Programación Orientada a Objetos  parte 2
Programación Orientada a Objetos parte 2
Karla Silva
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
Jonathan Macías
 
Explicacion de interface
Explicacion de interfaceExplicacion de interface
Explicacion de interface
Boris Salleg
 

Similar a Conceptos POO PV (20)

TRABAJO N°1
TRABAJO N°1 TRABAJO N°1
TRABAJO N°1
 
P.o.o.
P.o.o.P.o.o.
P.o.o.
 
P.o.o.
P.o.o.P.o.o.
P.o.o.
 
Analisis orientado a objetos
Analisis orientado a objetosAnalisis orientado a objetos
Analisis orientado a objetos
 
Introduccionjava
IntroduccionjavaIntroduccionjava
Introduccionjava
 
Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)
 
Prog.orientada a objeto
Prog.orientada a objetoProg.orientada a objeto
Prog.orientada a objeto
 
Programación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetosProgramación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetos
 
Act10byme
Act10bymeAct10byme
Act10byme
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visual
 
Cap.10 - El paradigma Orientado a Objetos
Cap.10 - El paradigma Orientado a ObjetosCap.10 - El paradigma Orientado a Objetos
Cap.10 - El paradigma Orientado a Objetos
 
Primeraclaseobjetos clases
Primeraclaseobjetos clasesPrimeraclaseobjetos clases
Primeraclaseobjetos clases
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
 
Programación Orientada a Objetos parte 2
Programación Orientada a Objetos  parte 2Programación Orientada a Objetos  parte 2
Programación Orientada a Objetos parte 2
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
 
Conceptos basicos
Conceptos basicosConceptos basicos
Conceptos basicos
 
Explicacion de interface
Explicacion de interfaceExplicacion de interface
Explicacion de interface
 

Último

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 

Último (20)

ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 

Conceptos POO PV

  • 1. 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
  • 2. Objeto Se puede decir que un objeto es todo aquello que pueda ser identificable dentro de una especificación de requerimientos o 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
  • 3. Ejemplo: Tenemos un automóvil, cuyos atributos son : Carrocería color verde, espacio para 4 pasajeros, cuatro puertas, cierta capacidad de carga, 5 velocidades, transmisión automática, velocidad máxima 200km por hora. Sus encapsulados serian el chasis, las llantas el motor Sus funciones son; aceleración, arranque, frenada, alarma, turbocompresor, etc.
  • 4. Clases Una 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 una misma estructura y un mismo comportamiento; es decir, una clase representa un grupo de objetos con los mismos atributos y los mismos métodos.
  • 5. Ejemplo: Clase: • Felinos Atributos: • Garras retractiles • 4 patas • Cabeza redonda • Sigilosos • Comen carne Funcionalidades: • Correr • Dormir • Saltar • Comer
  • 6. Abstracción Podemos definir la abstracción como una operación intelectual que separa las cualidades de un objeto para considerarlas aisladamente o para analizar al objeto en su pura esencia o noción. Básicamente es la capacidad de separar los elementos (al menos mentalmente) para poder verlos de forma singular. Como cuando describimos el cuerpo humano y decimos cabeza, brazo(s), pierna(s), etc. En los lenguajes de programación orientada a objetos, el concepto de Clase es la representación y el mecanismo por el cual se gestionan las abstracciones.
  • 7. Ejemplo: Gracias a la abstracción, el objeto Tren puede manipular objetos Persona sin tener en cuenta sus propiedades ni métodos ya que sólo le interesa, por ejemplo, calcular la cantidad de personas que están viajando en él en ese momento, sin tener en cuenta ninguna otra información relacionada con dichas personas, tales como la altura, el nombre, el color de ojos, etcétera.
  • 8. Cohesión Cohesión es “Es la medida de cuanto una entidad (componente o clase) se encuentra especializada en propósito único dentro de un sistema”. Ejemplo:
  • 9. 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.
  • 10. 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 varible velocidad en privada: private int velocidad;
  • 11. Herencia Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes. Es la relación entre una clase general y otra clase mas especifica. Es un mecanismo que nos permite crear clases derivadas a partir de clase base, Nos permite compartir automáticamente métodos y datos entre clases subclases y objetos.
  • 12. Ejemplo: El gato y el Perro tendrían la herencia (métodos y atributos) del Mamífero. Mamífero Gato Perro
  • 13. 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.
  • 14. Ejemplo En este poco original ejemplo se puede apreciar que toda figura tiene un método para calcular su Área y Volumen. 1 2 3 4 5 6 7 8 9 1 0 1 1 public abstract class Figura { // Atributos: public int numeroLados; public int area; public int volumen; // Métodos: abstract public void calcularArea(); abstract public void calcularVolumen(); } - 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.
  • 15. Interfaces Las 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 la implementación „ Operaciones con sus parámetros y valores de retorno „ Los clientes interactúan independientemente de la implementación „ Pero pueden elegir implementaciones alternativas
  • 16. Ejemplo: Obtiene la fecha del sistema mediante DateTime.Now •Obliga a implementar los métodos que contiene en las clases derivadas de ella. •Se deben implementar todos sus métodos, de lo contrario nos indica un error
  • 17. Polimorfismo • Es la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación.
  • 18. Hay dos tipos: Dinámico: es el que el código no incluye ningún tipo de especificación sobre el tipo de datos. Estático: es el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de ser utilizados. • Ejemplo todos 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, tortuga leon = new carnivoro tortuga = new herbivoro leon.comer toruga.comer
  • 19. Acoplamiento El acoplamiento es el grado en el cual una clase conoce a las demás. Si solo la clase A conoce a la clase B, es que B se ha expuesto a través de su interface, entonces la clase A y la clase B, se las denomina ligeramente acopladas... eso es algo bueno. Si, por otra parte A se basa en partes de B que no es parte de la interfaz de B, entonces el acoplamiento es mas fuerte... y eso no es bueno. En otras palabras si A conoce mas que lo que debería de B en la manera en que fue implementado, entonces A y B están fuertemente acoplados.
  • 20. Ejemplo: De un acoplamiento ajustado, que ha sido ejecutado mediante una pobre encapsulación: 1class DoTaxes { 2 float rate; 3 float doColorado() { 4 SalesTaxRates str = new SalesTaxRates(); 5 rate = str.salesRate; // ouch 6 // esto deberia haber sido llamado 7 // mediante un metodo: 8 // rate = str.getSalesRate("CO"); 9 // hacer algo con rate 10 } 11} 12 13class SalesTaxRates { 14 public float salesRate; // deberia ser private 15 public float adjustedSalesRate; // deberia ser private 16 public float getSalesRate(String region) { 17 salesRate = new DoTaxes().doColorado(); // ouch otra vez! 18 // hacer calculos por aqui 19 return adjustedSalesRate; 20 } 21}
  • 21. 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
  • 22. 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).