No me acuerdo muy bien de la teoría, pero siempre se deben instanciar los Objetos en la POO, el constructor sirve para instanciar(inicializar) un objeto, el constructor debe tener el mismo nombre de la clase y pueden haber varios constructores, en que se diferencian? En los argumentos del constructor. Un Ejemplo:
Código Java:
Ver originalpublic class Libro{
//Atributos o Propiedades del objeto
private boolean estado;
//Constructor Vacío, por lo general lo crea el IDE automáticamente, estado escrito
//o no, pero es recomendable escribirlo
public Libro(){
}
//Constructor con argumentos, instancia el objeto con los argumentos pasados
this.codigo = codigo;
this.nombre = nombre;
this.estado = estado;
}
return this.nombre;
}
public void setNombre
(String nombre
){ this.nombre=nombre;
}
return this.codigo;
}
public void setCodigo
(String codigo
){ this.codigo=codigo;
}
public boolean isEstado(){
return this.estado;
}
public void setEstado(boolean estado){
this.estado=estado;
}
}
Veamos, instanciado con constructor vacío.
Código Java:
Ver originalLibro l = new Libro();
System.
out.
println(l.
getNombre()); //no se mostrará nada
Si vemos, el objeto está instanciado, pero no se le han pasado datos a los atributos. Agreguemos datos:
Código Java:
Ver originalLibro l = new Libro();
System.
out.
println(l.
getNombre()); l.setNombre("El Túnel");
System.
out.
println(l.
getNombre()); //Mostrará "El Túnel"
Ahí le asignamos datos al atributo nombre del objeto libro.
Ahora veamos un constructor con argumentos.
Código Java:
Ver originalLibro l = new Libro("abc123","Niebla",true);
System.
out.
println(l.
getNombre()); //Mostrará "Niebla"
//Veamos un objeto sin instanciar
Vemos que da un error, por no estar instanciado el objeto. El famoso
NullPointerException
------------------------------------------
Ahora ArrayList
Código Java:
Ver originalpublic class Libros{
//Creamos el arraylist
private ArrayList<Libro> mislibros;
//Constructor de la clase
public Libros(){
mislibros = new ArrayList<Libro>();
}
public Libro buscarLibroporNombre
(String nombre
){ for(Libro l : mislibros){
if(l.getNombre().equals(nombre)){
return l;
}
}
return null;
}
public void agregarLibro(Libro l){
mislibros.add(l);
}
public void mostrarLibros(){
for(Libro l: mislibros){
System.
out.
println(l.
getNombre()); }
}
}
Ahora en la clase Main o principal, ponemos a prueba lo Anterior
Código Java:
Ver originalLibros libros = new Libros();
Libro l = new Libro("abc123","El tunel", true);
libros.agregarLibro(l);
Libro l2 = new Libro("zxc343","Niebla",false);
libros.agregarLibro(l2);
Libros l3 = new Libro();
l3.setCodigo("qwerty");
l3.setNombre("Elegi vivir");
l3.setEstado(true);
libros.agregarLibro(l3);
libros.mostrarLibros();
l = libros.buscarLibro("El tunel");
System.
out.
println(l.
getCodigo()); System.
out.
println(l.
getNombre()); System.
out.
println(l.
isEstado());
Solo te queda practicar, Saludos