Mostrando entradas con la etiqueta Objetos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Objetos. Mostrar todas las entradas

lunes, 28 de julio de 2014

Comportamiento de Objetos

Hemos visto que los objetos tienen "estados" y "comportamientos" representados mediante "variables de referencia" y "métodos", ahora vamos a ver de que forma podemos relacionar estos dos elementos.

Se podría decir que: Los métodos usan los valores de las variables de la clase.

Un ejemplo claro es:

class Perro {
int altura;
String nombre;

void ladrar () {
if (altura > 60) {
System.out.println("que grande soy");
} else if (altura >15) {
System.out.println("bueno, no soy tan pequeño");
} else {
System.out.println ("vaya marrón");
}
}
}
class PerroTestDrive {

public static void main (String[] args) {
Perro uno = new Perro ();
Perro dos = new Perro ();
Perro tres = new Perro ();
uno.altura = 70;
dos.altura = 8;
tres.altura = 35;

uno.ladrar();
dos.ladrar();
tres.ladrar();
}
}

Vemos como el método puede utilizar las variables definidas en su código.


Enviando cosas al objeto:

Podemos pasar valores a los métodos, por ejemplo, podríamos decir:

Perro uno = new Perro ();
uno.ladrar (3);                //Donde el 3 es el argumento

void ladrar (int numeroDeLadridos) {    //Donde numeroDeLadridos es el parámetro)

while (numeroDeLadridos > 0) {
System.out.println ("Jáu Jáu");
numeroDeLadridos = numeroDeLadridos -1;
}
}

 Recibiendo cosas de un método:


Hasta ahora hemos visto métodos que no devolvían nada, es el caso de:

void ejemplo () {
}

Pero podemos también declarar métodos que devuelvan un tipo de valor específico:

int devuelveAlgo () {

     return 10;
}
// Debemos tener una variable que pueda almacenar el valor que nos devuelve el método, en este caso es un valor entero, por lo tanto podremos decir que:

int dameLoQueDevuelves = unaClase.devuelveAlgo;


Mandando más de una cosa a un objeto:

Podemos enviar mas de una variable a la vez;

void unMetodo () {

   nuevoObjeto nuevo = new nuevoObjeto ();
   nuevo.tomaDos (10, 20);
}

void tomaDos (int x, int y) {

   int z = x + y;
   System.out.println ("El total es " + z);
}

El 10 se corresponde con la x y el 20 con la y.

* Podemos enviar también variables que contengan el valor deseado:

void unMetodo () {

   int uno = 10;    // Creamos unas variables nueva
   int dos = 20;
   nuevoObjeto nuevo = new nuevoObjeto ();
   nuevo.tomaDos (unodos);
}

void tomaDos (int x, int y) {

   int z = x + y;
   System.out.println ("El total es " + z);
}


Un detalle a tener en cuenta es que el argumento no está conectado con el parámetro, es decir, una vez que le pasemos el valor de uno y dos al método tomaDos (int x, int y) El valor que tenga x e y no modificarán el valor de uno y dos. Es decir, el valor de uno y dos se "copia" en los valores de x e y. A partir de ese momento todo lo que hagamos con x e y no influirá en el valor inicial de uno y dos.


Getters y Setters:

Los getters y setters te permitirán obtener y establecer/definir cosas. Valores de variables instanciadas por lo general. La estructura generar que se emplear es:

Ejemplo:

class GuitarraElectrica {

  String marca;
  int numeroDeGuitarras;
  boolean artistaLaUsa

//Esto es un Getter
String getMarca () {
  return marca;
}

//Esto es un Setter
void setMarca (String aMarca) {
  marca = aMarca;
}

//Lo hacemos con cada una de las variables
 int getnumeroDeGuitarras () {
  return numeroDeGuitarras;
}

void setNumeroDeGuitarras (int num) {
numeroDeGuitarras = num;
}

//Y con la ultima:

boolean getArtistaLaUsa () {
   return artistaLaUsa;
}
void setArtistaLaUsa (boolean siONo) {
artistaLaUsa = siONo;
}
}