sábado, 4 de octubre de 2014

Representación de clases y objetos | Explicación y ejemplo

Representación de la clase vehículo utilizando un diagrama de clases.


Una clase se representa como un recuadro dividido en tres partes: el nombre de la clase en la parte superior, la declaración de atributos y la declaración de métodos.

El código Java de una clase se divide en dos partes, la declaración y sudefinición. La declaración comienza por la palabra class y a continuación se indica el nombre de la clase. La definición de una clase queda delimitada por la llave de inicio { y la llave de fin }. En el bloque de definición de la clase se declaran los atributos de los objetos y los métodos que definen su comportamiento.

Los objetos se representan como cajas que indican el nombre del objeto, la clase a la que pertenecen y el estado del objeto.


En este ejemplo, los objetos vehiculo1 y vehiculo2 son instancias de la clase Vehiculo. Ambos objetos comparten los mismos atributos, pero almacenan distintos valores. Los valores almacenados en un objeto representan su estado. El estado del objeto vehiculo1 almacena los valores: matricula “4050 ABJ”, marca “VW”, modelo “GTI”, color “Blanco”, tarifa 100.0 y disponible true. El estado del objeto vehiculo2 almacena matricula “2345 JVM”, marca “SEAT”, modelo “León”, color “Negro”, tarifa 80.0 y disponible false.

El estado de un objeto puede cambiar durante la ejecución de un programa Java. En este ejemplo, se podría modificar la tarifa del alquiler y la disponibilidad de los objetos de la clase Vehiculo, el resto de los atributos no se pueden modificar.

Métodos y constructores en Java | Explicación y ejemplo

Además de definir los atributos de un objeto, es necesario definir los métodos que determinan su comportamiento. Toda clase debe definir un método especial denominado constructor para instanciar los objetos de la clase. Este método tiene el mismo nombre de la clase. Por ejemplo, para la clase Vehiculo, el identificador del método constructor es Vehiculo. El método constructor se ejecuta cada vez que se instancia un objeto de la clase. Este método se utiliza para inicializar los atributos del objeto que se instancia.

Para diferenciar entre los atributos del objeto y los identificadores de los parámetros del método constructor, se utiliza la palabra this. De esta forma, los parámetros del método pueden tener el mismo nombre que los atributos de la clase. Esto permite hacer una asignación como la que se muestra a continuación, donde this.marca se refiere al atributo del objeto y marca al parámetro del método.
      this.marca = marca;
}
En el siguiente ejemplo el método constructor inicializa los atributos matriculamarcamodelocolor y tarifa.
public class Vehiculo {
      String matricula; 
      String marca; 
      String modelo; 
      String color; 
      double tarifa; 
      boolean disponible; 

 // el método constructor de la clase Vehiculo 

      public Vehiculo(String matricula, 
                      String marca, 
                      String modelo, 
                      String color, 
                      double tarifa) {
            this,matricula = matricula; 
            this.marca = marca; 
            this.modelo = modelo; 
            this.color = color; 
            this.tarifa = tarifa; 
            this.disponible = false; 
      }
}
La instanciación de un objeto se realiza ejecutando el método constructor de la clase.
Vehiculo vehiculo1 = new Vehiculo("4050 ABJ",
                                  "VW", "GTI", 
                                  "Blanco", 
                                   100.0);
En este ejemplo se instancia el objeto vehiculo1. El método constructor crea el objeto vehiculo1 con la matrícula “4050 ABJ”, marca “VW”, modelo “GTI”, color “Blanco” y tarifa 100.0 euros.
Vehiculo vehiculo2 = new Vehiculo("2345 JVM", 
                                  "SEAT", 
                                  "León", 
                                  "Negro", 
                                   80.0);
En este ejemplo se instancia el objeto vehiculo2. El método constructor crea el objeto vehiculo2 con la matrícula “2345 JVM”, marca “SEAT”, modelo “León”, color “Negro” y tarifa 80.0 euros.

