2014-04-16 2 views
0

초보자이므로 제 코드가 상당히 거칠습니다. 나는 사각의 객체 클래스를 만들었습니다. 내 주요 프로그램에서, 나는 사각형의 배열을 만들었는데, 각 사각형은 길이가 다른 사각형을 가지고있다. 배열을 만들고 각 요소를 인쇄 할 수 있습니다.프로그램에서 내가 만든 메서드를 인식하지 못합니다.

배열의 모든 사각형 영역을 결합한 다음 총면적이 정사각형 인 반올림 된 길이를 반환하는 메서드를 만들려고합니다.

있어서의 부품 번호 : 이것은 실제 '주'파일의 코드

public int totalArea(Square[] s) 
    { 
    int arraylength=s.length; 
    int area_total=0; 
    int area_ind=0; 
    double side_new=0; 
    int side_real=0; 

    for (int i = 0; i < arraylength; i++) 
     { 
      area_ind=s[i].area(); 
      area_total+=area_ind; 
     } 

    side_new= Math.sqrt(area_total); 
    side_real= (int)(side_new); 
    return side_real; 

    } 

는 :

 int total= totalArea(original); 
    This fails giving the error 
     int total= totalArea(original); 
       ^
     symbol: method totalArea(Square[]) 
    location: class as5_apprun 
     1 error 

:

 public class as5_apprun 
    { 

     public static void main(String[] args) 
     { 
      Square[] original= 
      { 
      new Square(), 
      new Square(1,new Point (0,0)), 
      new Square(2,new Point (0,0)), 
      new Square(3,new Point (0,0)), 
      new Square(4,new Point (0,0)), 
      new Square(5,new Point (0,0)) 
      }; 

이 오류이며 업데이트 : 의견에서 문제가 해결되었습니다.

+2

'totalArea' 메서드는 어디에 정의되어 있습니까? –

+0

totalArea 메소드를 사용하여 클래스를 가져 오시겠습니까? –

+0

편집 기록에서 코드를 볼 수 있다는 것을 알았습니까? – GriffinG

답변

1

Square의 인스턴스 메서드로 totalArea이 있지만 아직 사각형 배열에서만 작동합니다.

하면 그것은 public static int totalArea(Square[] s)를 선언 totalArea 내부 Square.java라고 가정 int total= Square.totalArea(original);

로 참조한다.

+0

Static의 차이점을 설명 할 수 있습니까? 다시 한 번 감사드립니다. 광장을 잊어 버렸습니다. 앞에! – user3538214

+0

@ user3538214 정적은 인스턴스화와 관련이 있습니다. 객체 또는 메서드가 정적 인 경우 ** 인스턴스화 할 수 없습니다. 그 중 하나만이 존재할 수 있으며 그 클래스의 모든 인스턴스가 공유한다는 것을 의미합니다. – CodeCamper

1

totalArea 메서드는 인스턴스 메서드이므로 해당 메서드를 호출하려면 Square 클래스의 인스턴스가 있어야합니다.

현명 다른, 당신은

Can you explain the difference that Static makes? Thanks again.

static 메소드 Square

total= Square.totalArea(original); 
의 인스턴스없이 그 메소드를 호출 클래스에, 아니 모든 인스턴스에 속해 있습니다 할 수 있도록 정적으로 totalArea 방법을 선언, 그래서 인스턴스없이 이러한 메소드를 호출 할 수 있습니다.

관련 문제