logo

Conceptos de programación orientada a objetos de Java

  1. Programación orientada a objetos
  2. Ventaja de la programación orientada a objetos sobre el lenguaje de programación orientado a procedimientos
  3. Diferencia entre lenguaje de programación orientado a objetos y basado en objetos.

En esta página, aprenderemos sobre los conceptos básicos de la programación orientada a objetos. La programación orientada a objetos es un paradigma que proporciona muchos conceptos, como herencia , el enlace de datos , polimorfismo , etc.

comienzo Se considera el primer lenguaje de programación orientado a objetos. El paradigma de programación donde todo se representa como un objeto se conoce como lenguaje de programación verdaderamente orientado a objetos.

Charla Se considera el primer lenguaje de programación verdaderamente orientado a objetos.

Los lenguajes orientados a objetos populares son Java , C# , PHP , Pitón , C++ , etc.

El objetivo principal de la programación orientada a objetos es implementar entidades del mundo real, por ejemplo, objetos, clases, abstracción, herencia, polimorfismo, etc.

mvcjava

POO (Sistema de programación orientada a objetos)

Objeto significa una entidad del mundo real como un bolígrafo, una silla, una mesa, una computadora, un reloj, etc. Programación orientada a objetos Es una metodología o paradigma para diseñar un programa utilizando clases y objetos. Simplifica el desarrollo y mantenimiento de software proporcionando algunos conceptos:

Aparte de estos conceptos, existen otros términos que se utilizan en el diseño orientado a objetos:

  • Acoplamiento
  • Cohesión
  • Asociación
  • Agregación
  • Composición
Conceptos de programación orientada a objetos de Java

Objeto

Objeto Java

Cualquier entidad que tenga estado y comportamiento se conoce como objeto. Por ejemplo, una silla, un bolígrafo, una mesa, un teclado, una bicicleta, etc. Puede ser físico o lógico.

Un Objeto se puede definir como una instancia de una clase. Un objeto contiene una dirección y ocupa algo de espacio en la memoria. Los objetos pueden comunicarse sin conocer los detalles de los datos o códigos de cada uno. Lo único necesario es el tipo de mensaje aceptado y el tipo de respuesta devuelta por los objetos.

Ejemplo: Un perro es un objeto porque tiene estados como color, nombre, raza, etc. así como comportamientos como mover la cola, ladrar, comer, etc.

Clase

Colección de objetos se llama clase. Es una entidad lógica.

Una clase también se puede definir como un modelo a partir del cual se puede crear un objeto individual. La clase no consume espacio.

Herencia

Cuando un objeto adquiere todas las propiedades y comportamientos de un objeto padre , se conoce como herencia. Proporciona reutilización del código. Se utiliza para lograr polimorfismo en tiempo de ejecución.

Polimorfismo en Java

Polimorfismo

Si una tarea se realiza de diferentes maneras , se conoce como polimorfismo. Por ejemplo: convencer al cliente de lo contrario, que dibuje algo, por ejemplo, una forma, un triángulo, un rectángulo, etc.

En Java, utilizamos la sobrecarga de métodos y la anulación de métodos para lograr polimorfismo.

Otro ejemplo puede ser hablar algo; por ejemplo, un gato maúlla, un perro ladra guau, etc.

Abstracción

Ocultar detalles internos y mostrar funcionalidad. se conoce como abstracción. Por ejemplo, una llamada telefónica, no conocemos el procesamiento interno.

En Java, utilizamos clases e interfaces abstractas para lograr la abstracción.

Encapsulación en conceptos de programación orientada a objetos de Java

Encapsulación

Vincular (o envolver) código y datos en una sola unidad se conoce como encapsulación. . Por ejemplo, una cápsula, se envuelve con diferentes medicamentos.

Una clase java es el ejemplo de encapsulación. Java Bean es la clase completamente encapsulada porque todos los miembros de datos son privados aquí.

Acoplamiento

El acoplamiento se refiere al conocimiento, información o dependencia de otra clase. Surge cuando las clases son conscientes unas de otras. Si una clase tiene la información detallada de otra clase, existe un fuerte acoplamiento. En Java, utilizamos modificadores privados, protegidos y públicos para mostrar el nivel de visibilidad de una clase, método y campo. Puede utilizar interfaces para el acoplamiento más débil porque no existe una implementación concreta.

Cohesión

