Programacion orientada a objetos ?

Estado
Cerrado para nuevas respuestas.

SiCk

Lanero Reconocido
4 Dic 2001
850
Bueno mi gente, necesito la ayuda de los programadores de la comunidad.... porfa respondan esto:

1. Que es la programacion orientada a objetos ?
2. Que es un objeto ?

Esto me lo pusieron de tarea, hehe, estamos viendo Java.....
 
Pues con lo que he aprendido, Programacion orientada a objetos es un paradigma de la programacion en la cual se cuentan con 3 herramientas basicas.

1 Herencia
2 Encapsulamiento
3 Composicion

Un objeto en sintesis es todo con lo que se puede interactuar en un lenguaje, una variable por ejemplo o una instancia de alguna clase compleja.

La ventaja de esta programacion es la reutilizacion del software mediante las caracteristicas arribas mencionadas, con herencia por ejemplo yo me ahorro a veces un chorro de codigo y la composicion no es mas que una clase que entre sus objetos tenga instancias de otras clases, mejor dicho casi todo lo que hace uno.

PUEDO ESTAR EQUIVOCADO Y SI ES ASI POR FAVOR CORRIJANME!
 
Re lol sick ... no pongas al pobre de enigma a responder las tareas de la u ... sakale copia al libro de java ole .. alli ta explicadito, si keres te presto mi libro pero con caracter devolutivo
 
La Programacion orientada a objetos es una nueva forma de enfocar el trabajo de la programación. En los años 70's nace la programaciòn estructurada, método alentado y reforzado por lenguajes tales como C y Pascal. Al princippio con los lenguajes estructurados fue posible escribir programas moderadamente complejos de una forma bastante sencilla. Sin embargo, incluso usando programación estructurada, cuando los proyectos alcanzan un cierto tamaño, su complejidad se vuelve demasiado dificil para ser controlada por un programador.

Hoy en día hay muchos proyectos que estaán proximos o en el punto donde la programación estructurada ya no funciona. Para resolver este problema, se desarrollo la Programación Orientada a Objetos, la cual toma las mejores ideas de la programación estructurada y las combian con nuevos y poderosos conceptos que anima a limenta una nueva visión de la tarea de la programación. La POO permite descomponer fácilmente un problema en subgrupo de partes relacionadas. Así, puede traducir estos subgrupos a unidades autocontenidas llamadas objetos.

Todos los lenguajes de POO tienen tres cosas en común: Objetos, Polimorfismos y Herencia.


OBJETOS: La caracteristica más importante de un lenguaje orientado a objetos es el objeto. Un objeto es simplemente una entidad lógica que contiene datos y un codigo que manipula estos datos. El enlazado de éste codigo y datos de esta forma se denomina frecuentemente Encapsulación.

POLIMORFISMOS: Los lenguajes de POO soportan el polimorfismo, que permite usar un nombre para varios propósitos relacionados pero ligeramente diferentes. El fin del polimorfismo es permitir el uso de un nombre para especificar una clase de acción en general.

HERENCIA: La Herencia es el proceso por el cual un bjeto puede adquirir las propiedades de otro objeto. Esto es importante porque soporta el concepto de clasificación. La herencia es el mecanismo que hace posible que un objeto sea un ejemplo especifico dentro de una clase más general.

Esto es mas o menos en pocas palabras lo que es la programación orientada a objetos, espero les sirva de algo.

Salu2!!!
 
Saludos señores:

Oe programadores, quien de ustedes me puede pasar un buen tutorial de Visual C++?

Como hago para colocar adornos y letras de colores y todas esas cosas en visual C++?
Creo que esto tiene que ver con programaciòn orientada a objetos o no?
 
Depende.

Si utilizas MFC (una serie de clases que hizo Microsoft para facilitar la creación de aplicaciones en Windows) sí es orientado a objetos.

Si no utilizas MFC, sino que programas en Win32 de la manera tradicional, no es orientado a objetos.

VisualC++ (qué no tiene casi nada de "Visual" a diferencia de los otros programas de Visual Studio) no es fácil de aprender. No te recomendaría meterte con él si no tienes suficiente experiencia.
 
Una pregunta tonta para los programadores de c++, como es la sintaxis de c++ para la declaracion de objetos, es decir, en java es asi:
class Nombre
{
aqui van los metodos y funciones
}

en c++ como seria eso, y como se hace para crear el main??
 
En sintesis un programa java es una instancia de la clase principal la cual como ya digeron antes, esta constituida por una serie de metodos que realizan procesos diferentes; estos procesos son metodos heredados e importados de otras clases.