La instanciación de un objeto consiste en asignar un espacio de memoria al que se hace referencia con el nombre del objeto. Los identificadores de los objetos permiten acceder a los valores almacenados en cada objeto. En estos ejemplos, los objetos vehiculo1 y vehiculo2 almacenan valores
diferentes y ocupan espacios de memoria distintos.

Para acceder a los atributos de los objetos de la clase Vehiculo se definen los métodos ‘get’ y ‘set’. Los métodos ‘get’ se utilizan para consultar el estado de un objeto y los métodos ‘set’ para modificar su estado. En la clase Vehiculo es necesario definir un método ‘get’ para cada uno de sus atributos: getMatricula(), getMarca(), getModelo(), getColor(), getTarifa() y getDisponible().

Los métodos ‘set’ solo se definen para los atributos que pueden ser modificados después de que se ha creado el objeto. En este caso es necesario definir setTarifa(double tarifa) y setDisponible(boolean disponible) para modificar la tarifa del alquiler del vehículo y su disponibilidad, respectivamente.
public class Vehiculo { 
      String matricula; 
      String marca; 
      String modelo; 
      String color; 
      double tarifa; 
      boolean disponible; 
// los métodos ‘get’ y ‘set’ de la clase Vehiculo 
      public String getMatricula() { 
            return this.matricula; 
      }

      public String getMarca() { 
            return this.marca; 
      }

      public String getModelo() { 
            return this.modelo; 
      }

      public String getColor() { 
            return this.color; 
      } 
      public double getTarifa() { 
            return this.tarifa; 
      } 

      public boolean getDisponible() { 
            return this.disponible; 
      } 

      public void setTarifa(double tarifa) { 
            this.tarifa = tarifa; 
      } 

      public void setDisponible(boolean disponible) { 
            this.disponible = disponible; 
      } 
}

Atributos de una clase en Java | Explicación y ejemplo

La información de un objeto se almacena en atributos. Los atributos pueden ser de tipos primitivos de Java o de tipo objeto. Por ejemplo, para el catálogo de vehículos de una empresa de alquiler, es necesario conocer la matrícula del coche, su marca, modelo, color, la tarifa del alquiler y su disponibilidad.
public class Vehiculo {
      String matricula;
      String marca;
      String modelo;
      String color;
      double tarifa;
      boolean disponible; 
}
En este ejemplo, los atributos matricula, marca, modelo y color son cadenas de caracteres, tarifa es un número real y disponible es un valor lógico.

Elementos de una clase en Java | Explicación y ejemplos

Una clase describe un tipo de objetos con características comunes. Es necesario definir la información que almacena el objeto y su comportamiento.

Atributos

La información de un objeto se almacena en atributos. Los atributos pueden ser de tipos primitivos de Java o de tipo objeto. Por ejemplo, para el catálogo de vehículos de una empresa de alquiler, es necesario conocer la matrícula del coche, su marca, modelo, color, la tarifa del alquiler y su disponibilidad.
public class Vehiculo {
      String matricula;
      String marca;
      String modelo;
      String color;
      double tarifa;
      boolean disponible; 
}
En este ejemplo, los atributos matricula, marca, modelo y color son cadenas de caracteres, tarifa es un número real y disponible es un valor lógico.

Métodos y constructores

Además de definir los atributos de un objeto, es necesario definir los métodos que determinan su comportamiento. Toda clase debe definir un método especial denominado constructor para instanciar los objetos de la clase. Este método tiene el mismo nombre de la clase. Por ejemplo, para la clase Vehiculo, el identificador del método constructor es Vehiculo. El método constructor se ejecuta cada vez que se instancia un objeto de la clase. Este método se utiliza para inicializar los atributos del objeto que se instancia.

