OMG is Duke!

Blog dedicado a la programación con Java (JavaSE, JavaFX y JavaEE)

  • Principal
  • Recursos
    • Herramientas
    • Snippets
    • Libros
  • Acerca
  • Contacto
En el artĆ­culo anterior, vimos lo que era la programación orientada a objetos desde un punto de vista neutral, sin entrar en detalles de implementación en un lenguaje. En esta parte de la serie, veremos cómo aplica la POO en el lenguaje Java. Para ello, veremos un ejemplo real. Pensemos en un automóvil (el que nos guste). Ahora pensemos en algunas caracterĆ­sticas; un auto tiene una serie de placa, un nĆŗmero de puertas, un nĆŗmero de neumĆ”ticos, un color, un aƱo de fabricación y si tiene un mecanismo de tracción. Bien, si lo representamos en Java, lo que tenemos ahora se verĆ­a asĆ­:
public class Automovil {

    String seriePlaca;
    int numeroPuertas;
    int numeroRuedas;
    String color;
    String anyo;
    boolean traccion;
}
Ya tenemos los atributos de nuestra clase. Pero falta agregarle comportamiento, asƭ que pensemos en las acciones de un auto. Un auto acelera y frena, bƔsicamente es lo que hace. Por lo tanto, nuestra clase quedarƭa asƭ:
public class Automovil {
    
    String seriePlaca;
    int numeroPuertas;
    int numeroRuedas;
    String color;
    String anyo;
    boolean traccion;
    
    public void acelerar() {
        System.out.println("¡Acelerando!");
    }
    public void frenar() {
        System.out.println("Frenando...");
    }
    public void imprimirInfo() {
        System.out.println("Placa: " + seriePlaca +
            "\nN° puertas: " + numeroPuertas +
            "\nN° ruedas: " + numeroRuedas +
            "\nColor: " + color +
            "\nAƱo: " + anyo +
            "\nTracción: " + traccion);
    }
}
Como vemos, acelerar(), frenar() e imprimirInfo() son los comportamientos del auto, que en Java se denominan mƩtodos. El mƩtodo imprimirInfo solo imprimirƔ los atributos del auto creado. Ahora viene la pregunta:

¿Cómo utilizar esa clase?

La forma de utilizar es una clase es creando objetos a partir de esa clase. Como dijimos en el artĆ­culo anterior una clase es una plantilla de la cual se crearĆ”n objetos. La forma de crear objetos en Java es por medio del operador new el cual indica que se crearĆ” una nueva instancia de la clase que se describe a continuación. Para crear un Lamborghini, harĆ­amos:

Automovil lamborghini = new Automovil();

Una vez que hemos instanciado la clase Automovil y por ende obtenido un objeto de tipo Automovil, podemos cambiar sus atributos y jugar con sus métodos. Por ejemplo vamos a ponerle una serie de placa ABC123Z, un color rojo, un número de puertas 2, un número de ruedas 4, un año 2015, y sin tracción:
Automovil lamborghini = new Automovil();
lamborghini.seriePlaca = "ABC123Z";
lamborghini.numeroPuertas = 2;
lamborghini.numeroRuedas = 2;
lamborghini.color = "rojo";
lamborghini.anyo = "2015";
lamborghini.traccion = false;
Ya tenemos un Lamborghini muy cool, ahora hay que hacerlo acelerar, imprimir su información y finalmente frenar:
lamborghini.acelerar();
lamborghini.imprimirInfo();
lamborghini.frenar();
Las llamadas a los mƩtodos de un objeto se realizan mediante el operador punto (.), el cual denota todas las posesiones (atributos y mƩtodos) de ese objeto.

Poniendo todo junto


Para probar el funcionamiento de nuestro código, solo debemos de crear un método main. El método main es un método único y especial en Java. Este método nos provee un punto de inicio y entrada de un programa, por ende, para ejecutar un programa debemos de proveer un método main.
public class Prueba {

    public static void main(String[] args) {
        Automovil lamborghini = new Automovil();
        lamborghini.seriePlaca = "ABC123Z";
        lamborghini.numeroPuertas = 2;
        lamborghini.numeroRuedas = 2;
        lamborghini.color = "rojo";
        lamborghini.anyo = "2015";
        lamborghini.traccion = false;

        lamborghini.acelerar();
        lamborghini.imprimirInfo();
        lamborghini.frenar();
    }

}
Si compilamos y ejecutamos obtenemos la siguiente salida:

¡Acelerando!
Placa: ABC123Z
N° puertas: 2
N° ruedas: 2
Color: rojo
AƱo: 2015
Tracción: false
Frenando...

Como ves, crear un objeto y personalizarlo es muy sencillo, solo basta un punto y acceder al atributo. Pero esto, no es nada recomendable y en el próximo artículo veremos por qué.


!Nos vemos!.

¿QuĆ© es programación orientada a objetos?

La programación orientada a objetos es un paradigma de programación incluido por primera vez en el otrora lenguaje de programación Simula67. La programación orientada a objetos nace de la necesidad de resolver un problema por medio de objetos interactuando entre sí, estos objetos son representaciones del mundo real, que plasmamos en código fuente para que interactúen entre ellos logrando así un final común (la resolución de un problema).
Un objeto, por lo tanto, puede ser cualquier cosa existente en el mundo real o una entidad no tangible, asƭ, podemos pensar en un objeto como un lƔpiz, un perro, una casa, un promedio de notas, etcƩtera.
Un objeto se caracteriza por tener un estado y un comportamiento, los cuales paso a describir:
  • Estado: un estado en un objeto, representa los atributos o caracterĆ­sticas de dicho objeto, es decir, lo que lo caracteriza e indentifica. En tĆ©rminos de programación, un estado vienen a ser un atributo (comĆŗnmente llamados tambiĆ©n variables o campos).
  • Comportamiento: el comportamiento de un objeto, son las acciones que dicho objeto realiza. Esto, en tĆ©rminos de programación, un comportamiento viene a ser una función o mĆ©todo.
Por lo tanto, un objeto es un conjunto, donde sus estados (atributos) y comportamientos (mƩtodos) estƔn estrictamente relacionados con Ʃl.

Clases

Ya vimos lo que es un objeto, pero ¿como se crean los objetos? Para eso debemos de conocer el concepto de clase. Una clase, en POO, es una abstracción de una idea, cuya esencia, la representamos en código fuente. Esa idea, que luego darĆ” vida a un objeto, tiene caracterĆ­sticas y funcionamientos que luego copiarĆ”n los objetos creados a partir de esa idea.
Dicha idea, es una clase. Una clase abstrae las caracterĆ­sticas y funcionamientos de un objeto, por ende, no podemos usar directamente ellos, tenemos que crear un objeto a partir de esa clase; es por esto que comĆŗnmente se dice que una clase es una plantilla, una plantilla de cual se crearĆ”n los objetos.

Historia de la programación orientada a objetos

El origen  de la programación orientada a objetos se remonta al aƱo 1962, cuando Ole Johan Dahl y Kristen Nygaard diseƱaron y construyeron el lenguaje de programación Simula. Simula fue el lenguaje en incorporar el concepto de clase, la cual dio origen a los lenguajes orientados a objetos modernos.
Simula67, una actualización de Simula hecha por los creadores originales, fue liberada en 1967 para ser usada en el Centro de cómputo de Oslo (Noruega), y cuyo fin era hacer simulaciones de naves. La idea era agrupar diversos tipos de naves en clases de objetos, las cuales tenĆ­an que definir sus propias caracterĆ­sticas y comportamientos. Simula67 fue refinado mĆ”s tarde con el nacimiento del lenguaje Smalltalk.

La POO tuvo un auge tremendo en la década de los 80's, con el nacimiento de C++ y las interfaces grÔficas de usuario, donde la POO se adaptaba muy bien a esas aplicaciones. Desde ese momento, se convirtió en un estÔndar facto para el desarrollo de software.
Suscribirse a: Entradas ( Atom )

Acerca del autor

Programador junior apasiado a la tecnologĆ­a Java y todo referente a web.

Twitter: @iMitsuG

MƔs populares

  • POO II - Clases y objetos
    En el artículo anterior, vimos lo que era la programación orientada a objetos desde un punto de vista neutral, sin entrar en detalles de i...
  • POO I - Introducción
    ¿QuĆ© es programación orientada a objetos? La programación orientada a objetos es un paradigma de programación incluido por primera ve...

Etiquetas

Java POO

Archivo del blog

  • ▼  2015 (2)
    • ▼  agosto (2)
      • POO II - Clases y objetos
      • POO I - Introducción
Con la tecnologĆ­a de Blogger.
Copyright 2014 OMG is Duke!.
Designed by OddThemes