Post

Java / Clases / Programación Orientada a Objetos (POO)

Programación orientada a objetos (POO) en Java

Java / Clases / Programación Orientada a Objetos (POO)

¿Qué es la Programación Orientada a Objetos?

Programar “orientado a objetos” significa organizar el programa pensando en cosas del mundo real. En lugar de escribir una lista larga de instrucciones, piensas en qué “cosas” hay en tu programa, qué características tienen y qué pueden hacer.

Por ejemplo, en el mundo de las motos hay motos, pilotos, carreras, etc., y cada una tiene características (marca, cilindrada, velocidad) y acciones (acelerar, frenar, arrancar)

Clases y Objetos

Una clase es como el plano de fábrica de una moto. Describe cómo será, pero no es una moto real.

Un objeto es cada moto fabricada a partir de ese plano. Puedes fabricar muchas, y cada una es independiente.

Clase Moto y objetos Honda, Yamaha y KTM

Veamos un ejemplo de Clase:

1
2
3
4
5
6
7
8
9
10
public class Moto{
  String marca;     // Característica o atributo
  int cilindrada;   // Característica o atributo
  int velocidad;    // Característica o atributo

  void acelerar(){ // Acción o método
    velocidad = velocidad + 10;
    System.out.println(marca + " va a " + velocidad + " km/h");
  }
}

void significa “este método no devuelve nada”. Todo método en Java indica, justo antes de su nombre, qué tipo de dato entrega cuando termina:

  • void: métodos que hacen algo y no devuelven nada, como acelerar().
  • int, String, boolean…: métodos que responden algo y lo devuelven con return.

Ahora “fabricamos” motos concretas (objeto):

1
2
3
4
5
6
7
8
9
10
11
Moto moto1 = new Moto(); // moto1 es ahora un Objeto
moto1.marca = "Honda";
moto1.cilindrada = 650;

Moto moto2 = new Moto(); // moto2 es ahora un Objeto
moto2.marca = "Yamaha";
moto2.cilindrada = 900;

moto1.acelerar();  // Honda va a 10 km/h
moto1.acelerar();  // Honda va a 20 km/h
moto2.acelerar();  // Yamaha va a 10 km/h

new significa “fabrica una moto nueva con este plano”. Fíjate en que acelerar la Honda no afecta a la Yamaha, porque cada moto tiene sus propios datos.

Constructor

Rellenar los datos uno a uno es incómodo. El constructor es un método especial que se ejecuta al crear la moto y se llama igual que la clase:

1
2
3
4
5
6
7
8
9
10
11
public class Moto{
  String marca;
  int cilindrada;
  int velocidad;

  public Moto(String marca, int cilindrada){
    this.marca = marca;
    this.cilindrada = cilindrada;
    this.velocidad = 0; // toda moto nueva empieza parada
  }
}
1
Moto moto1 = new Moto("Honda", 650); // mucho más cómodo

this.marca significa “la marca de esta moto”, para no confundirla con el parámetro que se llama igual.

This post is licensed under CC BY 4.0 by the author.