2017-11-08 3 views
-1

나는 사용자 입력을 받아서 원의 영역을 찾기 위해 객체를 전달하는 자바 프로그램을 가지고있다.사용자 입력을 받고이를 객체에 전달하는 방법은 무엇입니까?

import java.util.Scanner; 
public class Area{ 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Scanner reader = new Scanner(System.in); 
System.out.println("Enter a number: "); 
double n = reader.nextDouble(); 
    reader.close(); 
      Circle c = new Circle(); 
      c.radius = n; 
      c.area=3.148*c.radius*c.radius; 
      System.out.println(c.radius); 

    } 
} 
class Circle { 
     double radius; 
     double area; 

} 

프로그램은 사용자 입력을 수신하지만 작업을 수행하지 않습니다. 이 일을하는 방법

감사합니다 당신의 문제를 해결해야

+0

나는 어떤 추가도 보지 못합니다. – davidxxx

+0

어디에서 추가 했습니까? 원형 만 볼 수 있습니다. –

+0

반경을 인쇄하는 것을 알고 있습니까? 계산 영역을 표시하려고합니다. – Emaro

답변

1
System.out.println(c.area); 

.

내가 제안 할 수 있다면 서클 클래스에서 이러한 계산을하는 것이 좋습니다. 좋은 코딩 방법입니다.

public class Main { 
    public static void main(String[] args) { 
    System.out.println("Enter a number: "); 
    Scanner reader = new Scanner(System.in); 
    double n = reader.nextDouble(); 
    reader.close(); 
    Circle circle = new Circle(n); 
    double area = circle.getArea(); 
    System.out.printf("The area is %f", area); 
    } 
} 

class Circle { 
    private double radius; 
    public Circle(double radius) { 
     this.radius = radius; 
    } 
    public double getArea() { 
     return 3.14 * radius * radius; 
    } 
    public double getRadius() { 
     return radius; 
    } 
} 
1

이 샘플 구현 제발 봐 :

class Circle { 

    private static final double PI = 3.148; 

    private double radius; 

    public Circle(double radius) { 
     this.radius = radius; 
    } 

    public double calculateArea() { 
     return PI * radius * radius; 
    } 

    public double getRadius() { 
     return radius; 
    } 
} 

public class Main { 

    public static void main(String[] args) { 
     System.out.println("Enter a number: "); 

     Scanner reader = new Scanner(System.in); 
     double input = reader.nextDouble(); 
     reader.close(); 

     Circle circle = new Circle(input); 
     double area = circle.calculateArea(); 
     System.out.printf("My radius is %f%n", circle.getRadius()); 
     System.out.printf("My area is %f", area); 
    } 
} 
  • 귀하의 초기 실수가 대신 c.areac.radius를 인쇄하는 것입니다.
  • 생성자 public Circle(double radius)Circle 개체가 만들어 질 때마다 항상 반경이 있는지 확인합니다. 반경이없는 원은 실제로 의미가 없습니다.
  • Circle은 서클과 관련된 모든 것을 담당해야합니다. 그렇기 때문에 일반적인 원과 관련된 수학 연산 인 영역 계산은 Circle으로 처리해야하고 외부는 main()이 아닙니다.
+0

참고 : 상수는 "PI"라고하며 [파이] (https://en.wikipedia.org/wiki/Pie)의 면적 또는 둘레를 계산하는 데 사용할 수 있습니다. ;) – Thomas

+0

죄송합니다. 결정된. :) – Synch

1

작업이 잘 수행되지만 올바른 인수를 System.out.println으로 전달하지 마십시오. 결국 c.area 대신 c.radius을 전달하고 조작 결과가 콘솔에 기록되지 않습니다. 이것은 메인 메소드의 끝에서 작성해야합니다 :

System.out.println(c.area) 
관련 문제