En la POO que maneja java, permite la sobrecarga de los metodos, que es redefinir un proceso a mis condiciones de uso.(Aplicacion de polimorfismo)
LA diferencia entre sobrecarga y polimorfismo radica en el tipo de parametros que necesita un metodo para su ejecucion.
Ej:
tenemos un metodo que soporta varios tipos de parametros, entonces cuando hacemos uso de este, lo que hace el compilador es buscar el que posee ese tipo de parametros
Color(int r, int g, int b)
Color(float a, float b, float c)
r,g,b (son valores enteros entre 0 y 255)
a,b,c (son valores flotantes entre 0.0 y 1.0)
entonces cuando hacemos un llamado a este metodo(en este caso seria un constructor), el compilador hace referencia al tipo de parametros.
LA sobrecarga seria redefinir culaquiera de estos metodos utilizando los mismos parametros pero para un proceso distinto.

:reir:
 
Java y C++ son muy similares.

Puedes definir clases en C++ como lo haces en Java. Pero también puedes hacerlo de otra manera:

class NombreClase
{
// AQUI PONES LAS FUNCIONES SIN SUS CONTENIDOS
// POR EJEMPLO:
void MiFuncion();
}

// AQUI ESCRIBES EL CONTENIDO DE LAS FUNCIONES
void NombreClase::MiFuncion()
{
// Lo que sea que haga
}

Además hay otras pequeñas diferencias:

1. La función main no hace parte de ninguna clase, es una función independiente.
2. No colocas public, private y protected para cada método/variable. Sino que solamente colocas la palabra clave y dos puntos, y después todas las funciones y variables a continuación son consideradas de esa manera. Ejemplo:

class MiClase
{
public:

void Blabla(); // Esta funcion es publica

private:

int hola; // Esta variable es privada
void Blabla2(); // Esta funcion es privada

};


En Windows no se usa main() sino WinMain() (y hay muchas otras diferencias).
 
Originalmente colocado por totobany
En la POO que maneja java, permite la sobrecarga de los metodos, que es redefinir un proceso a mis condiciones de uso.

C++ también lo soporta y además permite que una clase pueda heredar de varias, lo cual no puede hacer Java.
 
Tngo entendido que en c++ se pueden sobrecargar hasta los operadores, cosa que en java no se puede hacer.

:reir:
 
Totobany, viejo, hasta donde yo se estas equivocado.

Por ejemplo el operador + esta sobrecargado y muy sobrecargado, por ejemplo sirve para concatenar Strings y tambien sirve para operaciones aritmeticas, estas son 2 sobrecargas.

Ahora como lo decian anteriormente C++ permite sobrecargar y redefinir metodos en clases hijas, pero tiene una diferencia. SI tu sobrecargas un metodo en la clase hija, todos los metodos que tengan el mismo nombre desaparecerán en la clase hija.
 
Disculpa, o te entendi mal, o estás equivocado.

Por qué habrían de desaparecer los métodos en C++ de esa manera?

Trata de ser más explícito o danos un ejemplo, por favor.
 
Totobany, viejo, hasta donde yo se estas equivocado.

Por ejemplo el operador + esta sobrecargado y muy sobrecargado, por ejemplo sirve para concatenar Strings y tambien sirve para operaciones aritmeticas, estas son 2 sobrecargas.

A la sobrecarga a la que me refiero es que vos como usuario programador no podes (en java) sobrecargar mas este metodo;
mientras que en c++ si se puede hacer(ej utilizar el operador "+" para realizar una operacion como "resta" para un nuevo tipo de super numero). Mientras que en java te toca hacer un metodo para tal hecho y creo que por mas que lo intente no podra sobrecargar este operador(por lo menos hasta la version j2sdk 1.4.0 ).

:reir:
 
Mig en Java tambien se puede hacer una especie de herencia multiple, solo que se llama de otra manera, y se usa de otra manera... en esencia es asi, las clases de las cuales queres heredar se nombran como interfaces (clases TOTALMENTE abstractas y con todas sus variables como finales) y en la clase que queres heredar simplemente las llamas asi:

class NombreClase implements Clase1, Clase2, Clase3, etc...

Esto es bastante util y se usa demasiado. Un ejemplo muy claro Son los eventos de escucha de teclado, mouse, ventana, etc
 
Yo se que se puede hacer herencia multiple en Java, usando las interfaces.

Pero sólo puedes heredar "realmente" de una sola clase. No puedes hacer una herencia completa de varias clases padre como se puede hacer en C++.
 
Para aclarar un poco más.

Cuando implementas una interfaz solamente indicas que tu clase posee ciertos métodos con ciertos parámetros de entrada y salida.

En cambio, cuando heredas completamente (extends en Java) obtienes todas los métodos y atributos de la clase Padre.
 
Estado
Cerrado para nuevas respuestas.

Los últimos temas