lunes, 4 de noviembre de 2013

5. Vectores y matrices

Cuando queremos manejar una colección de objetos del mismo tipo estructurados y definidos en una sola variable se utilizan los vectores. En java los vectores son realmente objetos. Existen dos formas para declarar los vectores:
  1. tipo [] nombreVector ;   -> Ejemplo: int vector1[];
  2. tipo nombreVector [];   -> Ejemplo: int [] vector1;
 La matrices son vectores de varias dimensiones. Para declaralos existen dos formas:
  1. tipo [][] nombreVector ; -> Ejemplo: int matriz[][]
  2. tipo nombreVector [][]; -> Ejemplo: int [][] matriz;

Los vecrtores pueden ser inicializados en el momento de la declaración, reservando el espacio justo para almacenar los elementos.

Para reservar memoria a los vectores es necesario llamar al constructor new de la siguiente manera:
new tipo [numeroElementos]

Por ello, se puede indicar el número de elementos durante la declaración (por ejemplo un vector de enteros de 5 elementos):
int vector[] = new int[5];

Podemos acceder a los elementos de un vector a través del índice del vector. El índice del primer elemento es el 0, y el último, el número de elementos menos uno. Por ejemplo si queremos asignar el elemento 3 del vector a una variable entera sería:
variable = vector [3];



Ejemplo: completar ejemplo alumnos

Ejemplo: Crear el alumno Sandra López Fernández con edad de 21 años y en el cuarto curso, asignando los valores mediante los métodos set y get. Crear otro alumno llamado Pedro González Bravo, con 17 años y de primer curso, utilizando un contructor sobrecargado (no utilizando métodos set y get). Crear ambos alumnos desde el programa principal, y se debe de mostrar el siguiente mensaje para cada uno de ellos, en fución de ser o no mayor de edad:

El alumno "Nombre" "Apellidos" es mayor de edad 
El alumno "Nombre" "Apellidos" NO es mayor de edad


En la clase Alumno.java, se han añadido el constructores por defecto y el sobrecargado respectivamente:

public Alumno()
{
   nombre="";
   apellidos="";
   edad=0;
   curso=0;
}


public Alumno(String nom, String ape, int e, int c)
{
   nombre=nom;
   apellidos=ape;
   edad=e;
   curso=c;
}



En la clase Principal.java se han creado los objetos y se han realizado las llamadas a los diferentes métodos:
 
 
public class Principal {

 public static void main(String[] args) {

  // Datos alumno 1
  Alumno alumno1 = new Alumno();
  String cadena1;
  alumno1.setNombre("Sandra");
  alumno1.setApellidos("Lopez Fernandez");
  alumno1.setEdad(21);
  alumno1.curso=4;
  cadena1=alumno1.getNombre() + " " + alumno1.getApellidos();
 
  if(alumno1.esMayorEdad())
   cadena1+=" es mayor de edad";
  else
   cadena1+=" NO es mayor de edad";
  
  System.out.println("El alumno " + cadena1);
 
  // Datos alumno 2
  Alumno alumno2 = new Alumno("Pedro", "Gonzalez Bravo",17,1);
  String cadena2;
  cadena2=alumno2.getNombre() + " " + alumno2.getApellidos();


  if(alumno2.esMayorEdad())
   cadena2+=" es mayor de edad";
  else
   cadena2+=" NO es mayor de edad";
 
  System.out.println("El alumno " + cadena2);
 }
}



domingo, 3 de noviembre de 2013

4. Métodos

Los métodos son las funciones definidas dentro del ámbito de una clase. El método esta formado por la declaración del método y el cuerpo que va entre llaves. En el siguiente ejemplo, la función devuelve el mayor entre dos números enteros pasados como parámetro.


public int calcularMayor(int a,int b) {
   if(a>b)
     return a;
   else
     return b;
}

La parte de la declaracion del método está constituida por cuatro partes:

a). Ámbito del método. Los diferentes ámbitos que se le puede aplicar al método son iguales a los que se le puede aplicar a un atributo.

b). Tipo de datos que devuelve la función. Puede devolver tanto datos simples como referenciados (objetos). También se pueden hacer métodos que no devuelvan ningún valor donde no se especifica la particula return, y se declara como void, en vez de asociarle un tipo.

c). Nombre de la función. Es el nombre que se le da a la función, para que pueda ser invocada desde cualquier lugar.

d). Parámetros de entrada (si los tiene). Son variables que se pueden utilizar en el interior de la propia función.

A excepción de los métodos static, siempre se aplican a un objeto de la clase por medio del operador punto.

Ejemplo: añade seis métodos públicos a la clase Alumno, tres para obtener los valores de los atributos privados de nombre, apellidos y edad, y otros tres para modificarlos. Añade también otro metodo público en la clase Alumno que indique si un alumno es mayor de edad o no.
 

 /* Metodo que modifica el nombre del alumno*/
 
public void setNombre(String nom) {
     this.nombre=nom;
}


 
/* Metodo que obtiene el nombre del alumno*/
public String getNombre() {
    return this.nombre;
}
 
/* Metodo que modifica los apellidos del alumno*/

public void setApellidos(String ape) {
    this.apellidos=ape;
}
 
/* Metodo que obtiene el nombre del alumno */
 
public String getApellidos() {
   return this.apellidos;
}
 

 
/* Metodo que modifica la edad del alumno*/
 
public void setEdad(int e) {
    this.edad=e;
}
/* Metodo que obtiene la edad del alumno */
 
public int getEdad() {
    return this.edad;
}
 
/* Devuelve true si el alumno es mayor de edad, y false en caso contrario*/
public boolean esMayorEdad() {
  if(edad>=18)
    return true;
 else
   return false;