Te veo "desorientao"... Creo que te has dejado una definición... quizá la más importante, la de CLASE. Te daré las tres: CLASE: es la definición de un nuevo tipo de datos y las operaciones que se pueden realizar con él. Por ejemplo, si un programa maneja tiempos (imagina alguien que haga el control de llegadas en carreras de atletismo), seguramente no pare de manejar datos del tipo hh:mm:ss. Con POO uno puede definirse la clase "hora" y decidir qué datos contiene y qué operaciones se pueden realizar con las "horas"... por ejemplo, restar dos "horas" para saber los segundos transcurridos entre una y otra. Esto, dicho así, queda muy bonito, pero en la práctica te puedo asegurar que solo la experiencia (y la formación que recibas, claro) te hará comprender plenamente la utilidad de lo que acabo de decir. Muchas veces las clases no representan tipos de datos tan evidentes o pequeños como una "hora", puede que tengas una clase "entorno" que contenga una lista enlazada de "ventanas", por ejemplo... pero bueno, no queramos correr. OBJETO: es una variable de un tipo definido por una clase. Es decir, tú en la clase defines un tipo de dato, todas las variables de ese tipo son llamadas también "objetos" (de ese tipo). Es análogo al hecho de que "int" sea un tipo de datos, en términos de POO, cualquier variable de tipo int sería llamada "objeto" de la clase int. ENCAPSULAMIENTO: aunque te haga escribir más de lo que creas necesario, es muy útil para que el código de las clases quede "oculto" para la persona que programa con ellas. Es vital, importantísimo, que comprendas que cuando hablamos de POO, es muy probable que un programador realice clases para que otro programe utilizándolas. Esto es difícil de ver cuando uno mismo las hace y las usa, que es lo que pasa cuando estás estudiando "yo me lo guiso, yo me lo como". Pero si piensas en que alguien usará las clases que tú desarrollas, verás mucho más sentido al encapsulamiento. El que se tenga que introducir un valor en una variable interna de la clase puede significar que debe hacerse algo más (verificar que el valor contiene un dato válido, por ejemplo), con el encapsulamiento, obligas a que la persona que va a introducir el valor en la variable miembro de la clase lo haga a través de una función, así tú puedes saber lo que entra en los datos de la clase y verificar que son cosas correctas (esto es solo un ejemplo, hay infinidad de motivos además de este que aconsejan a encapsular). Una clase bien encapsulada será "robusta", es decir, es difícil que alguien la haga "petar" por un mal uso. A su vez, la encapsulación también favorece el que las clases se puedan reutilizar fácilmente, pues el código queda completamente oculto e independiente del resto del programa. PROCEDIMIENTO: ... si me hablas de POO supongo que estarás preguntándome por lo que yo le llamo método. Visto así, un procedimiento es una función que se encuentra dentro de una clase, por decirlo de alguna manera, es algo que la clase "es capaz de hacer". Por ejemplo, si creas una clase rectángulo que contenga sus coordenadas (x1, y1)-(x2, y2), igual es interesante que un objeto de esa clase tenga una función que te devuelva su área, así, para un objeto de tipo rectángulo podremos hacer: objeto. Área(); y se nos devolverá dicha área para poder usarla según nuestras necesidades. En general, piensa que una clase es igual que una "estructura" de C tradicional, ampliada para que pueda contener datos y, además, las funciones que deberán trabajar con esos datos... así todo va en el mismo "paquete". -------------- Nota: en programación estructurada, sin POO, se conoce por procedimiento a una función que no tiene valor de retorno. -------------- Reflexión final: soy profesor de POO desde hace bastantes años y con tus preguntas he visto el reflejo de la mayoría de mis alumnos, la POO es algo cuya filosofía cuesta coger al principio, pero piensa que está allí por algo, y la gente la utiliza por algo también. Desde Microsoft Office hasta los juegos de PS2 están desarrollados en C++ utilizando POO (sí, sí... créeme, es verdad). Para empezar con la POO se debe empezar por abajo, cuando los programas son tan pequeños que quizá no haría falta la POO... es un poco paradójico, y por eso cuesta de entender al principio. Pero te aseguro que, para grandes proyectos de desarrollo de software, la POO es la única manera de mantener el código ordenado y en condiciones "humanas" para los que programan. Así que aunque te cueste, si te gusta programar tómatelo con ilusión e intenta dedicarle tiempo. Los programas de los que te sentirás más orgulloso de haberlos hecho en tu vida... estarán picados en C++. Te lo dice uno que lleva tiempo en esto.