Para diferenciar entre los atributos del objeto y los identificadores de los parámetros del método constructor, se utiliza la palabra this. De esta forma, los parámetros del método pueden tener el mismo nombre que los atributos de la clase. Esto permite hacer una asignación como la que se muestra a continuación, donde this.marca se refiere al atributo del objeto y marca al parámetro del método.
      this.marca = marca;
}
En el siguiente ejemplo el método constructor inicializa los atributos matricula, marca, modelo, color y tarifa.
public class Vehiculo {
      String matricula; 
      String marca; 
      String modelo; 
      String color; 
      double tarifa; 
      boolean disponible; 

 // el método constructor de la clase Vehiculo 

      public Vehiculo(String matricula, 
                      String marca, 
                      String modelo, 
                      String color, 
                      double tarifa) {
            this,matricula = matricula; 
            this.marca = marca; 
            this.modelo = modelo; 
            this.color = color; 
            this.tarifa = tarifa; 
            this.disponible = false; 
      }
}
La instanciación de un objeto se realiza ejecutando el método constructor de la clase.
Vehiculo vehiculo1 = new Vehiculo("4050 ABJ",
                                  "VW", "GTI", 
                                  "Blanco", 
                                   100.0);
En este ejemplo se instancia el objeto vehiculo1. El método constructor crea el objeto vehiculo1 con la matrícula “4050 ABJ”, marca “VW”, modelo “GTI”, color “Blanco” y tarifa 100.0 euros.
Vehiculo vehiculo2 = new Vehiculo("2345 JVM", 
                                  "SEAT", 
                                  "León", 
                                  "Negro", 
                                   80.0);
En este ejemplo se instancia el objeto vehiculo2. El método constructor crea el objeto vehiculo2 con la matrícula “2345 JVM”, marca “SEAT”, modelo “León”, color “Negro” y tarifa 80.0 euros.

La instanciación de un objeto consiste en asignar un espacio de memoria al que se hace referencia con el nombre del objeto. Los identificadores de los objetos permiten acceder a los valores almacenados en cada objeto. En estos ejemplos, los objetos vehiculo1 y vehiculo2 almacenan valores
diferentes y ocupan espacios de memoria distintos.

Para acceder a los atributos de los objetos de la clase Vehiculo se definen los métodos ‘get’ y ‘set’. Los métodos ‘get’ se utilizan para consultar el estado de un objeto y los métodos ‘set’ para modificar su estado. En la clase Vehiculo es necesario definir un método ‘get’ para cada uno de sus atributos: getMatricula(), getMarca(), getModelo(), getColor(), getTarifa() y getDisponible().

Los métodos ‘set’ solo se definen para los atributos que pueden ser modificados después de que se ha creado el objeto. En este caso es necesario definir setTarifa(double tarifa) y setDisponible(boolean disponible) para modificar la tarifa del alquiler del vehículo y su disponibilidad, respectivamente.
public class Vehiculo { 
      String matricula; 
      String marca; 
      String modelo; 
      String color; 
      double tarifa; 
      boolean disponible; 
// los métodos ‘get’ y ‘set’ de la clase Vehiculo 
      public String getMatricula() { 
            return this.matricula; 
      }

      public String getMarca() { 
            return this.marca; 
      }

      public String getModelo() { 
            return this.modelo; 
      }

      public String getColor() { 
            return this.color; 
      } 
      public double getTarifa() { 
            return this.tarifa; 
      } 

      public boolean getDisponible() { 
            return this.disponible; 
      } 

      public void setTarifa(double tarifa) { 
            this.tarifa = tarifa; 
      } 

      public void setDisponible(boolean disponible) { 
            this.disponible = disponible; 
      } 
}

Representación de clases y objetos

Representación de la clase vehículo utilizando un diagrama de clases.


Una clase se representa como un recuadro dividido en tres partes: el nombre de la clase en la parte superior, la declaración de atributos y la declaración de métodos.

El código Java de una clase se divide en dos partes, la declaración y sudefinición. La declaración comienza por la palabra class y a continuación se indica el nombre de la clase. La definición de una clase queda delimitada por la llave de inicio { y la llave de fin }. En el bloque de definición de la clase se declaran los atributos de los objetos y los métodos que definen su comportamiento.

