Objetos en Java

Última actualización: Julio 24

Un objeto es la pieza básica de la programación orientada a objetos y pretende representar una entidad del mundo real. Un programa java típico, creará varios objetos invocando constructores de la clase que corresponda.

Un objeto concreto viene representado por su:

  • Estado: representado por los atributos del objeto que almacenamos en los parámetros del mismo.
  • Comportamiento: representado por los métodos del objeto.
  • Identidad: el nombre que damos al objeto le proporciona una identidad única que le permite interactuar con otros objetos.

Instanciar un objeto

Por instanciar un objeto en Java, entendemos crear un objeto con el comando new, llamando a un constructor de la clase asociada. Decimos que hemos creado una instancia de la clase, un objeto concreto con valores concretos para sus parámetros.

Todas las instancias de objetos de una clase, comparten los mismos parámetros y métodos, como no podía ser de otra forma, ya que todos están creados con el mismo molde definido en la clase.

Para entenderlo bien, vamos a continuar con una actividad, practicando con estos conceptos.

Sigue leyendo Objetos en Java

Clases en Java

Última actualización: julio 24

En esta ocasión vamos a ver que son las Clases en Java. Introduciré el concepto de programación orientada a objetos y explicaré como declarar las Clases: definirlas para poder luego crear objetos con ellas.

La programación orientada a objetos

Las clases y los objetos, son dos conceptos básicos de la programación orientada a objetos, que tenemos que entender muy bien.

Una Clase es un molde definido por el usuario que empleamos para crear objetos. Este molde incluye una serie de propiedades y métodos que son comunes a todos los objetos creados con una clase.

La clase puede ser vista como un molde y el objeto como una implementación concreta sacada de ese molde. Por lo que con una clase podemos generar muchos objetos que tendrán las mismas características.

La programación orientada a objetos basa toda la codificación en objetos, que intentaran similar objetos reales o conceptos.  Dicho así puede sonar un poco abstracto, pero cuando practiquemos programando nos quedará claro este concepto.

Declaración de una Clase

La declaración de una clase incluye los siguientes componentes:

  • Modificadores: debe ser public para asegurar el acceso desde otras clase o tener el acceso por defecto.
  • Nombre: Para identificar a la clase. Debe de empezar con una letra mayúscula.
  • Superclase (si existe): Es el nombre de la clase padre si la tuviera. Hablaré de la clase padre cuando introduzcamos el concepto de herencia. En la declaración de la clase, el nombre de la superclase aparecerá precedido por la palabra clave extends.
  • Interfaces (si hay): Una lista de interfaces implementados por la clase, separados por comas, precedidos por la palabra clave implements. Una clase implementa uno o más interfaces.
  • Cuerpo: Bloque de instrucciones de la clase, entre corchetes { }.

Declaración de una clase:

class MiClase extends MiSuperClass implements UnInterface {
    < parámetros, construtores y métodos >
}

Este ejemplo de declaración de clase nos indica que la clase MiClase es hija de la superclase MiSuperClass y que además implementa el interface UnInterface.

Una clase tiene que ser programada en un fichero java con el nombre de la clase. Por ejemplo, la clase Coche debería estar programada en un fichero llamado Coche.java

Una clase contiene constructores que son métodos empleados para crear objetos a partir del molde de la clase. Cuando en nuestro programa, queramos crear un objeto de una clase, invocaremos a un constructor de dicha clase.

 Los constructores se declaran como métodos, con la particularidad de que tienen que tener el mismo nombre que la clase y que no devuelven ningún valor.

Parámetros, constructores y métodos

Las clases representan atributos y comportamientos. Los atributos son definidos por los parámetros que son variables que definimos en la clase. Y los comportamientos están definidos por los métodos de la clase.

En la siguiente actividad, practicamos con estos dos conceptos:

Actividad: Declarando Clases

  1. Abre un proyecto nuevo en el IDE que estes empleando.
  1. Lo primero que vamos a hacer es crear un nuevo fichero donde programaremos nuestra clase. La Clase la llamaremos Coche y por tanto el fichero será Coche.java
  2. Para crear el fichero nuevo, empleamos la opción de “New File” disponible en todos los IDEs:
  1. Empezamos definiendo los parámetros de la clase, que son las variables que definirán cada uno de los objetos que generemos con la clase. Para nuestro ejemplo de un coche, definiremos los siguientes parámetros:
  • CV: La potencia del motor del coche expresado en CV
  • numeroPuertas: El número de puertas que tiene el coche.
  • propietario: el dueño del coche.
  • color: color del coche.
  • combustible: el tipo de combustible que consume el coche
  • encendido: variable booleana para indicar si el coche está o no encendido
  • porcentajeTanqueLleno: porcentaje del tanque de combustible que está lleno
  1. Todos estos parámetros serían variables que programamos al principio de la clase. Para ello, introducimos el siguiente código en el fichero Coche.java que acabamos de crear.
