Está en la página 1de 10

Estructura de Datos y Programacin Orientada a Objetos

(Agosto-2011)

Contenido
INTRODUCCIN ....................................................................................................................................... - 1 PARADIGMA DE PROGRAMACIN ........................................................................................................... - 1 PROGRAMACIN ORIENTADA A OBJETOS ............................................................................................... - 3 ABSTRACCIN DE DATOS Y PROGRAMACIN ORIENTADA A OBJETOS ....................................................................... - 3 OBJETO .................................................................................................................................................. - 4 CLASE .................................................................................................................................................... - 4 ASIGNACIN DE MEMORIA EN PROGRAMACIN ORIENTADA A OBJETOS ................................................................... - 5 VISIBILIDAD ............................................................................................................................................. - 7 CONSTRUCTORES Y DESTRUCTORES ................................................................................................................ - 7 VALOR NULL ............................................................................................................................................ - 8 PSEUDOVARIABLE - THIS ............................................................................................................................. - 8 ELEMENTOS STATIC.................................................................................................................................... - 9 JERARQUA DE CLASES ................................................................................................................................ - 9 -

Estructura de Datos y Programacin Orientada a Objetos

Introduccin
En esta publicacin voy a presentar la relacin entre Estructura de Datos y Programacin Orientada a Objetos; est dirigida a alumnos comienzan sus estudios en carreras vinculadas a la informtica, el enfoque es sobre Estructura de Datos sin embargo hay que comentar aspectos de otras reas de la Informtica lo que voy a intentar hacer de la manera ms simple que se pueda sin incursionar demasiado en dichas reas dado que no corresponden al estudio de Estructura de Datos y seguramente las estudiarn en profundidad en otras asignaturas o por su cuenta. El paradigma orientado a objetos naci en 1969 cuando Kristin Nygaard intentaba escribir un programa que describiera el movimiento de los barcos en las complicadas costas de Noruega; descubri que era muy difcil representar las mareas, el movimiento de los barcos y las formas de la costa con los mtodos de programacin existentes en ese momento. Tambin descubri que era ms fcil de representar y controlar las relaciones de los elementos del entorno (barcos, mareas y costa) y las acciones que podan ejecutar.

Paradigma de programacin
La palabra paradigma deriva del Griego y significa "patrn" o "ejemplo"; Thomas Kuhn en "La estructura de las revoluciones cientficas" asign a esta palabra el significado aceptado hoy en da en la comunidad cientfica. Kuhn adopt la palabra "paradigma" para referirse al conjunto de prcticas que definen a una disciplina cientfica durante un perodo de tiempo en particular; tambin identific el trmino "cambio paradigmtico" como el proceso y resultado de un cambio en las hiptesis establecidas por las teoras cientficas reinantes. Es decir, un "cambio paradigmtico" se origina cuando los cientficos encuentran anomalas que no pueden explicar con el paradigma aceptado en ese momento. Cuando ocurren algunas anomalas significativas la disciplina cientfica entra en crisis, es entonces cuando se prueban nuevas y viejas ideas. Eventualmente se forma un nuevo paradigma, que indudablemente entrar en conflicto con el actual enfrentando a los seguidores de cada corriente. Si se produce la transicin entre el antiguo paradigma y el nuevo se dice que ha sucedido un "cambio paradigmtico" o "revolucin cientfica".

Robert W. Floyd en "The Paradigms of Programming" en total acuerdo con la visin de Kuhn sobre las revoluciones cientficas, concluye que la probabilidad de que se produzca un avance continuo en la programacin requerir de una invencin continua adems de la elaboracin y colaboracin de nuevos paradigmas.

-1-

Estructura de Datos y Programacin Orientada a Objetos La Programacin Orientada a Objetos es el resultado de un proceso de "crisis" en el que se aplicaron nuevas y viejas ideas, en sntesis es el resultado de un cambio paradigmtico. El siguiente esquema muestra esta situacin.

Paradigma Imperativo
Programacin Modular Programacin Estructurada + Tipo de Dato Abstracto
(DAT-Data Abstract Type)

Programacin Orientada a Objetos

Es oportuno comentar que tanto la programacin modular como la programacin estructurada se presentan como paradigmas, ocurre que en su momento (cuando fueron enunciadas, todava no se hablaba de paradigmas), no es el objetivo de esta publicacin discutir sobre esto. Lo que si hay que comentar es que la programacin modular es aquella que considera mdulos o subprogramas, en los principios de la programacin todo se haca con programacin lineal salvo la instruccin de salto (goto o jmp) que permite saltar de un lugar del cdigo a otro y continuar la ejecucin a partir de ese punto. Cuando los desarrolladores observaron que haba porciones de cdigo que permanentemente hacan lo mismo, se les ocurri incorporar una instruccin o mecanismo con la capacidad de saltar a otro lugar del cdigo (gosub o call), ejecutar las instrucciones que all se encuentran y mediante otra instruccin o mecanismo regresar (return) al punto desde donde se haba saltado; con esto surgi la programacin modular pero en ese momento no haba estructuras de control de ejecucin de programas. Las primeras versiones del lenguaje de programacin Basic no tenan las sentencias mientras o segn ... que hoy se ensean en los cursos bsicos de programacin. Las estructuras de control de ejecucin de programas tan conocidas actualmente surgieron al evolucionar las tcnicas de programacin dando lugar a la programacin estructurada. Es importante tener en cuenta que hoy en da se realizan programas utilizando ambas "tcnicas", sera inaceptable hacerlo de otro modo, pero en realidad son independientes. Los conceptos de tipo de dato abstracto se incorporan a estas tcnicas y permiten, gracias a la evolucin de los lenguajes de programacin, el surgimiento de la programacin orientada a objetos; lo que se denomina paradigma orientado a objetos va ms all de la simple programacin orientada a objetos, seguramente los estudiantes de carreras informticas vern en otras asignaturas los conceptos que fundamente el anlisis, diseo y desarrollo de productos de software bajo este paradigma. Desde el campo de las estructuras de datos se construyen herramientas que van a ser utilizadas por los programas. Este campo est interesado en la construccin de artefactos concentrndose en la mecnica de los mismos, en sus herramientas y engranajes; que en la mayora de los casos no son visibles al desarrollador usuario del artefacto. El campo de las estructuras de datos investiga la operabilidad de estos artefactos y su mejora al modificar las estructuras de datos que se van a encontrar dentro de los mismos. Es indiscutible que el campo de las estructuras de datos tiene un mejor desempeo si se realiza en el modo orientado a objetos. Al incorporar las estructuras de datos en un artefacto y hacer pblico slo lo que es necesario para el uso apropiado del mismo, el campo de las estructuras de datos puede desarrollar los artefactos cuyo funcionamiento no se vea comprometido por una manipulacin innecesaria.

-2-

Estructura de Datos y Programacin Orientada a Objetos

Programacin orientada a objetos


Aunque los equipos informticos (computadoras) operan con bits los desarrolladores no pensamos en esos trminos, sabemos que un entero es una secuencia de bits pero preferimos considerar al entero como una entidad con su propia individualidad la que se refleja en las operaciones que pueden realizarse con ellos sin pensar como el o los enteros utilizan los bits. Tambin sabemos que otras entidades pueden usar a los enteros por ejemplo como sus elementos atmicos, estas entidades las conocemos como tipos de datos que estn integrados a los lenguajes de programacin, pero ciertos tipos de datos que necesitamos en nuestros programas no lo estn, y necesitan estarlo, de manera que deben ser definidos; son los que se conocen como tipos de datos definidos por el desarrollador. Estos nuevos tipos de datos tienen una estructura distintiva, una configuracin de sus elementos, y un comportamiento determinado. Desde un punto de vista estricto en el estudio de las estructuras de datos se tiene la tarea de explorar las nuevas estructuras e investigar su comportamiento en trminos de requisitos de tiempo y espacio. La programacin orientada a objetos (OOP - Object Oriented Programming) gira en torno al concepto de un objeto, que se crea utilizando una definicin denominada clase, que resulta ser una plantilla que incluye una especificacin de datos y funciones o procedimientos que operan sobre esos datos. Las funciones o procedimientos definidos en una clase se llaman mtodos y las variables que manipula pueden ser variables de clase o variables de instancia. En el paradigma imperativo, se escribe cdigo que manipula datos y la documentacin del programa dice que procesos se ejecutan sobre qu datos; en cambio en el paradigma orientado a objetos son los objetos quienes hacen la conexin entre los datos y los mtodos.

Abstraccin de datos y programacin orientada a objetos


Antes de escribir un programa el desarrollador debe tener una idea bastante clara de cmo lograr la tarea que est programando, consecuentemente es fundamental tener un esquema que detalle los requisitos que deben codificarse; mientras ms grande y complejo es el proyecto ms detallado debe ser el esquema. Lo importante es que los detalles de la implementacin deben postergarse, en especial los detalles de las estructuras de datos que se vayan a utilizar. Desde el inicio, debemos preocuparnos ms por lo que el programa debe hacer, no por cmo puede hacerlo. El comportamiento del programa es ms importante que el engranaje del mecanismo para lograrlo; ms tarde, en la etapa de implementacin se decide cul estructura de datos debe utilizarse para hacer la ejecucin ms eficiente en trminos de tiempo y espacio. Un elemento especificado en trminos de las operaciones se llama tipo de dato abstracto. En los lenguajes orientados a objetos un tipo de dato abstracto se llama interface. Las interfaces son parecidas a las clases, pero solamente pueden contener constantes y prototipos de mtodos; es decir las especificaciones de los nombres de los mtodos, los tipos de parmetros y los tipos de valores de regreso. La tarea de definir los mtodos se hace cuando se escribe una clase que implementa la interface. En otras palabras, una interface es como un "contrato", las clases que implementan una interface "se comprometen" a realizar todo lo que la interface especifica. De esta manera los desarrolladores pueden postergar los detalles especficos de implementacin para una etapa posterior del proceso de desarrollo.

-3-

Estructura de Datos y Programacin Orientada a Objetos

Objeto
En el mundo real, las personas identifican los objetos como cosas que pueden ser percibidas por los cinco sentidos. Los objetos tienen propiedades especficas, como posicin, tamao, color, forma, textura, entre otras; de manera todas ellas definen su estado. Los objetos tambin poseen cierto comportamiento que los hacen diferentes de otros objetos. Si imaginamos el motor de un vehculo, el estado del motor puede ser apagado o funcionando, entre sus propiedades se puede considerar su potencia, velocidad mxima, velocidad actual, temperatura, entre otras. El comportamiento puede incluir acciones para arrancar y parar el motor, obtener la temperatura, cambiar la velocidad. La identidad se basa en el hecho de que cada instancia de un motor es nica, tal vez haya un nmero de serie que las diferencie. En el diseo de un programa orientado a objetos se crea una abstraccin del motor basado en las propiedades y el comportamiento que son tiles para resolver el problema. Un mensaje es una instruccin que se enva a un objeto y cuando se recibe, el objeto ejecuta acciones predeterminadas. Un mensaje incluye un identificador que contiene la accin que ha de ejecutar el objeto junto con los datos que necesita el objeto para realizar su trabajo. En el caso del motor, cuando se desea aumentar la velocidad seguramente se utilizar un mensaje que diga algo como "acelerar al doble", donde acelerar es el mensaje y al doble es el dato que necesita el objeto para hacer su tarea. Un mtodo es la implementacin de un mensaje, en otras palabras es la porcin de programa necesaria para que cuando un objeto recibe un mensaje ejecute las acciones necesarias para cumplir o realizar el comportamiento esperado.

Clase
En trminos prcticos, una clase es un tipo definido por el desarrollador. Las clases son los bloques de construccin fundamentales de los programas orientados a objetos. Una clase contiene la especificacin de los datos que describen un objeto junto con la descripcin de las acciones que un objeto puede ejecutar. Estas acciones se conocen como servicios o mtodos. Una clase tambin incluye todos los datos necesarios para describir los objetos creados a partir de la clase. Estos datos se conocen como atributos, variables o variables instancia. El trmino atributo se utiliza en anlisis y diseo orientado a objetos y el trmino variable instancia o campo se suele utilizar en programacin orientada a objetos. Algunos lenguajes de programacin orientados objetos facilitan la implementacin de propiedades para acceder a las variables de instancia, esto contribuye al encapsulamiento. Antes que un programa pueda manipular objetos se debe definir la clase correspondiente, esto significa que se debe dar un nombre a la clase, nombrar los elementos que almacenan sus datos y describir los mtodos que realizan las acciones necesarias para representar el comportamiento. Mediante el operador "new" se crea un objeto y el sistema operativo devuelve una referencia al objeto creado, la que se asigna a una variable del tipo de la clase. Para poder hacer esto, todas las clases tienen al menos un mtodo denominado constructor, este mtodo se encarga de inicializar el objeto cuando es creado y en general los desarrolladores suelen implementar diferentes "versiones" del constructor. Un objeto permanece "vivo" siempre que al menos una variable dentro del programa lo est referenciando.

-4-

Estructura de Datos y Programacin Orientada a Objetos

Asignacin de memoria en programacin orientada a objetos


Para visualizar y comprender mejor esta cuestin que un objeto tiene un ciclo de vida o que un objeto permanece "vivo" siempre que exista al menos una variable que lo referencie, es necesario ver algunos conceptos sobre asignacin de memoria cuando un programa est ejecutndose. En programacin imperativa, por ejemplo con el lenguaje COBOL (las viejas versiones de este lenguaje) solamente se poda declarar y utilizar variables del tipo "global", aquellas que se pueden ver y manipular desde cualquier lugar del programa. Este modelo de asignacin de memoria se corresponde a dos segmentos (porciones de memoria) por cada proceso, uno para el cdigo y otro para los datos. De esta manera desde cualquier lugar del cdigo se puede acceder a los datos. En este modelo solo se permite la programacin lineal. Al avanzar los lenguajes de programacin se incorpora un mecanismo que permite invocar subprogramas (procedimientos o funciones) y pasar parmetros a los mismos; adems se permite declarar y utilizar variables conocidas como "locales", aquellas que solamente se pueden utilizar dentro de un subprograma. La arquitectura de estos lenguajes de programacin utiliza un modelo de asignacin de memoria que incorpora un tercer segmento de memoria donde se ponen los parmetros antes de ejecutar un subprograma y tambin es en ese segmento donde se crean temporalmente las variables locales.

Segmento de Cdigo Code Segment CS

Segmento de Datos Data Segment DS

Segmento de Cdigo Code Segment CS

Segmento de Datos Data Segment DS

Segmento de Pila Stack Segment SS

Con la incorporacin del tercer segmento de memoria, se produjo un avance realmente importante en las capacidades de los lenguajes de programacin, a la par se incorpora la posibilidad de solicitar memoria adicional al sistema operativo logrando de esta manera que los programas puedan utilizar la cantidad de memoria justa para lo que tienen que hacer; al conjunto de estas tcnicas se las conoca como programacin con memoria dinmica.

Segmento de Cdigo Code Segment CS

Segmento de Datos Data Segment DS

Segmento de Pila Stack Segment SS

Segmento Extra 1 Extra Segment ES

Segmento Extra n

...

Extra Segment ES

Para que un programa pueda gestionar la memoria de manera dinmica se utiliza un tipo de dato conocido como puntero o apuntador, cuyo contenido es una direccin de memoria. De esta -5-

Estructura de Datos y Programacin Orientada a Objetos manera el desarrollador puede declarar punteros y solicitar al sistema operativo una cantidad de memoria para hacer algo. En la medida que el desarrollador "cuide" esa direccin de memoria podr utilizar la memoria que se le ha asignado. Este mecanismo de programacin, el de utilizar punteros y solicitar memoria al sistema operativo, es muy eficiente pero tambin muy peligroso. Una programacin descuidada agota la memoria del sistema, dado que no "devuelve" las porciones de memoria que solicita y "pierde" las direcciones. El siguiente esquema muestra un caso tpico. Se trata de un programa, que tiene subprogramas y uno de estos subprogramas declara y utiliza una variable puntero donde guarda la direccin de memoria del bloque solicitado.

Segmento de Cdigo Code Segment CS

Segmento de Datos Data Segment DS

Segmento de Pila

Segmento Extra Espacio de memoria solicitado

Puntero

El problema se presenta cuando finaliza la ejecucin del subprograma y el desarrollador no tuvo la precaucin de "devolver" la memoria al sistema operativo o en todo caso de pasarla a una variable donde se la pueda seguir accediendo. Cuando el subprograma finaliza, las variables que se crearon en el segmento de pila "desaparecen" y se pierde la direccin del bloque de memoria sin poder acceder al mismo.

Segmento de Cdigo Code Segment CS

Segmento de Datos Data Segment DS

Segmento de Pila

Segmento Extra Espacio de memoria solicitado

Este inconveniente fue solucionado con una tcnica de asignacin de memoria que utiliza lo que se llama heap o montn que es un espacio de memoria donde se reserva y asigna las solicitudes de los programas. Para el ejemplo anterior, se presenta el bloque de memoria solicitado por el subprograma asignado dentro del heap, que seguramente se halla en un segmento extra.

Segmento de Cdigo Code Segment CS

Segmento de Datos Data Segment DS

Segmento de Pila

Segmento Extra Heap

Puntero

memoria solicitada

Cuando el subprograma finaliza su ejecucin, la variable local que apuntaba o referenciaba al bloque de memoria desaparece porque as es como funcionan las variables en el stack. El bloque de memoria queda sin ninguna variable que haga referencia a esa direccin de memoria, aparentemente el problema persiste, solo que este modelo de asignacin de memoria se cuenta con un proceso que se llama Garbage Collector (recolector de basura) que inspecciona el heap buscando aquellos bloques de memoria que no son referenciados y libera la memoria.

-6-

Estructura de Datos y Programacin Orientada a Objetos Los lenguajes de programacin orientados a objetos ocultan la utilizacin de punteros, simplemente clasifican o caracterizan a los distintos tipos de datos como Data Type aquellos tipos de datos cuyas variables se almacenan en el stack (clsico modelo de asignacin de memoria) y los Reference Type aquellos tipos de datos que utilizan una variable en el stack (lo que en el modelo no orientado a objetos es el puntero) y una porcin de memoria en el heap (espacio necesario para los objetos de la aplicacin); por supuesto que todos estos lenguajes implementan el Garbage Collector, caso contrario se terminara agotando la memoria del equipo impidiendo la ejecucin del programa. Indudablemente la implementacin del Garbage Collector requiere de caractersticas especiales en el sistema operativo que se ejecuta en el equipo; debe permitir la ejecucin de varios procesos ya sea en paralelo o bajo algn mecanismo de paralelismo aparente.

Visibilidad
En programacin orientada a objetos se utiliza el trmino visibilidad para tratar con un principio fundamental de este paradigma que es conocido como "ocultacin de la informacin", lo que significa que a determinados elementos del interior de una clase no se puede acceder por mtodos externos a la clase. El mecanismo principal para ocultar datos o mtodos es ponerlos dentro de una clase y declararlos "privados", con lo que se est diciendo que a esos elementos solamente se los puede manipular o "ver" desde dentro de la misma clase. Lo contrario sera declararlos "pblicos" con lo cual cualquier mtodo de cualquier clase podra manipularlos. Existen otras posibilidades como por ejemplo declarar que un elemento esta "protegido", con lo cual se logra que desde fuera de la clase nadie pueda acceder al elemento pero se permite que las clases derivadas de esa clase puedan manipular dichos elementos (derivada es un concepto de C++, en Java y C# se utiliza el concepto de subclase, que no es otra cosa ms que un clase que hereda las propiedades de otra). Dependiendo de la plataforma en la que se desarrolle, las definiciones de clases suelen reunirse en libreras de clases que se conocen como paquetes (package) o ensamblados (assemblies), existen modificadores que permiten el acceso a las clases de la misma librera, esto lo podrn ver practicando con un lenguaje en particular.

Constructores y destructores
Un constructor es un mtodo que se ejecuta automticamente cuando se crea un objeto de una clase. El mtodo constructor tiene el mismo nombre que la clase, no se puede indicar un valor de retorno (al menos en los lenguajes orientados a objetos que conozco), tampoco devuelve algo. Pero si puede tomar cualquier nmero de argumentos, esto es mediante la sobrecarga de mtodos (la vemos ms adelante). Un constructor que no tiene parmetros se conoce como "constructor por defecto" y generalmente inicializa los elementos del objeto con valores por defecto (siempre que estos elementos tengan valores por defecto). Este constructor no hace falta escribirlo a menos que necesitemos hacer algo en particular, o inicializar los elementos del objeto con determinados valores. Hay que revisar la documentacin del lenguaje que utilizan porque en algunos lenguajes cuando se implementa un constructor distinto del constructor por defecto, ste ltimo ya no se genera automticamente y muchas veces es necesario el constructor por defecto Suponiendo que existe una definicin de una clase llamada "Persona", entonces para declarar y crear un objeto de esta clase se escribe la siguiente sentencia
Persona alguien = new Persona();

-7-

Estructura de Datos y Programacin Orientada a Objetos En este caso "alguien" es una variable cuyo tipo es "Persona" y se crea el objeto mediante el operador "new" invocando el constructor de la clase, en este caso el constructor por defecto. Supongamos que se ha implementado un constructor que permite asignar el nombre de la persona, entonces la sentencia podra ser:
Persona alguien = new Persona("Juan");

Ahora el constructor recibe un parmetro, consecuentemente no es el constructor por defecto (que no hace falta implementar). Cuidado en C# si se implementa algn constructor y luego se necesita el constructor por defecto tambin debe implementarse. Esta posibilidad que brindan ciertos los lenguajes (en general todos los lenguajes orientados a objetos), la de tener un mtodo que puede recibir distintos parmetros en cantidad y tipo, es lo que se denomina sobrecarga de mtodos. Es una facilidad que brindan los lenguajes para que bajo el mismo nombre (de mtodo) el desarrollador pueda implementar el mismo cdigo o semejante (se espera que haga lo mismo) para distintas posibilidades de acuerdo a la cantidad y tipo de parmetros. El destructor es un mtodo que en general no hace falta implementar, se supone que el recolector de basura busca las porciones de memoria en el "heap" que no estn referenciadas y las libera. Eventualmente puede ser necesario que un objeto realice ciertas acciones antes que se libere la memoria que se le haba asignado; tambin se considera la implementacin y uso de los destructores en programacin avanzada y para aplicaciones que requieran altos niveles de prestacin.

Valor null
Todos los desarrolladores sabemos que cuando se declara una variable por ejemplo de tipo numrico, esta variable tiene un valor por defecto (puede ser que distintos lenguajes pongan distintos valores); por ello es que una buena prctica de programacin es inicializar las variables antes de utilizarlas, esto es indiscutible cuando las variables se utilizarn como contadores o acumuladores. Las variables que corresponde a objetos tambin tiene un valor por defecto; este valor es "null" lo que significa nulo dado que el objeto no existe, no fue inicializado. Cualquier intento de enviar mensajes mediante una variable cuyo valor es "null" provocar una interrupcin o error en tiempo de ejecucin.

Pseudovariable - this
La palabra reservada "this" se utiliza como si fuese una variable, pero en realidad no lo es porque el desarrollador no la define ni crea; est palabra se utiliza para referirse al objeto que est ejecutando una porcin de cdigo. En programacin orientada a objetos, la ejecucin de un programa es en realidad el envo y recepcin de mensajes entre objetos de manera que cada uno de ellos realice el comportamiento que tienen. Consecuentemente, para que los objetos puedan enviarse mensajes entre ellos hace falta que se conozcan, no es posible enviarle un mensaje a un objeto desconocido (puede desconocerse el tipo de objeto, pero el objeto en s mismo debe ser conocido). Del mismo modo hace falta una forma de "conocer" al mismo objeto por eso es que existe esta pseudovariable.

-8-

Estructura de Datos y Programacin Orientada a Objetos

Elementos static
Ya se coment que la ejecucin de un programa orientado a objetos es el resultado del envo de mensajes entre objetos, tambin se indic que estos objetos deben existir para que puedan enviar o recibir los mensajes que realizan su comportamiento, por esa razn es que existe un mtodo constructor, aquella porcin de cdigo que crea e inicializa un objeto. Sin embargo algunas aplicaciones necesitan que ciertos elementos existan desde el momento mismo en que la aplicacin comienza a ejecutarse, es como decir que ese elemento se crea automticamente y se puede utilizar. Para ello los lenguajes de programacin orientada a objetos facilitan la palabra reservada "static" que sirve para indicar que "un elemento se crea automticamente" y la aplicacin lo puede utilizar sin necesidad de crear un objeto. Lo que se debe tener en cuenta es que una aplicacin puede crear tantos objetos de un tipo en particular como la aplicacin lo necesite, pero no puede crear aquellos elementos u objetos que se clasificaron como "static". Tanto en C# como en Java, cuando se realiza una aplicacin de consola (aquella que se ejecuta en la consola del sistema operativo que tienen en la computadora) se puede ver que el mtodo "Main" (en C#) o "main" (en Java) estn clasificados como "static", lo que significa que no hace falta crear un objeto para invocar dicho mtodo, simplemente existe como parte de la definicin de la clase que lo contiene. Este tipo de elementos de las clases se conocen como variables de clase, a diferencia de los otros elementos conocidos como variables de instancia, porque para poder acceder a ellos primero se debe crear una instancia de la clase o sea un objeto.

Jerarqua de clases
En programacin orientada a objetos todo es un objeto, de esta manera es posible organizar una aplicacin como la interaccin entre objetos. Para lograr esto, los lenguajes orientados a objetos cuentan con lo que se llama una "jerarqua de clases" que es donde se encuentra cada objetoclase que el lenguaje facilita as como los que los desarrolladores implementan. La primer definicin (clase) de la jerarqua se conoce como "object", a partir de esta definicin se implementan todos los objetos de una aplicacin. Es importante leer la documentacin del lenguaje de programacin que utilicen para ver que particularidades tiene esta clase. En general tendr unos mtodos que son comunes a todo objeto como ser "Equals", "HashCode" y "ToString", para que sirven y cmo se utilizan se ver a medida que se desarrollen estructuras de datos con nfasis en la programacin orientada a objetos.

-9-

También podría gustarte