Tabla de contenido:
Video: PROGRAMACIÓN ORIENTADA a OBJETOS en JAVA - POO | Clases y objetos | Desarrollo con Java - 15 2024
Java está orientado a objetos. Qué significa eso? A diferencia de los lenguajes, como FORTRAN, que se centran en dar a la computadora los comandos imperativos "Hacer esto / Hacer eso", los lenguajes orientados a objetos se enfocan en los datos. Por supuesto, los programas orientados a objetos aún le dicen a la computadora qué hacer. Comienzan, sin embargo, organizando los datos, y los comandos vienen después.
Los lenguajes orientados a objetos son mejores que los lenguajes "Hacer esto / Hacer eso" porque organizan los datos de una manera que permite a las personas hacer todo tipo de cosas con él. Para modificar los datos, puede construir sobre lo que ya tiene, en lugar de descartar todo lo que ha hecho y comenzar de nuevo cada vez que necesite hacer algo nuevo. Aunque los programadores de computadoras generalmente son personas inteligentes, tomaron un tiempo resolver esto.
Objetos y sus clases
En un lenguaje orientado a objetos, utiliza clases de objetos y para organizar sus datos.
Imagine que está escribiendo un programa de computadora para realizar un seguimiento de las casas en un nuevo desarrollo de condominio (aún en construcción). Las casas difieren solo levemente unas de otras. Cada casa tiene un color de revestimiento distintivo, un color de pintura de interior, un estilo de gabinete de cocina, y así sucesivamente. En su programa de computadora orientado a objetos, cada casa es un objeto.
Pero los objetos no son toda la historia. Aunque las casas difieren ligeramente entre sí, todas las casas comparten la misma lista de características. Por ejemplo, cada casa tiene una característica conocida como color de revestimiento . Cada casa tiene otra característica conocida como estilo de gabinete de cocina . En su programa orientado a objetos, necesita una lista maestra que contenga todas las características que un objeto doméstico puede poseer. Esta lista maestra de características se denomina clase .
Así que ahí lo tienes. La programación orientada a objetos está mal llamada. Realmente debería llamarse "programación con clases y objetos". "
Observe que la palabra classes se mencionó primero? Piense nuevamente en un desarrollo de vivienda en construcción. En algún lugar del lote, en un desvencijado remolque estacionado en la tierra desnuda, hay una lista maestra de características conocidas como planos. El plano de un arquitecto es como una clase de programador orientado a objetos. Un anteproyecto es una lista de características que tendrá cada casa. El plan dice: "revestimiento". "El objeto real de la casa tiene revestimiento gris. El plan dice: "gabinete de cocina. "El objeto real de la casa tiene gabinetes de cocina Louis XIV.
Un año después de crear el modelo, lo usa para construir diez casas. Es lo mismo con las clases y los objetos. Primero, el programador escribe el código para describir una clase. Luego, cuando se ejecuta el programa, la computadora crea objetos de la clase (blueprint).
Entonces esa es la relación real entre clases y objetos. El programador define una clase y, a partir de la definición de clase, la computadora crea objetos individuales.
¿Qué tiene de bueno un lenguaje orientado a objetos?
Imagine que ya ha escrito un programa de computadora para realizar un seguimiento de las instrucciones de construcción de las casas en un nuevo desarrollo. Luego, el gran jefe decide un plan modificado: un plan en el que la mitad de las casas tiene tres habitaciones y la otra mitad tiene cuatro.
Si usa el antiguo estilo FORTRAN / C de la programación de la computadora, sus instrucciones son las siguientes:
Cave una zanja para el sótano.
Coloque concreto alrededor de los lados de la zanja.
Ponga dos por cuatro a los lados para el marco del sótano.
…
Esto sería como un arquitecto que crea una larga lista de instrucciones en lugar de un plano. Para modificar el plan, debe ordenar la lista para encontrar las instrucciones para construir dormitorios. Para empeorar las cosas, las instrucciones podrían estar dispersas entre las páginas 234, 394-410, 739, 10 y 2. Si el constructor tenía que descifrar las complicadas instrucciones de otras personas, la tarea sería diez veces más difícil.
Comenzar con una clase, sin embargo, es como comenzar con un plan. Si decide tener casas de tres y cuatro dormitorios, puede comenzar con un plano llamado casa plano que tiene una planta baja y un segundo piso, pero no tiene paredes interiores dibujadas en el segundo piso. Luego, crea dos planos más en el segundo piso: uno para la casa de tres dormitorios y otro para la casa de cuatro dormitorios. (Usted nombra a estos nuevos planos el modelo de tres habitaciones y el proyecto de cuatro dormitorios .
Tus colegas constructores se sorprenden con tu sentido de lógica y organización, pero tienen preocupaciones. Ellos plantean una pregunta. "Llamó a uno de los planos el plano de la 'casa de tres dormitorios'. ¿Cómo puedes hacer esto si es un plano para un segundo piso y no para toda una casa? "
Sonríes a sabiendas y respondes:" El plan de la casa de tres dormitorios puede decir: 'Para obtener información sobre los pisos inferiores, mira el plano original de la casa. 'De esa manera, el anteproyecto de la casa de tres dormitorios describe una casa entera. El plano de la casa de cuatro dormitorios puede decir lo mismo. Con esta configuración, podemos aprovechar todo el trabajo que ya hicimos para crear el plano original de la casa y ahorrar mucho dinero. "
En el lenguaje de programación orientada a objetos, las clases de la casa de tres y cuatro dormitorios heredan las características de la clase de la casa original. También puede decir que las clases de la casa de tres y cuatro dormitorios están extendiendo la clase de la casa original.
La clase de la casa original se llama superclase de las clases de la casa de tres y cuatro dormitorios.En ese sentido, las clases de la casa de tres y cuatro dormitorios son subclases de la clase de la casa original. Dicho de otra manera, la clase de la casa original se llama clase de los padres de las clases de la casa de tres y cuatro dormitorios. Las clases de la casa de tres y cuatro dormitorios son clases de niños de la clase de la casa original.
No hace falta decir que los colegas de tu hogar están celosos. Una multitud de constructores de casas te rodea para conocer tus grandes ideas. Entonces, en ese momento, suelta una bomba más: "Al crear una clase con subclases, podemos reutilizar el modelo en el futuro. Si alguien viene y quiere una casa de cinco dormitorios, podemos ampliar nuestro plano original de la casa haciendo un plano de la casa de cinco dormitorios. Nunca más tendremos que gastar dinero para un plano original de la casa. "
" Pero ", dice un colega en la última fila," ¿qué sucede si alguien quiere un diseño diferente en el primer piso? ¿Basuramos el proyecto original de la casa o empezamos a garabatear todo el plano original? Eso costará mucho dinero, ¿no? "
En tono confiado, respondes:" No tenemos que meternos con el plano original de la casa. Si alguien quiere un jacuzzi en su sala de estar, podemos hacer un nuevo y pequeño diseño que describa solo la nueva sala de estar y llamarlo el plano Jacuzzi-in-living-room house . Entonces, este nuevo modelo puede referirse al plano original de la casa para obtener información sobre el resto de la casa (la parte que no está en la sala de estar). "En el lenguaje de la programación orientada a objetos, el plano de la casa Jacuzzi-in-living-room todavía extiende el plano original de la casa. El plano de Jacuzzi sigue siendo una subclase del plano original de la casa. De hecho, toda la terminología sobre superclase, clase principal y clase infantil todavía se aplica. Lo único nuevo es que el plano de Jacuzzi anula las características de la sala de estar en el plano original de la casa.
En los días anteriores a los lenguajes orientados a objetos, el mundo de la programación experimentó una crisis en el desarrollo de software. Los programadores escribieron código, luego descubrieron nuevas necesidades y luego tuvieron que trash su código y empezar de cero. Esto sucedió una y otra vez porque el código que los programadores escribían no se podía reutilizar. La programación orientada a objetos cambió todo esto para mejor.