2016-08-03 3 views
0

명령에서 실행/컴파일하면 여기에 내 질문에소개 자바 할당 - 단위 9 : 라인

  • 콘의 절두체 모양의 실험실 컨테이너를 설명 FrustumContainer라는 자바 클래스 정의를 작성하고, 각 컨테이너가 보유 할 액체의 양을 계산합니다.

  • 이 클래스의 생성자를 정의하고 컨테이너의 컨테이너 번호, 높이, 반경 1 및 컨테이너의 반경 2에 대한 접근 자 메서드를 포함하고 컨테이너의 반경 2에 해당하는 액체 양을 계산하는 방법 용기는 담을 수 있습니다.

  • 또한 FrustumContainer 클래스의 모든 메서드를 테스트하는 기본 메서드가있는 ContainerTester라는 다른 클래스를 포함합니다.

  • 두 클래스를 모두 컴파일하고 명령 줄 환경을 사용하여 테스터 클래스를 실행하십시오.

어떻게 이런 일이 생길지 궁금해합니다. 두 클래스는 별도의 파일로 이동해야합니까?

import java.math.*; 
import java.util.Scanner; 
public class FrustrumContainer { 
    Scanner in = new Scanner(System.in); 
    double num = 0; 
    double h = 0; 
    double r1 = 0; 
    double r2 = 0; 
    double volume;` 

public FrustrumContainer(double num, double h, double r1, double r2, double volume) { 
    this.num = num; 
    this.h = h; 
    this.r1 = r1; 
    this.r2 = r2; 
    this.volume = volume; 

public static double getNum() { 
    num ++; 
    return num; 
} 

public static double getHeight() { 
    System.out.println("Enter height of container: "); 
    h = in.next(); 
    return h; 
} 

public static double getR1() { 
    System.out.println("Enter bottom radius: "); 
    r1 = in.next(); 
    return r1; 
} 

public static double getR2(){ 
    System.out.println("Enter top radius: "); 
    r2 = in.next(); 
    return r2; 
} 

public static double computeLiquid() 


} 
} 

class ContainerTester { 
    public static void main(String[] args) { 


     } 
    } 
} 

답변

0

당신은 두 개의 별도의 클래스에 둘 다 저장해야하고 다음 메서드를 호출하여 FrustrumContainer을 테스트 할 수 있습니다 : 나는 ContainerTester이 FrustrumContainer에있는 모든 방법을 테스트 할 수있는 방법을 이해하지 못하는

다음

내 코드는 지금까지입니다 FrustrumContainer의 모든 방법은 정적이기 때문에 당신이 대신 클래스에서 직접 메소드를 호출하는, FrustrumContainer 개체를 인스턴스화 할 필요가 없습니다

ClassName.methodName(); 

같은 구문을 사용하여. 당신은 다음과 같이 호출 할 수 있습니다 : 당신은 두 개의 클래스, FrustumContainer.class 및 ContainerTester.class 있고, 같은 사전에 모두 넣어해야

public static void main(String[] args) { 
    FrustrumContainer.getNum();// note this only returns the number 

    double num1 = FrustrumContainer.getNum();//you can store the returned type i.e double for num 

    System.out.println(num1);//and print it to the console 
} 
0

.

FrustumContainer.class :

import java.util.Scanner; 

public class FrustumContainer { 
    int num = 0; 
    double height = 0; 
    double radius1 = 0; 
    double radius2 = 0; 
    double volume = 0; 

    final static double PI = Math.PI; 

    Scanner in = new Scanner(System.in); 

    public FrustumContainer(){ 
     this.num ++; 
    } 

    public void getHeight(){ 
     System.out.println("please input the value of height (unit:dm):"); 
     height = in.nextDouble(); 
    } 

    public void getRadius1(){ 
     System.out.println("please the input the value of radius1 (unit:dm):"); 
     radius1 = in.nextDouble(); 
    } 

    public void getRadius2(){ 
     System.out.println("please the input the value of radius2 (unit:dm):"); 
     radius2 = in.nextDouble(); 
    } 

    public double computeLiquid(){ 
     double height1 = 0; 
     if(height <= 0 || radius1 <= 0 || radius2 <= 0){ 
      System.out.println("please input again"); 
     }else{ 
      if(radius1 < radius2) { 
       // solve height1,(h1+h)/h1 = r2/r1 
       height1 = height/(radius2/radius1 -1); 
       // get volume, 1/3 * PI* (r2*r2*(h1+h) -r1*r1*h1) 
       volume = (PI * ((radius2 * radius2 * (height1 + height)) - (radius1 * radius1 * height1)))/3; 
      }else{ 
       height1 = height/(radius1/radius2 -1); 
       volume = (PI * (radius1 * radius1 * (height1 + height)- radius2 * radius2 * height1))/3; 
      } 
     } 
     return volume; 
    } 
} 

ContainerTester.class :

public class ContainerTester { 
     public static void main(String[] args){ 
      FrustumContainer frustumContainer = new FrustumContainer(); 
      frustumContainer.getHeight(); 
      frustumContainer.getRadius1(); 
      frustumContainer.getRadius2(); 
      int num = frustumContainer.num; 
      double volume = frustumContainer.computeLiquid(); 
      System.out.println("The volume of NO."+ num +" container is " + volume + " L"); 
     } 
    } 

당신은 frustumContainer.getHeight()처럼 ContainerTester.class에 FrustumContainer.class의 메소드를 호출 할 수 있습니다.