Las cosas básicas que son la característica esencial de una programación orientada a objetos son la Herencia , el Polimorfismo y la Encapsulación . Cualquier lenguaje de programación que admita estas funciones por completo es un lenguaje de programación orientado a objetos completo, mientras que cualquier lenguaje que admita las tres funciones pero no todas las funciones por completo es un lenguaje de programación orientado a objetos parcial.
La herencia se utiliza para proporcionar el concepto de reutilización de código.
El polimorfismo hace que un lenguaje sea capaz de realizar diferentes tareas en diferentes instancias.
La encapsulación hace posible la abstracción de datos (seguridad o privacidad de los datos). En el lenguaje de programación orientado a objetos, la encapsulación se logra con la ayuda de una clase .
Estas son las razones por las que C++ se llama Lenguaje Orientado a Objetos parcial o semi:
- La función principal está fuera de la clase : C++ admite la programación orientada a objetos, pero OO no es intrínseco al lenguaje. Puede escribir un programa C++ válido, bien codificado y con un estilo excelente sin usar un objeto ni una sola vez.
En C++ es obligatoria la función main, que se ejecuta primero pero reside fuera de la clase ya partir de ahí creamos objetos. Entonces, aquí la creación de clases se vuelve opcional y podemos escribir código sin usar clases.#include <bits/stdc++.h>
using
namespace
std;
int
main()
{
cout <<
"Hello World"
;
return
0;
}
Mientras que en JAVA, la función principal se ejecuta primero y reside en la clase que es obligatoria . Entonces, no podemos hacer nada sin hacer Class. Para hacer lo mismo que arriba, necesitamos hacer una clase como:
class
hello
{
public
static
void
main(String args[])
{
System.out.println(
"Hello World"
);
}
}
- Concepto de variable global: en C++, podemos declarar una variable globalmente, a la que se puede acceder desde cualquier lugar y, por lo tanto, no proporciona privacidad completa a los datos, ya que nadie puede restringir el acceso y modificar esos datos y, por lo tanto, proporciona encapsulación parcialmente mientras que en JAVA, podemos declarar la variable dentro de la clase solo y podemos proporcionarle un especificador de acceso.
#include <iostream>
using
namespace
std;
// Global variable declaration:
int
g = 50;
int
main()
{
// global variable g
cout << g;
// Local variable g
g = 20;
cout << g;
return
0;
}
Producción:
50 20
Entonces, en JAVA, básicamente, el usuario pregunta explícitamente a todos los datos si deben ser accesibles o no .
- Disponibilidad de la función Amigo : Clase de amigo Una clase de amigo puede acceder a miembros privados y protegidos de otra clase en la que se declara como amigo. A veces es útil permitir que una clase en particular acceda a miembros privados de otra clase.
Por lo tanto, nuevamente las funciones orientadas a objetos pueden ser violadas por C++.
Artículo relacionado: ¿Por qué Java no es un lenguaje puramente orientado a objetos?
Este artículo es una contribución de Aditya Kumar . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA