Error en compilacion
Publicado por Juan (1 intervención) el 28/02/2024 00:20:53
Saludos, me disculpo de antemano por cualquier inconveniente ya que es mi primera vez participando en un foro. Y le agradezco cualquier ayuda de antemano. Tengo un código en Java donde tengo un archivo con la definición de Fecha y el archivo se llama Fecha.java y la definición de Main y el archivo se llama Main.java pero me esta dando error: acá paso el código de la definición de Fecha:
public class Fecha {
private int dia;
private int mes;
private int anio;
public Fecha(int dia, int mes, int anio) {
this.dia = dia;
this.mes = mes;
this.anio = anio;
normalizar();
}
public int getDia() {
return dia;
}
public void setDia(int dia) {
this.dia = dia;
normalizar();
}
public int getMes() {
return mes;
}
public void setMes(int mes) {
this.mes = mes;
normalizar();
}
public int getAnio() {
return anio;
}
public void setAnio(int anio) {
this.anio = anio;
normalizar();
}
public void reiniciar(int dia, int mes, int anio) {
this.dia = dia;
this.mes = mes;
this.anio = anio;
normalizar();
}
public void adelantar(int dias) {
dia += dias;
normalizar();
}
public void imprimir() {
System.out.println(dia + "/" + mes + "/" + anio);
}
private void normalizar() {
if (mes < 1) {
mes = 1;
} else if (mes > 12) {
mes = 12;
}
int maxDias = diasDelMes(mes);
if (dia < 1) {
dia = 1;
} else if (dia > maxDias) {
dia = maxDias;
}
}
private int diasDelMes(int mes) {
int[] diasPorMes = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
return diasPorMes[mes - 1];
}
}
y ahora el código de la definición de Main:
public class Main {
public static void main(String[] args) {
Fecha fecha = new Fecha(25, 2, 2024);
fecha.imprimir(); // Imprime: 25/2/2024
fecha.setDia(30);
fecha.setMes(2);
fecha.setAnio(2023);
fecha.imprimir(); // Imprime: 28/2/2023
fecha.reiniciar(15, 8, 2022);
fecha.imprimir(); // Imprime: 15/8/2022
fecha.adelantar(10);
fecha.imprimir(); // Imprime: 25/8/2022
}
}
Sin embargo, me da este error en la compilacion:
javac Fecha.java
Fecha.java:78: error: class Main is public, should be declared in a file named Main.java
public class Main {
^
1 error
¿A que se debería esto?
public class Fecha {
private int dia;
private int mes;
private int anio;
public Fecha(int dia, int mes, int anio) {
this.dia = dia;
this.mes = mes;
this.anio = anio;
normalizar();
}
public int getDia() {
return dia;
}
public void setDia(int dia) {
this.dia = dia;
normalizar();
}
public int getMes() {
return mes;
}
public void setMes(int mes) {
this.mes = mes;
normalizar();
}
public int getAnio() {
return anio;
}
public void setAnio(int anio) {
this.anio = anio;
normalizar();
}
public void reiniciar(int dia, int mes, int anio) {
this.dia = dia;
this.mes = mes;
this.anio = anio;
normalizar();
}
public void adelantar(int dias) {
dia += dias;
normalizar();
}
public void imprimir() {
System.out.println(dia + "/" + mes + "/" + anio);
}
private void normalizar() {
if (mes < 1) {
mes = 1;
} else if (mes > 12) {
mes = 12;
}
int maxDias = diasDelMes(mes);
if (dia < 1) {
dia = 1;
} else if (dia > maxDias) {
dia = maxDias;
}
}
private int diasDelMes(int mes) {
int[] diasPorMes = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
return diasPorMes[mes - 1];
}
}
y ahora el código de la definición de Main:
public class Main {
public static void main(String[] args) {
Fecha fecha = new Fecha(25, 2, 2024);
fecha.imprimir(); // Imprime: 25/2/2024
fecha.setDia(30);
fecha.setMes(2);
fecha.setAnio(2023);
fecha.imprimir(); // Imprime: 28/2/2023
fecha.reiniciar(15, 8, 2022);
fecha.imprimir(); // Imprime: 15/8/2022
fecha.adelantar(10);
fecha.imprimir(); // Imprime: 25/8/2022
}
}
Sin embargo, me da este error en la compilacion:
javac Fecha.java
Fecha.java:78: error: class Main is public, should be declared in a file named Main.java
public class Main {
^
1 error
¿A que se debería esto?
Valora esta pregunta


0