Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: niurkafer en 17 de Septiembre 2015, 16:59
-
Define una clase Java denominada Circulo que tenga como atributo de clase (estático) y constante numeroPi, siendo esta constante de tipo double y valor 3.1416. Además la clase tendrá el atributo radio (tipo double) que representa el radio del círculo, y los métodos para obtener y establecer los atributos. También debe disponer de un método para calcular el área del círculo (método tipo funcion areaCirculo que devuelve el área) y la longitud del círculo (método tipo función que devuelve la longitud). Busca información sobre las fórmulas necesarias para crear estos métodos en internet si no las recuerdas. En una clase con el método main, declara el código que cree un objeto círculo, le pida al usuario el radio y le devuelva el área y la longitud del círculo.
import java.util.Scanner;
public class Circulo {
private static final double numeroPI = 3.1416;
private static double radio;
public Circulo(){
radio = 0;
}
public Circulo (double valorRadio){ radio = valorRadio;}
public void setRadio(double valorRadio){ radio = valorRadio; }
public double getRadio(){ return radio; }
public double calcularArea (){ return (numeroPI) * (radio*radio); }
public double calcularLongitud (){ return 2 * numeroPI * radio; }
public static void main (String [] Args){
Scanner sc = new Scanner (System.in);
System.out.println ("Por favor, ingrese (en números) el radio de un círculo...");
Integer radioIngresado = sc.nextInt();
Circulo nuevoCirculo = new Circulo();
nuevoCirculo.setRadio(radioIngresado);
System.out.println ("El área del círculo, es " + nuevoCirculo.calcularArea());
System.out.println ("La longitud del círculo es " + nuevoCirculo.calcularLongitud());
System.out.println ("Hasta Luego");
}
}
¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?
R= No se puede cambiar el valor del atributo PI porque se le ha declarado constante al usar la palabra clave final
-
Hola niurkafer si introduzco como valor del radio 2.5 me sale un error java.util.InputMismatchExceptionn: null (in java.util.Scanner)
¿Por qué? Porque estás dando por supuesto que el radio es un entero al pedirlo al usuario: Integer radioIngresado = sc.nextInt();
Sin embargo el radio como dice el enunciado del ejercicio es un double
¡Debes corregir esto!
Saludos
-
tengo un problema y no lo logro ver con claridad resulta que cuando compilo me dice que no hay errores pero cuando abro el main se queda corriendo sin abrir nunca la pantalla no se porque
import java.util.Scanner;
public class Circulo {
private static final double numeroPI = 3.1416;
private static double radio;
public Circulo(){
radio = 0;
}
public Circulo (double valorRadio){ radio = valorRadio;}
public void setRadio(double valorRadio){ radio = valorRadio; }
public double getRadio(){ return radio; }
public double calcularArea (){ return (numeroPI) * (radio*radio); }
public double calcularLongitud (){ return 2 * numeroPI * radio; }
public static void main (String [] Args){
Scanner sc = new Scanner (System.in);
String entradaTeclado = "";
entradaTeclado = sc.nextLine();
System.out.println ("Por favor, ingrese (en números) el radio de un círculo...");
double radio = Double.valueOf(sc.nextLine());
Circulo nuevoCirculo = new Circulo();
nuevoCirculo.setRadio(radio);
System.out.println ("El área del círculo, es " + nuevoCirculo.calcularArea());
System.out.println ("La longitud del círculo es " + nuevoCirculo.calcularLongitud());
System.out.println ("Hasta Luego");
}
}
-
Hola, creo que tu error viene en esta linea:
entradaTeclado = sc.nextLine();
le pides al Scanner que lea una cadena de caracteres que no has introducido, así que prueba a quitar esa linea y seguro que te funcionará ya que ya tienes otra linea que va a leer la cadena de caracteres después de haber introducido los datos.
double radio = Double.valueOf(sc.nextLine());
Saludos.
-
Efectivamente elimine entradaTecaldo y listo muchas gracias...
import java.util.Scanner;
public class Circulo {
private static final double numeroPI = 3.1416;
private static double radio;
public Circulo(){
radio = 0;
}
public Circulo (double valorRadio){ radio = valorRadio;}
public void setRadio(double valorRadio){ radio = valorRadio; }
public double getRadio(){ return radio; }
public double calcularArea (){ return (numeroPI) * (radio*radio); }
public double calcularLongitud (){ return 2 * numeroPI * radio; }
public static void main (String [] Args){
Scanner sc = new Scanner (System.in);
System.out.println ("Por favor, ingrese (en números) el radio de un círculo...");
double radio = Double.valueOf(sc.nextLine());
Circulo nuevoCirculo = new Circulo();
nuevoCirculo.setRadio(radio);
System.out.println ("El área del círculo, es " + nuevoCirculo.calcularArea());
System.out.println ("La longitud del círculo es " + nuevoCirculo.calcularLongitud());
System.out.println ("Hasta Luego");
}
}