public class Coche{
    int CV;
    int numeroPuertas;
    int añoFabricacion;
    String propietario;
    String color;
    String combustible;
    boolean encendido;
}
  1. Lo siguiente sería crear un constructor de la Clase. El constructor es un método que tiene el nombre de la Clase y que emplearemos para crear un objeto de la clase. Tiene que ser declarado como public, para que sea accesible desde fuera de la Clase. Un ejemplo sería el siguiente código en el que sólo empleamos dos parámetros en el constructor: el número de puertas y el propietario.
public Coche(int np, String pro){
   this.numeroPuertas = np;
   this.propietario=pro;
}
  1. El constructor recibe dos parámetros: np y pro, que se pasaran al constructor cuando se emplee este para crear un objeto. Dichos valores se almacenaran en los parámetros numeroPuertas y propietario, respectivamente. La palabra reservada this hace referencia al objeto que se este creando con el constructor, por lo que los valores pasados al constructor se almacenaran en los parámetros correspondientes del objeto.
  2. Además, creamos tres métodos: arranque, parado y llenadoTanque. El código de estos métodos sería:
public void arranque(){
    if (porcentajeTanqueLleno>5){
        encendido = true;
    }
}
public void parado(){
    encendido = false;
}
public int llenadoTanque(){
    if (porcentajeTanqueLleno<80){
        porcentajeTanqueLleno = 100;
    }
    return porcentajeTanqueLleno;
}
  1. El método arranque simula el arranque del coche, poniendo el parámetro encendido a verdadero. Aunque antes comprueba que al menos tengamos un 5% del tanque de combustible lleno.
  2. El método parado, sencillamente apaga el coche haciendo la variable encendido falsa
  3. Y el método llenadoTanque, simula el llenado del tanque de combustible poniendo a 100 el parámetro porcentajeTanqueLleno, siempre y cuando no lo tuviéramos más lleno del 80%, en cuyo caso lo deja como está.
  4. Con todo ello, el código completo de la Clase Coche quedaría:
public class Coche{
    int CV;
    int numeroPuertas;
    int añoFabricacion;
    String propietario;
    String color;
    String combustible;
    boolean encendido;
    int porcentajeTanqueLleno;
    public Coche(int np, String pro){
        this.numeroPuertas = np;
        this.propietario=pro;
    }
    public void arranque(){
        if (porcentajeTanqueLleno>5){
            encendido = true;
        }
    }
    public void parado(){
        encendido = false;
    }
    public int llenadoTanque(){
        if (porcentajeTanqueLleno<80){
            porcentajeTanqueLleno = 100;
        }
        return porcentajeTanqueLleno;
    }
}

De momento, no hemos usado la clase, sencillamente la hemos programado y explicado su código. En las próximos posts continuaremos desarrollando la clase y comenzaremos a utilizarla.

NOTA:

Este post es parte de la colección “Java”. Puedes ver el índice de esta colección aquí.

Ejercicios con métodos en Java

En este post dejo algunos ejercicios con métodos en Java para practicar lo explicado en el post anterior en el que contaba como trabajar con métodos.

Como siempre os digo, existen varias soluciones posibles para resolver un mismo problema, unas más eficientes que otras. Aquí podéis ver una solución posible para cada ejercicio propuesto.

Ejercicio 1

Codifica el método «operacion» que falta en el siguiente programa.

public class UnMetodo {
    public static void main(String args[]) {
       double x =7, y = 9, resultado = 0;
       for (int i=1; i<5; i++){
          operacion (x,y,i);
       }
    }
}
Sigue leyendo Ejercicios con métodos en Java

Métodos en Java

Última actualización: julio 24

En este post voy a explicar como trabajar con los métodos en Java. Todos los lenguajes de programación tienen métodos, aunque pueden referirse a ellos como funciones o procedimientos.

Un método es una colección de sentencias que realizan una tarea específica. Puede retornar un valor que podemos utilizar en nuestro programa o no retornar ninguno, esto es opcional. Empleando métodos ahorramos tiempo al no tener que reescribir un conjunto de sentencias varias veces. Sencillamente, cuando tengamos que ejecutar la tarea que realiza el método, llamaremos al mismo sin tener que teclear de nuevo todas las sentencias de la tarea.

Declaración

En la siguiente figura, se puede observar la sintaxis de declaración de un método:

Estructura de un método en Java
Estructura de un método en Java
Sigue leyendo Métodos en Java

Ejercicios con estructuras de control en Java

Última actualización: septiembre 2024

En esta ocasión, te propongo algunos ejercicios básicos para practicar con las estructuras de control en Java. Si necesitas revisar el funcionamiento de estas estructuras, puedes consultar el post “Estructuras de Control en Java”.

Existen varias soluciones posibles para resolver un mismo problema, unas más eficientes que otras. Aquí podéis ver una solución posible para cada ejercicio propuesto.

Ejercicio 1: Números divisibles por 3

Escribe un programa Java que dibuje los números del 1 al 100 que sean divisibles por 3. Una posible solución sería:

public class DivisiblesPor3 {
    public static void main(String args[]) {
      for (int i=1;i<101;i++){
          if (i%3==0){
              System.out.println("El número "+i+" es divisible por 3");
          }
      }
    }
}
Sigue leyendo Ejercicios con estructuras de control en Java