La cohesión se refiere al nivel de un componente que realiza una única tarea bien definida. Una única tarea bien definida se realiza mediante un método altamente cohesivo. El método débilmente cohesivo dividirá la tarea en partes separadas. El paquete java.io es un paquete altamente cohesivo porque tiene clases e interfaz relacionadas con E/S. Sin embargo, el paquete java.util es un paquete débilmente cohesivo porque tiene clases e interfaces no relacionadas.

Asociación

La asociación representa la relación entre los objetos. Aquí, un objeto puede asociarse con uno o varios objetos. Puede haber cuatro tipos de asociación entre los objetos:

  • Cara a cara
  • Uno a muchos
  • Muchos a uno, y
  • Muchos a muchos

Entendamos la relación con ejemplos en tiempo real. Por ejemplo, un país puede tener un primer ministro (uno a uno) y un primer ministro puede tener muchos ministros (uno a muchos). Además, muchos parlamentarios pueden tener un primer ministro (muchos a uno) y muchos ministros pueden tener muchos departamentos (muchos a muchos).

La asociación puede ser unidireccional o bidireccional.

Agregación

La agregación es una forma de lograr la Asociación. La agregación representa la relación en la que un objeto contiene otros objetos como parte de su estado. Representa la relación débil entre objetos. También se le denomina como tiene un relación en Java. Por ejemplo, la herencia representa la es un relación. Es otra forma de reutilizar objetos.

Composición

La composición es también una forma de lograr asociación. La composición representa la relación donde un objeto contiene otros objetos como parte de su estado. Existe una fuerte relación entre el objeto contenedor y el objeto dependiente. Es el estado en el que los objetos que los contienen no tienen existencia independiente. Si elimina el objeto principal, todos los objetos secundarios se eliminarán automáticamente.

descargar sts

Ventaja de la programación orientada a objetos sobre el lenguaje de programación orientado a procedimientos

1) La programación orientada a objetos facilita el desarrollo y el mantenimiento, mientras que, en un lenguaje de programación orientado a procedimientos, no es fácil de administrar si el código crece a medida que aumenta el tamaño del proyecto.

2) La programación orientada a objetos proporciona ocultación de datos, mientras que, en un lenguaje de programación orientado a procedimientos, se puede acceder a los datos globales desde cualquier lugar.

Datos globales

Figura: Representación de datos en programación orientada a procedimientos


Datos del objeto

Figura: Representación de datos en programación orientada a objetos

3) La programación orientada a objetos brinda la capacidad de simular eventos del mundo real de manera mucho más efectiva. Podemos proporcionar la solución a un problema real si utilizamos el lenguaje de programación orientada a objetos.


¿Cuál es la diferencia entre un lenguaje de programación orientado a objetos y un lenguaje de programación basado en objetos?

El lenguaje de programación basado en objetos sigue todas las características de la programación orientada a objetos excepto la herencia. JavaScript y VBScript son ejemplos de lenguajes de programación basados ​​en objetos.



¿Sabes?
  • ¿Podemos sobrecargar el método principal?
  • Un constructor Java devuelve un valor pero, ¿qué?
  • ¿Podemos crear un programa sin método principal?
  • ¿Cuáles son las seis formas de utilizar esta palabra clave?
  • ¿Por qué Java no admite la herencia múltiple?
  • ¿Por qué utilizar la agregación?
  • ¿Podemos anular el método estático?
  • ¿Qué es el tipo de retorno covariante?
  • ¿Cuáles son los tres usos de la súper palabra clave de Java?
  • ¿Por qué utilizar el bloque inicializador de instancia?
  • ¿Cuál es el uso de una variable final en blanco?
  • ¿Qué es un marcador o interfaz etiquetada?
  • ¿Qué es el polimorfismo en tiempo de ejecución o el envío de métodos dinámicos?
  • ¿Cuál es la diferencia entre enlace estático y dinámico?
  • ¿Cómo es posible abatir en Java?
  • ¿Cuál es el objetivo de un constructor privado?
  • ¿Qué es la clonación de objetos?
¿Qué aprenderemos en Conceptos OOPs?
  • Ventaja de los OOP
  • Convenio de denominación
  • Objeto y clase
  • Sobrecarga de métodos
  • Constructor
  • palabra clave estática
  • esta palabra clave con seis usos
  • Herencia
  • Agregación
  • Anulación de métodos
  • Tipo de retorno covariante
  • súper palabra clave
  • Bloque inicializador de instancia
  • palabra clave final
  • Clase abstracta
  • Interfaz
  • Polimorfismo en tiempo de ejecución
  • Enlace estático y dinámico
  • Downcasting con operador de instancia
  • Paquete
  • Modificadores de acceso
  • Encapsulación
  • Clonación de objetos