2017-11-25 17 views
-3

저는 Java를 처음 사용하고 있으며 원의 면적, 둘레 및 지름을 계산하는 원 계산기 계산기를 작성했습니다. 프로그램은 입력 번호 (반지름)를 받아 들일 것이며 그 숫자는 원의 면적, 둘레 및 지름을 얻는 데 사용됩니다. 이번에는 각 계산에 대해 별도의 메서드를 사용하려고합니다. 예를 들어, area 값을 얻으려면 radius 매개 변수가있는 메소드 영역을 작성하고 double 값을 리턴해야합니다.사용자 입력을 통한 오버로드 방법

제 코드가 맞는지 확실하지 않습니다. 제로 값을 얻고 있습니다. 당신의 getRadius 방법 내부

import java.util.Scanner; 

class Circle { 
static Scanner sc = new Scanner(System.in); 
private double radius; 

public double getRadius() { 
    System.out.print("Enter the radius: "); 
    int radius = sc.nextInt(); 
    return radius; 
} 

public void setRadius(double radius) { 
} 

public double diameter() { 
    double diameter = 2 * radius; 
    return diameter; 
} 

public double area() { 
    double area = Math.PI * (radius * radius); 
    return area; 
} 

public double circumference() { 
    double circumference = 2 * Math.PI * radius; 
    return circumference; 
} 
} 

public class Methods { 
public static void main(String[] args) { 
    Circle circleTest = new Circle(); 

    System.out.printf("Radius: %.1f %n", circleTest.getRadius()); 
    System.out.printf("Diameter: %.1f %n", circleTest.diameter()); 
    System.out.printf("Area: %.1f %n", circleTest.area()); 
    System.out.printf("Circumference: %.1f %n", circleTest.circumference()); 
} 
} 

답변

0

당신은 사용자가 입력 한 값으로 local variable 설정하는 : 당신은 직경, 면적을 계산하면

int radius = sc.nextInt();

, 원주 당신이 instance variable을 사용하고 있는지 -에 대한 예 :

double diameter = 2 * radius;

인스턴스 변수의 값을 by default is 0으로 설정하지 않았으므로.

+0

사용자가 입력 한 반경을 읽도록 인스턴스 변수를 설정하려면 어떻게해야합니까? – Airfoil

+0

새로운 변수를 선언하지 않도록'int'를 제거하십시오. –