English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
甲ConstrucciónSe utiliza para inicializar el objeto en el momento de la creación. En términos de sintaxis, es similar a un método. La diferencia radica en que el nombre del constructor es el mismo que el de la clase y no tiene tipo de retorno.
No es necesario llamar explícitamente al constructor, estos constructores se llaman automáticamente en el momento de la instanciación.
public class Example { public Example(){ System.out.println("Este es el constructor de la clase ejemplo"); } public static void main(String args[]) { Example obj = new Example(); } }
Resultado de salida
Este es el constructor de la clase ejemplo
Sí, al igual que los métodos, puede lanzar excepciones desde el constructor. Pero si lo hace, debe capturar la excepción en el método que llama al constructor/Lanzar (manejar) excepciones. Si no compila, se generará un error.
En el siguiente ejemplo, tenemos una clase llamada Employee, cuyo constructor lanza IOException, y no manejamos la excepción al instanciar la clase. Por lo tanto, si compila el programa, generará un error en tiempo de compilación.
import java.io.File; import java.io.FileWriter; import java.io.IOException; class Employee{ private String name; private int age; File empFile; Employee(String name, int age, String empFile) throws IOException{ this.name = name; this.age = age; this.empFile = new File(empFile); new FileWriter(empFile).write("Employee name is "+name+"and age is "+age); } public void display(){ System.out.println("Name: "+name); System.out.println("Age: "+age); } } public class ConstructorExample { public static void main(String args[]) { String filePath = "samplefile.txt"; Employee emp = new Employee("Krishna", 25, filePath); } }
ConstructorExample.java:23error: exception no reportada IOException; debe ser capturada o declarada como lanzada Employee emp = new Employee("Krishna", 25, filePath); ^ 1 error
Para que el programa funcione correctamente, envuelva la línea de instanciación en un try-en catch o lanzando una excepción.
import java.io.File; import java.io.FileWriter; import java.io.IOException; class Employee{ private String name; private int age; File empFile; Employee(String name, int age, String empFile) throws IOException{ this.name = name; this.age = age; this.empFile = new File(empFile); new FileWriter(empFile).write("Employee name is "+name+"and age is "+age); } public void display(){ System.out.println("Name: "+name); System.out.println("Age: "+age); } } public class ConstructorExample { public static void main(String args[]) { String filePath = "samplefile.txt"; Employee emp = null; try { emp = new Employee("Krishna", 25, filePath); }catch(IOException ex) { System.out.println("No se encontró el archivo especificado"); } emp.display(); } }
Resultado de salida
Name: Krishna Age: 25