Los objetos se representan como cajas que indican el nombre del objeto, la clase a la que pertenecen y el estado del objeto.


En este ejemplo, los objetos vehiculo1 y vehiculo2 son instancias de la clase Vehiculo. Ambos objetos comparten los mismos atributos, pero almacenan distintos valores. Los valores almacenados en un objeto representan su estado. El estado del objeto vehiculo1 almacena los valores: matricula “4050 ABJ”, marca “VW”, modelo “GTI”, color “Blanco”, tarifa 100.0 y disponible true. El estado del objeto vehiculo2 almacena matricula “2345 JVM”, marca “SEAT”, modelo “León”, color “Negro”, tarifa 80.0 y disponible false.

El estado de un objeto puede cambiar durante la ejecución de un programa Java. En este ejemplo, se podría modificar la tarifa del alquiler y la disponibilidad de los objetos de la clase Vehiculo, el resto de los atributos no se pueden modificar.

Clases en Java | Explicación y ejemplo

En su forma más simple, una clase se define por la palabra reservada class seguida del nombre de la clase. El nombre de la clase debe empezar por mayúscula. Si el nombre es compuesto, entonces cada palabra debe empezar por mayúscula. Circulo, Rectangulo, Triangulo y FiguraGeometrica son nombres válidos de clases.

Por ejemplo, la clase Circulo se define con tres atributos: el radio y las coordenadas x, y que definen la posición del centro del círculo.
/* Esta clase define los atributos de un círculo */ 

public class Circulo { 
      int x;
      int y;
      int radio; 
}
Una vez que se ha declarado una clase, se pueden crear objetos a partir de ella. A la creación de un objeto se le denomina instanciación. Es por esto que se dice que un objeto es una instancia de una clase y el término instancia y objeto se utilizan indistintamente.

Para crear objetos, basta con declarar una variable de alguno de los tipos de figuras geométricas:
Circulo circulo1;
Circulo circulo2;
Para crear el objeto y asignar un espacio de memoria es necesario realizar la instanciación con el operador new.
circulo1 = new Circulo();
circulo2 = new Circulo();
Después de crear los objetos, circulo1 y circulo2 almacenan los valores predeterminados de la clase Circulo. A partir de este momento los objetos ya pueden ser referenciados por su nombre. Los nombres circulo1 y circulo2 son las referencias válidas para utilizar ambos objetos.

jueves, 2 de octubre de 2014

Palabras reservadas o prohibidas en Java

En todos los lenguajes de programación existen palabras con un significado especial. Estas palabras son reservadas y no se pueden utilizar como nombres de variables.

abstractfinalpublic
assertfinallyreturn
booleanfloatshort
breakforstatic
byteifstrictfp
caseimplementssuper
catchimportswitch
charinstanceofsynchronized
classintthis
continueinterfacethrow
defaultlongthrows
donativetransient
doublenewtrue
elsenulltry
enumpackagevoid
extendsprivatevolatile
falseprotectedprotected
En realidad, las palabras false, null y true son literales. No son palabras reservadas del lenguaje, pero no se pueden utilizar como identificadores.

Conversiones en Java

Muchas veces es necesario realizar conversiones de tipos cuando se evalúa una expresión aritmética. Por ejemplo, si después de realizar el cálculo de conversión de grados Fahrenheit a Centígrados se quiere almacenar el resultado en la variable de tipo entero temperatura, es necesario hacer una conversión de tipos. La fórmula en Java, utilizando las variables centigrados y fahrenheit de tipo double.
centigrados = ((fahrenheit – 32.0) * 5.0)) / 9.0;
Antes de asignar el valor resultante a la variable temperatura, que almacena un valor entero, es necesario convertir el valor de tipo double de la variable centigrados a int.
int temperatura = (int) centigrados;