Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: @mayakoski en 11 de Septiembre 2019, 04:17

Título: cannot assing a value to final variable error Java constante no modific CU00673B
Publicado por: @mayakoski en 11 de Septiembre 2019, 04:17
En relación al ejercicio CU00673B del curso básico de fundamentos de programación orientada a objetos de aprenderaprogramar, esta sería mi respuesta.

Código: [Seleccionar]
package com.aprenderaprogramar;
import java.lang.Math;

public class Circulo {
private double radio;
private static final double numeroPi = 3.1416;

public Circulo() {
setRadio(0);
}

public double AreaCirculo() {
double areaCirculo = numeroPi*Math.pow(getRadio(), 2);
return areaCirculo;

}

public double LongitudCirculo() {
double longitudCirculo = 2 * numeroPi * getRadio() ;
return longitudCirculo;
}

public double getRadio() {
return radio;
}

public void setRadio(double radio) {
this.radio = radio;
}
}


Código: [Seleccionar]
package com.aprenderaprogramar;

public class TestCirculo {
public static void main(String[] args) {
GestionarEntrada radio;
System.out.println("Ingrese el radio del circulo");
radio = new GestionarEntrada();

Circulo miCirculo = new Circulo();
miCirculo.setRadio(Double.parseDouble(radio.getEntrada()));

System.out.println("Imprimo el radio " + miCirculo.getRadio());

System.out.println("El Area del Circulo es " + miCirculo.AreaCirculo());

System.out.println("La longitud del Circulo es " + miCirculo.LongitudCirculo());

}
}


Código: [Seleccionar]
package com.aprenderaprogramar;

import java.util.Scanner;

public class GestionarEntrada {
private String entrada;

public GestionarEntrada() {
pedirEntrada();
//getEntrada();
}

public void pedirEntrada() {
Scanner entradaTeclado1 = new Scanner(System.in);
setEntrada(entradaTeclado1.nextLine());
}

public String getEntrada() {
System.out.println(entrada);
return entrada;
}

public void setEntrada(String entrada) {
this.entrada = entrada;
}
}



Con respecto a la pregunta ¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi?; se puede crear pero considero que no es necesario desarrollar código para definir un valor que puede estar en una constante, ademas que en Math.PI ya tenemos definida la constante y podriamos usarla directamente.
Título: Re:cannot assing a value to final variable error Java constante no modific CU00673B
Publicado por: Alex Rodríguez en 16 de Octubre 2020, 18:19
Hola, sobre este ejercicio, referir lo siguiente.

Los nombres de métodos por convenio suelen empezar por minúsculas y describir lo que hace el método, por ejemplo en vez de public double LongitudCirculo() usaríamos public double getLongitudCirculo() ó public double obtenerLongitudCirculo()

La respuesta a la pregunta ¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? es que no se puede crear un método para establecer el valor de este atributo porque es una constante y el compilador no permite que sea modificado. Si se intenta, por ejemplo public void setPi() { numeroPi = 44;}, nos devuelve un mensaje cannot assing a value to final variable numeroPi

Saludos